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$ > - } > } > > /** >