Btw, it has been reverted and re-committed with the fix only !

Frédéric THOMAS

> From: ftho...@apache.org
> To: comm...@flex.apache.org
> Date: Mon, 27 Jan 2014 17:23:57 +0000
> Subject: [5/5] git commit: [flex-sdk] [refs/heads/develop] - FLEX-34062: FDB 
> waits up to 20s per SWF before we can start debugging (without code clean up)
> 
> FLEX-34062: FDB waits up to 20s per SWF before we can start debugging 
> (without code clean up)
> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
> Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/59659f7c
> Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/59659f7c
> Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/59659f7c
> 
> Branch: refs/heads/develop
> Commit: 59659f7cc66a20a9450d4a3117a5f999f1fa41c7
> Parents: fb33548
> Author: Frédéric Thomas <ftho...@cpaglobal.com>
> Authored: Mon Jan 27 17:17:38 2014 +0000
> Committer: Frédéric Thomas <ftho...@cpaglobal.com>
> Committed: Mon Jan 27 17:17:38 2014 +0000
> 
> ----------------------------------------------------------------------
>  .../java/flex/tools/debugger/cli/DebugCLI.java  | 130 -------------------
>  .../flex/tools/debugger/cli/Extensions.java     |   7 -
>  2 files changed, 137 deletions(-)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/59659f7c/modules/debugger/src/java/flex/tools/debugger/cli/DebugCLI.java
> ----------------------------------------------------------------------
> diff --git a/modules/debugger/src/java/flex/tools/debugger/cli/DebugCLI.java 
> b/modules/debugger/src/java/flex/tools/debugger/cli/DebugCLI.java
> index 83b603c..0f29cf3 100644
> --- a/modules/debugger/src/java/flex/tools/debugger/cli/DebugCLI.java
> +++ b/modules/debugger/src/java/flex/tools/debugger/cli/DebugCLI.java
> @@ -296,18 +296,6 @@ public class DebugCLI implements Runnable, SourceLocator
>        */
>       private static final String INFO_STACK_SHOW_THIS = 
> "$infostackshowthis"; //$NON-NLS-1$
>  
> -     /**
> -      * Number of milliseconds to wait for metadata.
> -      */
> -     private static final String METADATA_ATTEMPTS_PERIOD = 
> "$metadataattemptsperiod"; //$NON-NLS-1$
> -
> -     private static final String METADATA_NOT_AVAILABLE = 
> "$metadatanotavailable"; //$NON-NLS-1$
> -
> -     /**
> -      * How many times we should try to get metadata.
> -      */
> -     private static final String METADATA_ATTEMPTS = "$metadataattempts"; 
> //$NON-NLS-1$
> -
>       private static final String PLAYER_FULL_SUPPORT = "$playerfullsupport"; 
> //$NON-NLS-1$
>  
>       /**
> @@ -1691,101 +1679,6 @@ public class DebugCLI implements Runnable, 
> SourceLocator
>               }
>       }
>  
> -    public void waitForMetaData() throws InProgressException
> -    {
> -        // perform a query to see if our metadata has loaded
> -        int metadatatries = propertyGet(METADATA_ATTEMPTS);
> -        int maxPerCall = 8;   // cap on how many attempt we make per call
> -
> -        int tries = Math.min(maxPerCall, metadatatries);
> -        if (tries > 0)
> -        {
> -            int remain = metadatatries - tries; // assume all get used up
> -
> -            // perform the call and then update our remaining number of 
> attempts
> -            try
> -            {
> -                tries = waitForMetaData(tries);
> -                remain = metadatatries - tries; // update our used count
> -            }
> -            catch(InProgressException ipe)
> -            {
> -                propertyPut(METADATA_ATTEMPTS, remain);
> -                             throw ipe;
> -            }
> -        }
> -    }
> -
> -     /**
> -      * Wait for the API to load function names, which
> -      * exist in the form of external meta-data.
> -      *
> -      * Only do this tries times, then give up
> -      *
> -      * We wait period * attempts
> -      */
> -     public int waitForMetaData(int attempts) throws InProgressException
> -     {
> -        int start = attempts;
> -        int period = propertyGet(METADATA_ATTEMPTS_PERIOD);
> -             while(attempts > 0)
> -             {
> -                     // are we done yet?
> -                     if (isMetaDataAvailable())
> -                             break;
> -                     else
> -                             try { attempts--; Thread.sleep(period); } 
> catch(InterruptedException ie) {}
> -             }
> -
> -             // throw exception if still not ready
> -             if (!isMetaDataAvailable())
> -                     throw new InProgressException();
> -
> -        return start-attempts;  // remaining number of tries
> -     }
> -
> -     /**
> -      * Ask each swf if metadata processing is complete
> -      */
> -     public boolean isMetaDataAvailable()
> -     {
> -             boolean allLoaded = true;
> -             try 
> -             {
> -                     // we need to ask the session since our fileinfocache 
> will hide the exception
> -                     SwfInfo[] swfs = m_session.getSwfs();
> -                     for(int i=0; i<swfs.length; i++)
> -                     {
> -                             // check if our processing is finished.
> -                             SwfInfo swf = swfs[i];
> -                             if (swf != null && !swf.isProcessingComplete())
> -                             {
> -                                     allLoaded = false;
> -                                     break;
> -                             }
> -                     }
> -             }
> -             catch(NoResponseException nre)
> -             {
> -                     // ok we still need to wait for player to read the swd 
> in
> -                     allLoaded = false;
> -             }
> -
> -             // count the number of times we checked and it wasn't there
> -             if (!allLoaded)
> -             {
> -                     int count = propertyGet(METADATA_NOT_AVAILABLE);
> -                     count++;
> -                     propertyPut(METADATA_NOT_AVAILABLE, count);
> -             }
> -             else
> -             {
> -                     // success so we reset our attempt counter
> -                     propertyPut(METADATA_ATTEMPTS, METADATA_RETRIES);
> -             }
> -             return allLoaded;
> -     }
> -
>       void doInfoHandle()
>       {
>               if (hasMoreTokens())
> @@ -1825,9 +1718,6 @@ public class DebugCLI implements Runnable, SourceLocator
>               // we take an optional single arg which specifies a module
>               try
>               {
> -                     // let's wait a bit for the background load to complete
> -                     waitForMetaData();
> -
>                       if (hasMoreTokens())
>                       {
>                               arg = nextToken();
> @@ -1869,10 +1759,6 @@ public class DebugCLI implements Runnable, 
> SourceLocator
>               {
>                       err(ae.getMessage());
>               }
> -             catch(InProgressException ipe)
> -             {
> -                 
> err(getLocalizationManager().getLocalizedTextString("functionListBeingPrepared"));
>  //$NON-NLS-1$
> -             }
>       }
>  
>       void listFunctionsFor(StringBuilder sb, SourceFile m)
> @@ -2218,10 +2104,6 @@ public class DebugCLI implements Runnable, 
> SourceLocator
>               // then see if it because of a swfloaded event
>               if( reason == SuspendReason.ScriptLoaded)
>               {
> -            // since the player takes a long time to provide swf/swd, try 80 
> * 250ms = ~20s
> -            if (propertyGet(METADATA_ATTEMPTS) > 0)
> -                         try { waitForMetaData(80); } 
> catch(InProgressException ipe) { }
> -
>              m_fileInfo.setDirty();
>                       processEvents();
>              propagateBreakpoints();
> @@ -4186,8 +4068,6 @@ public class DebugCLI implements Runnable, SourceLocator
>        */
>      private int[] parseFunctionName(int module, String partialFunctionName, 
> boolean onlyThisModule) throws NoMatchException, AmbiguousException
>      {
> -        try { waitForMetaData(); } catch(InProgressException ipe) {}  // 
> wait a bit before we try this to give the background thread time to complete
> -
>          SourceFile m = m_fileInfo.getFile(module);
>               ArrayList<ModuleFunctionPair> functionNames = new 
> ArrayList<ModuleFunctionPair>(); // each member is a ModuleFunctionPair
>  
> @@ -4692,9 +4572,6 @@ public class DebugCLI implements Runnable, SourceLocator
>                               // pause for a while during startup, don't let 
> exceptions ripple outwards
>                               try { waitTilHalted(); } catch(Exception e) {}
>  
> -                             // pause for a while during startup, don't let 
> exceptions ripple outwards
> -                             try { waitForMetaData(); } catch(Exception e) {}
> -
>                               setInitialSourceFile();
>  
>                               
> out(getLocalizationManager().getLocalizedTextString("setBreakpointsThenResume"));
>  //$NON-NLS-1$
> @@ -6484,9 +6361,6 @@ public class DebugCLI implements Runnable, SourceLocator
>               propertyPut(LAST_FRAME_DEPTH, 0);
>               propertyPut(CURRENT_FRAME_DEPTH, 0);
>               propertyPut(DISPLAY_FRAME_NUMBER, 0);
> -             propertyPut(METADATA_ATTEMPTS_PERIOD, 250); // 1/4s per attempt
> -             propertyPut(METADATA_NOT_AVAILABLE, 0);  // counter for failures
> -             propertyPut(METADATA_ATTEMPTS, METADATA_RETRIES);
>               propertyPut(PLAYER_FULL_SUPPORT, correctVersion ? 1 : 0);
>  
>               String previousURI = m_mruURI;
> @@ -6513,10 +6387,6 @@ public class DebugCLI implements Runnable, 
> SourceLocator
>        */
>       void reapplyBreakpoints()
>       {
> -             // give us a bit of time to process the newly loaded swf
> -             if (propertyGet(METADATA_ATTEMPTS) > 0)
> -                     try { waitForMetaData(80); } catch(InProgressException 
> ipe) { }
> -
>               int count = breakpointCount();
>               for(int i=0; i<count; i++)
>               {
> 
> http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/59659f7c/modules/debugger/src/java/flex/tools/debugger/cli/Extensions.java
> ----------------------------------------------------------------------
> diff --git 
> a/modules/debugger/src/java/flex/tools/debugger/cli/Extensions.java 
> b/modules/debugger/src/java/flex/tools/debugger/cli/Extensions.java
> index aeedd72..0332100 100644
> --- a/modules/debugger/src/java/flex/tools/debugger/cli/Extensions.java
> +++ b/modules/debugger/src/java/flex/tools/debugger/cli/Extensions.java
> @@ -116,9 +116,6 @@ public class Extensions
>               // we take an optional single arg which specifies a module
>               try
>               {
> -                     // let's wait a bit for the background load to complete
> -                     cli.waitForMetaData();
> -
>                       if (cli.hasMoreTokens())
>                       {
>                               arg = cli.nextToken();
> @@ -160,10 +157,6 @@ public class Extensions
>               {
>                       cli.err(nme.getMessage());
>               }
> -             catch(InProgressException ipe)
> -             {
> -                 
> cli.err(getLocalizationManager().getLocalizedTextString("key20")); 
> //$NON-NLS-1$
> -             }
>       }
>  
>       /**
> 
                                          

Reply via email to