Hi Alex,
thanks, now is passing. Hope you'll catch the problem
Carlos

2018-07-23 10:13 GMT+02:00 Alex Harui <[email protected]>:

> OK, I reverted it.
>
> On 7/23/18, 12:01 AM, "[email protected] on behalf of Carlos
> Rovira" <[email protected] on behalf of [email protected]>
> wrote:
>
>     Hi Alex,
>
>     just let you know that maybe something in the latest changes broke one
> of
>     the examples. Here's the output :
>
>     scanning for overrides: ViewportModel
>
>     133038 bytes written to
>     /Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/royale/
> RoyaleWebsiteStatsViewer/target/RoyaleWebsiteStatsViewer-0.9.
> 3-SNAPSHOT.swf
>     in 4.862 seconds
>
>     /Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/royale/
> RoyaleWebsiteStatsViewer/src/main/royale/models/StatsModel.as(43):
>     col: 19 Error: Implicit coercion of a value of type Event to an
> unrelated
>     type Object.
>
>
>     dispatchEvent(new Event("lastThirtyDaysDataChanged"));
>
>                   ^
>
>
>     [*INFO*]
>     *-----------------------------------------------------------
> -------------*
>
>     [*INFO*] *Reactor Summary:*
>
>     ..
>
>     ...
>
>
>     [*INFO*] Apache Royale: Examples: Royale: RoyaleWebsite .....
> *SUCCESS* [
>     19.162 s]
>
>     [*INFO*] Apache Royale: Examples: Royale: RoyaleWebsiteStatsViewer
> *FAILURE*
>     [ 12.515 s]
>
>     [*INFO*] Apache Royale: Examples: Royale: StorageExample .... *SKIPPED*
>
>     [*INFO*] Apache Royale: Examples: Royale: StyleExample ...... *SKIPPED*
>
>     Hope that helps you to see if is something related to your commit or
> not.
>
>     thanks
>
>
>
>     2018-07-23 8:44 GMT+02:00 <[email protected]>:
>
>     > This is an automated email from the ASF dual-hosted git repository.
>     >
>     > aharui pushed a commit to branch develop
>     > in repository https://na01.safelinks.protection.outlook.com/?url=
> https%3A%2F%2Fgitbox.apache.org%2Frepos%2Fasf%2Froyale-
> compiler.git&amp;data=02%7C01%7Caharui%40adobe.com%
> 7C222d51f26f6e4909fe2408d5f06a1a5b%7Cfa7b1b5a7b34438794aed2c178de
> cee1%7C0%7C0%7C636679260873634790&amp;sdata=XgHiNX38oUSnmcORuqAhIw6puI%
> 2FbrRcA%2BEo0IncEojE%3D&amp;reserved=0
>     >
>     >
>     > The following commit(s) were added to refs/heads/develop by this
> push:
>     >      new 547d87e  add -diagnostics option to try to find out why
> compiler
>     > is hanging
>     > 547d87e is described below
>     >
>     > commit 547d87ebdefc3a5055b05e5e98f411d5c8715726
>     > Author: Alex Harui <[email protected]>
>     > AuthorDate: Sun Jul 22 23:41:56 2018 -0700
>     >
>     >     add -diagnostics option to try to find out why compiler is
> hanging
>     > ---
>     >  .../config/CompilerDiagnosticsConstants.java       | 43
> ++++++++++++++
>     >  .../royale/compiler/config/Configuration.java      | 17 ++++++
>     >  .../royale/compiler/config/Configurator.java       |  7 ++-
>     >  .../java/org/apache/royale/utils/FileUtils.java    |  7 ++-
>     >  .../royale/compiler/clients/MXMLJSCRoyale.java     |  2 +
>     >  .../internal/projects/RoyaleJSProject.java         | 13 ++++
>     >  .../org/apache/royale/compiler/clients/ASC.java    |  5 ++
>     >  .../org/apache/royale/compiler/clients/MXMLC.java  | 12 +++-
>     >  .../royale/compiler/common/NodeReference.java      |  5 ++
>     >  .../internal/definitions/ClassDefinitionBase.java  | 69
>     > ++++++++++++++--------
>     >  .../internal/definitions/DefinitionBase.java       |  5 ++
>     >  .../embedding/transcoders/JPEGTranscoder.java      | 15 ++++-
>     >  .../embedding/transcoders/SoundTranscoder.java     |  8 ++-
>     >  .../embedding/transcoders/TranscoderBase.java      |  5 ++
>     >  .../compiler/internal/graph/SynchronizedGraph.java | 34 +++++++++++
>     >  .../internal/mxml/MXMLManifestManager.java         |  5 ++
>     >  .../compiler/internal/parsing/TokenBase.java       |  5 ++
>     >  .../compiler/internal/parsing/as/ASToken.java      |  5 ++
>     >  .../compiler/internal/parsing/as/BaseASParser.java | 17 ++++++
>     >  .../internal/parsing/mxml/MXMLScopeBuilder.java    |  5 ++
>     >  .../compiler/internal/projects/ConfigManager.java  | 25 ++++++++
>     >  .../compiler/internal/scopes/ASScopeBase.java      |  5 ++
>     >  .../compiler/internal/scopes/ASScopeCache.java     | 41
> +++++++++++++
>     >  .../compiler/internal/targets/SWCTarget.java       | 17 ++++++
>     >  .../compiler/internal/tree/as/FunctionNode.java    |  5 ++
>     >  .../royale/compiler/internal/tree/as/NodeBase.java | 12 +++-
>     >  .../compiler/internal/tree/mxml/MXMLFileNode.java  | 22 ++++++-
>     >  .../internal/tree/mxml/MXMLScriptNode.java         |  5 ++
>     >  .../internal/tree/mxml/MXMLTreeBuilder.java        |  5 ++
>     >  .../compiler/internal/units/ASCompilationUnit.java |  5 ++
>     >  .../as/decorators/SymbolDecoratorProvider.java     |  5 ++
>     >  .../org/apache/royale/swf/io/InputBitStream.java   |  8 ++-
>     >  .../org/apache/royale/swf/io/LZMACompressor.java   |  5 ++
>     >  .../org/apache/royale/swf/io/LZMAInputStream.java  |  5 ++
>     >  .../org/apache/royale/swf/io/OutputBitStream.java  |  8 ++-
>     >  .../java/org/apache/royale/utils/ArgumentUtil.java |  6 ++
>     >  .../org/apache/royale/utils/IntMapLRUCache.java    | 28 ++++++++-
>     >  37 files changed, 452 insertions(+), 39 deletions(-)
>     >
>     > diff --git a/compiler-common/src/main/java/org/apache/royale/
>     > compiler/config/CompilerDiagnosticsConstants.java
>     > b/compiler-common/src/main/java/org/apache/royale/compiler/config/
>     > CompilerDiagnosticsConstants.java
>     > new file mode 100644
>     > index 0000000..600ddee
>     > --- /dev/null
>     > +++ b/compiler-common/src/main/java/org/apache/royale/
> compiler/config/
>     > CompilerDiagnosticsConstants.java
>     > @@ -0,0 +1,43 @@
>     > +/*
>     > + *
>     > + *  Licensed to the Apache Software Foundation (ASF) under one or
> more
>     > + *  contributor license agreements.  See the NOTICE file
> distributed with
>     > + *  this work for additional information regarding copyright
> ownership.
>     > + *  The ASF licenses this file to You under the Apache License,
> Version
>     > 2.0
>     > + *  (the "License"); you may not use this file except in compliance
> with
>     > + *  the License.  You may obtain a copy of the License at
>     > + *
>     > + *      https://na01.safelinks.protection.outlook.com/?url=
> http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&amp;
> data=02%7C01%7Caharui%40adobe.com%7C222d51f26f6e4909fe2408d5f06a1a5b%
> 7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636679260873634790&amp;sdata=
> qcd3dLI1gHTn9SKHqJLXe5SrsU%2F9nYhD38vM%2FmK4zSg%3D&amp;reserved=0
>     > + *
>     > + *  Unless required by applicable law or agreed to in writing,
> software
>     > + *  distributed under the License is distributed on an "AS IS"
> BASIS,
>     > + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>     > implied.
>     > + *  See the License for the specific language governing permissions
> and
>     > + *  limitations under the License.
>     > + *
>     > + */
>     > +
>     > +package org.apache.royale.compiler.config;
>     > +
>     > +/**
>     > + * Constants for the compiler's diagnostic output.
>     > + */
>     > +public class CompilerDiagnosticsConstants
>     > +{
>     > +       public static int diagnostics = 0;
>     > +    public static final int NODE_REFERENCES = 1;
>     > +    public static final int COUNTER = 2;
>     > +    public static final int CLASS_DEFINITION_BASE = 4;
>     > +    public static final int SYNCHRONIZED_GRAPH = 8;
>     > +    public static final int ASTOKEN = 16;
>     > +    public static final int CONFIG_MANAGER = 32;
>     > +    public static final int ASSCOPECACHE = 64;
>     > +    public static final int FILE_NODE = 128;
>     > +    public static final int WORKSPACE = 256;
>     > +    public static final int SYMBOL_DECORATOR_PROVIDER = 512;
>     > +    public static final int INT_MAP = 1024;
>     > +    public static final int DA_BYTEARRAY = 2048;
>     > +    public static final int FILE_UTILS = 4096;
>     > +    public static final int ROYALEJSPROJECT = 8192;
>     > +
>     > +}
>     > diff --git a/compiler-common/src/main/java/org/apache/royale/
>     > compiler/config/Configuration.java b/compiler-common/src/main/
>     > java/org/apache/royale/compiler/config/Configuration.java
>     > index 8c3d8ed..40433c9 100644
>     > --- a/compiler-common/src/main/java/org/apache/royale/
>     > compiler/config/Configuration.java
>     > +++ b/compiler-common/src/main/java/org/apache/royale/
>     > compiler/config/Configuration.java
>     > @@ -5897,6 +5897,23 @@ public class Configuration
>     >      }
>     >
>     >      //
>     > +    // 'verbose' option from CommandLineConfiguration
>     > +    //
>     > +
>     > +    private int diagnostics = 0;
>     > +
>     > +    public int getDiagnosticsLevel()
>     > +    {
>     > +        return diagnostics;
>     > +    }
>     > +
>     > +    @Config(hidden = true)
>     > +    public void setDiagnostics(ConfigurationValue cfgval, int b)
>     > +    {
>     > +        diagnostics = b;
>     > +    }
>     > +
>     > +    //
>     >      // 'dump-ast' option from CommandLineConfiguration
>     >      //
>     >
>     > diff --git a/compiler-common/src/main/java/org/apache/royale/
>     > compiler/config/Configurator.java b/compiler-common/src/main/
>     > java/org/apache/royale/compiler/config/Configurator.java
>     > index d796371..14aa674 100644
>     > --- a/compiler-common/src/main/java/org/apache/royale/
>     > compiler/config/Configurator.java
>     > +++ b/compiler-common/src/main/java/org/apache/royale/
>     > compiler/config/Configurator.java
>     > @@ -199,7 +199,12 @@ public class Configurator implements
>     > ICompilerSettings, IConfigurator, ICompiler
>     >              @Override
>     >              public IFileSpecification apply(final String path)
>     >              {
>     > -                return workspace.getFileSpecification(path);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("Configurator waiting
> for lock
>     > in toFileSpecifications");
>     > +               IFileSpecification fs = workspace.
>     > getFileSpecification(path);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("Configurator done with
> lock
>     > in toFileSpecifications");
>     > +               return fs;
>     >              }
>     >          });
>     >      }
>     > diff --git a/compiler-common/src/main/java/org/apache/royale/utils/
> FileUtils.java
>     > b/compiler-common/src/main/java/org/apache/royale/utils/
> FileUtils.java
>     > index d678c09..824ab6d 100644
>     > --- a/compiler-common/src/main/java/org/apache/royale/utils/
> FileUtils.java
>     > +++ b/compiler-common/src/main/java/org/apache/royale/utils/
> FileUtils.java
>     > @@ -25,6 +25,7 @@ import java.net.URISyntaxException;
>     >  import java.util.HashMap;
>     >
>     >  import org.apache.commons.io.IOUtils;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >
>     >  /**
>     >   * A collection of file related utilities.
>     > @@ -164,7 +165,11 @@ public final class FileUtils
>     >              {
>     >                  baos.write(buffer, 0, num);
>     >              }
>     > -            return baos.getDirectByteArray();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +                       System.out.println("FileUtils waiting for
> lock in
>     > toByteArray");
>     > +            byte[] b = baos.getDirectByteArray();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +                       System.out.println("FileUtils waiting for
> lock in
>     > toByteArray");
>     >          }
>     >          catch (IOException ex)
>     >          {
>     > diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/
> clients/MXMLJSCRoyale.java
>     > b/compiler-jx/src/main/java/org/apache/royale/compiler/
>     > clients/MXMLJSCRoyale.java
>     > index c4619f1..4cae1fe 100644
>     > --- a/compiler-jx/src/main/java/org/apache/royale/compiler/
>     > clients/MXMLJSCRoyale.java
>     > +++ b/compiler-jx/src/main/java/org/apache/royale/compiler/
>     > clients/MXMLJSCRoyale.java
>     > @@ -39,6 +39,7 @@ import org.apache.royale.compiler.
> clients.problems.
>     > ProblemQueryProvider;
>     >  import org.apache.royale.compiler.clients.problems.
>     > WorkspaceProblemFormatter;
>     >  import org.apache.royale.compiler.codegen.js.IJSPublisher;
>     >  import org.apache.royale.compiler.codegen.js.IJSWriter;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.config.Configuration;
>     >  import org.apache.royale.compiler.config.ConfigurationBuffer;
>     >  import org.apache.royale.compiler.config.Configurator;
>     > @@ -236,6 +237,7 @@ public class MXMLJSCRoyale implements
>     > JSCompilerEntryPoint, ProblemQueryProvider
>     >
>     >              if (continueCompilation)
>     >              {
>     > +               CompilerDiagnosticsConstants.diagnostics =
>     > config.getDiagnosticsLevel();
>     >                  project.setProblems(problems.getProblems());
>     >                         compile();
>     >                  if (problems.hasFilteredProblems())
>     > diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/
>     > internal/projects/RoyaleJSProject.java b/compiler-jx/src/main/java/
>     > org/apache/royale/compiler/internal/projects/RoyaleJSProject.java
>     > index 604402b..32fec27 100644
>     > --- a/compiler-jx/src/main/java/org/apache/royale/compiler/
>     > internal/projects/RoyaleJSProject.java
>     > +++ b/compiler-jx/src/main/java/org/apache/royale/compiler/
>     > internal/projects/RoyaleJSProject.java
>     > @@ -31,6 +31,7 @@ import java.util.TreeSet;
>     >  import org.apache.royale.compiler.asdoc.royale.ASDocComment;
>     >  import org.apache.royale.compiler.clients.JSConfiguration;
>     >  import org.apache.royale.compiler.common.DependencyType;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.config.Configuration;
>     >  import org.apache.royale.compiler.config.Configurator;
>     >  import org.apache.royale.compiler.css.ICSSMediaQueryCondition;
>     > @@ -131,15 +132,27 @@ public class RoyaleJSProject extends
> RoyaleProject
>     >          {
>     >              if (from != to)
>     >              {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT) ==
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT)
>     > +                       System.out.println("RoyaleJSProject waiting
> for
>     > lock in updateRequiresMap from addDependency");
>     >                 updateRequiresMap(from, to, dt, qname);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT) ==
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT)
>     > +                       System.out.println("RoyaleJSProject done
> with
>     > lock in updateRequiresMap from addDependency");
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT) ==
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT)
>     > +                       System.out.println("RoyaleJSProject waiting
> for
>     > lock in updateJSModulesMap from addDependency");
>     >                 updateJSModulesMap(from, to, dt, qname);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT) ==
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT)
>     > +                       System.out.println("RoyaleJSProject done
> with
>     > lock in updateJSModulesMap from addDependency");
>     >              }
>     >          }
>     >          else
>     >          {
>     >              if (from != to)
>     >              {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT) ==
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT)
>     > +                       System.out.println("RoyaleJSProject waiting
> for
>     > lock in updateInterfacesMap from addDependency");
>     >                 updateInterfacesMap(from, to, dt, qname);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT) ==
>     > CompilerDiagnosticsConstants.ROYALEJSPROJECT)
>     > +                       System.out.println("RoyaleJSProject done
> with
>     > lock in updateInterfacesMap from addDependency");
>     >              }
>     >          }
>     >
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
> clients/ASC.java
>     > b/compiler/src/main/java/org/apache/royale/compiler/clients/ASC.java
>     > index 746d29a..615ce7c 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
> clients/ASC.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
> clients/ASC.java
>     > @@ -60,6 +60,7 @@ import org.apache.royale.compiler.
> clients.problems.
>     > ProblemPrinter;
>     >  import org.apache.royale.compiler.clients.problems.ProblemQuery;
>     >  import org.apache.royale.compiler.clients.problems.
>     > WorkspaceProblemFormatter;
>     >  import org.apache.royale.compiler.common.VersionInfo;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.config.RSLSettings;
>     >  import org.apache.royale.compiler.filespecs.FileSpecification;
>     >  import org.apache.royale.compiler.filespecs.IFileSpecification;
>     > @@ -820,7 +821,11 @@ public class ASC
>     >                          final FileNode fileNode = (FileNode)ast;
>     >                          final ImmutableSet<ICompilerProblem>
>     > skeletonProblems =
>     >                                  ImmutableSet.copyOf(fileNode.
>     > getProblems());
>     > +                       if ((CompilerDiagnosticsConstants.diagnostics
> &
>     > CompilerDiagnosticsConstants.FILE_NODE) ==
> CompilerDiagnosticsConstants.
>     > FILE_NODE)
>     > +                               System.out.println("ASC waiting for
> lock
>     > in populateFunctionNodes");
>     >                          fileNode.populateFunctionNodes();
>     > +                       if ((CompilerDiagnosticsConstants.diagnostics
> &
>     > CompilerDiagnosticsConstants.FILE_NODE) ==
> CompilerDiagnosticsConstants.
>     > FILE_NODE)
>     > +                               System.out.println("ASC done with
> lock in
>     > populateFunctionNodes");
>     >                          final ImmutableSet<ICompilerProblem>
> allProblems
>     > =
>     >                                  ImmutableSet.copyOf(fileNode.
>     > getProblems());
>     >
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
> clients/MXMLC.java
>     > b/compiler/src/main/java/org/apache/royale/compiler/
> clients/MXMLC.java
>     > index 0210105..8af2663 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
> clients/MXMLC.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
> clients/MXMLC.java
>     > @@ -48,6 +48,7 @@ import org.apache.royale.compiler.
>     > clients.problems.ProblemQuery;
>     >  import org.apache.royale.compiler.clients.problems.
>     > WorkspaceProblemFormatter;
>     >  import org.apache.royale.compiler.common.VersionInfo;
>     >  import org.apache.royale.compiler.config.CommandLineConfigurator;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.config.Configuration;
>     >  import org.apache.royale.compiler.config.ConfigurationBuffer;
>     >  import org.apache.royale.compiler.config.ConfigurationPathResolver;
>     > @@ -732,7 +733,11 @@ public class MXMLC implements FlexTool
>     >              final IASNode ast = compilationUnit.
>     > getSyntaxTreeRequest().get().getAST();
>     >              if (ast != null)
>     >              {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.FILE_NODE) ==
> CompilerDiagnosticsConstants.
>     > FILE_NODE)
>     > +                       System.out.println("MXMLC waiting for lock in
>     > populateFunctionNodes");
>     >                  ((IFileNode)ast).populateFunctionNodes();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.FILE_NODE) ==
> CompilerDiagnosticsConstants.
>     > FILE_NODE)
>     > +                       System.out.println("MXMLC done with lock in
>     > populateFunctionNodes");
>     >                  astDump.add(ast.toString());
>     >              }
>     >          }
>     > @@ -1022,7 +1027,12 @@ public class MXMLC implements FlexTool
>     >              @Override
>     >              public IFileSpecification apply(final String path)
>     >              {
>     > -                return workspace.getFileSpecification(path);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("MXMLC waiting for lock in
>     > toFileSpecifications");
>     > +                IFileSpecification ret = workspace.
>     > getFileSpecification(path);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("MXMLC waiting for lock in
>     > toFileSpecifications");
>     > +               return ret;
>     >              }
>     >          });
>     >      }
>     > diff --git a/compiler/src/main/java/org/
> apache/royale/compiler/common/NodeReference.java
>     > b/compiler/src/main/java/org/apache/royale/compiler/common/
>     > NodeReference.java
>     > index 5a83923..9144c92 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/common/
>     > NodeReference.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/common/
>     > NodeReference.java
>     > @@ -19,6 +19,7 @@
>     >
>     >  package org.apache.royale.compiler.common;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.filespecs.IFileSpecification;
>     >  import org.apache.royale.compiler.internal.scopes.ASFileScope;
>     >  import org.apache.royale.compiler.internal.scopes.ASScope;
>     > @@ -179,6 +180,8 @@ public class NodeReference
>     >              }
>     >              if( fileScope != null) {
>     >
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.NODE_REFERENCES) ==
>     > CompilerDiagnosticsConstants.NODE_REFERENCES)
>     > +                       System.out.println("NodeReference getting
> lock
>     > for " + fileSpec.getPath());
>     >                  // Grab the lock
>     >                  synchronized (this)
>     >                  {
>     > @@ -200,6 +203,8 @@ public class NodeReference
>     >                          nodeRef = new WeakReference<IASNode>(node);
>     >                      }
>     >                  }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.NODE_REFERENCES) ==
>     > CompilerDiagnosticsConstants.NODE_REFERENCES)
>     > +                       System.out.println("NodeReference done with
> lock
>     > for " + fileSpec.getPath());
>     >              }
>     >          }
>     >          return node;
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/definitions/ClassDefinitionBase.java
>     > b/compiler/src/main/java/org/apache/royale/compiler/
> internal/definitions/
>     > ClassDefinitionBase.java
>     > index ce66b7f..e61a283 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/definitions/ClassDefinitionBase.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/definitions/ClassDefinitionBase.java
>     > @@ -25,6 +25,7 @@ import java.util.*;
>     >  import org.apache.royale.compiler.common.DependencyType;
>     >  import org.apache.royale.compiler.common.RecursionGuard;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.constants.
> IMetaAttributeConstants;
>     >  import org.apache.royale.compiler.definitions.IClassDefinition;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     > @@ -418,7 +419,7 @@ public abstract class ClassDefinitionBase extends
>     > TypeDefinitionBase implements
>     >      private ArrayList<IDefinition> implDefinitions = null;
>     >
>     >      @Override
>     > -    public synchronized boolean isInstanceOf(final ITypeDefinition
> type,
>     > ICompilerProject project)
>     > +    public boolean isInstanceOf(final ITypeDefinition type,
>     > ICompilerProject project)
>     >      {
>     >          // A class is considered an instance of itself.
>     >          if (type == this)
>     > @@ -428,17 +429,27 @@ public abstract class ClassDefinitionBase
> extends
>     > TypeDefinitionBase implements
>     >          {
>     >                 if (baseDefinitions == null)
>     >                 {
>     > -                       baseDefinitions = new
> ArrayList<IDefinition>();
>     > -
>     > -                   // We're trying to determine whether this class
>     > -                   // is derived from a specified class ('type').
>     > -                   // Iterate the superclass chain looking for
> 'type'.
>     > -                   Iterator<IClassDefinition> iter =
>     > classIterator(project, false);
>     > -                   while (iter.hasNext())
>     > -                   {
>     > -                       IClassDefinition cls = iter.next();
>     > -                       baseDefinitions.add(cls);
>     > -                   }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE) ==
>     > CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE)
>     > +                       System.out.println("ClassDefinitionBase
> waiting
>     > for lock for " + this.getQualifiedName());
>     > +                       synchronized (this)
>     > +                       {
>     > +                               if (baseDefinitions == null)
>     > +                               {
>     > +                                       baseDefinitions = new
>     > ArrayList<IDefinition>();
>     > +
>     > +                                   // We're trying to determine
> whether
>     > this class
>     > +                                   // is derived from a specified
> class
>     > ('type').
>     > +                                   // Iterate the superclass chain
>     > looking for 'type'.
>     > +                                   Iterator<IClassDefinition> iter =
>     > classIterator(project, false);
>     > +                                   while (iter.hasNext())
>     > +                                   {
>     > +                                       IClassDefinition cls =
> iter.next();
>     > +                                       baseDefinitions.add(cls);
>     > +                                   }
>     > +                               }
>     > +                       }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE) ==
>     > CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE)
>     > +                       System.out.println("ClassDefinitionBase
> done with
>     > lock for " + this.getQualifiedName());
>     >                 }
>     >              return baseDefinitions.contains(type);
>     >          }
>     > @@ -446,18 +457,28 @@ public abstract class ClassDefinitionBase
> extends
>     > TypeDefinitionBase implements
>     >          {
>     >                 if (implDefinitions == null)
>     >                 {
>     > -                       implDefinitions = new
> ArrayList<IDefinition>();
>     > -
>     > -                   // We're trying to determine whether this class
>     > -                   // implements a specified interface ('type').
>     > -                   // Iterate all of the interfaces that this class
>     > implements,
>     > -                   // looking for 'type'.
>     > -                   Iterator<IInterfaceDefinition> iter =
>     > interfaceIterator(project);
>     > -                   while (iter.hasNext())
>     > -                   {
>     > -                       IInterfaceDefinition intf = iter.next();
>     > -                       implDefinitions.add(intf);
>     > -                   }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE) ==
>     > CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE)
>     > +                       System.out.println("ClassDefinitionBase
> waiting
>     > for lock for " + this.getQualifiedName());
>     > +                       synchronized (this)
>     > +                       {
>     > +                       if (implDefinitions == null)
>     > +                       {
>     > +                                       implDefinitions = new
>     > ArrayList<IDefinition>();
>     > +
>     > +                                   // We're trying to determine
> whether
>     > this class
>     > +                                   // implements a specified
> interface
>     > ('type').
>     > +                                   // Iterate all of the interfaces
> that
>     > this class implements,
>     > +                                   // looking for 'type'.
>     > +                                   Iterator<IInterfaceDefinition>
> iter =
>     > interfaceIterator(project);
>     > +                                   while (iter.hasNext())
>     > +                                   {
>     > +                                       IInterfaceDefinition intf =
>     > iter.next();
>     > +                                       implDefinitions.add(intf);
>     > +                                   }
>     > +                       }
>     > +                       }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE) ==
>     > CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE)
>     > +                       System.out.println("ClassDefinitionBase
> done with
>     > lock for " + this.getQualifiedName());
>     >                 }
>     >              return implDefinitions.contains(type);
>     >          }
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/definitions/DefinitionBase.java
> b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/definitions/DefinitionBase.java
>     > index 0626789..de6bdbc 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/definitions/DefinitionBase.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/definitions/DefinitionBase.java
>     > @@ -36,6 +36,7 @@ import org.apache.royale.compiler.
> common.ASModifier;
>     >  import org.apache.royale.compiler.common.DependencyType;
>     >  import org.apache.royale.compiler.common.ModifiersSet;
>     >  import org.apache.royale.compiler.common.NodeReference;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.constants.IASLanguageConstants;
>     >  import org.apache.royale.compiler.constants.
> IMetaAttributeConstants;
>     >  import org.apache.royale.compiler.constants.INamespaceConstants;
>     > @@ -1687,9 +1688,13 @@ public abstract class DefinitionBase
> implements
>     > IDocumentableDefinition, IDefini
>     >       */
>     >      private void countDefinitions()
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.COUNTER) ==
> CompilerDiagnosticsConstants.
>     > COUNTER)
>     > +               System.out.println("DefinitionBase incrementing
> Counter
>     > for " + getClass().getSimpleName());
>     >          Counter counter = Counter.getInstance();
>     >          counter.incrementCount(getClass().getSimpleName());
>     >          counter.incrementCount("definitions");
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.COUNTER) ==
> CompilerDiagnosticsConstants.
>     > COUNTER)
>     > +               System.out.println("DefinitionBase done incrementing
>     > Counter for " + getClass().getSimpleName());
>     >      }
>     >
>     >      //
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/embedding/transcoders/JPEGTranscoder.java
>     > b/compiler/src/main/java/org/apache/royale/compiler/
> internal/embedding/
>     > transcoders/JPEGTranscoder.java
>     > index e71ead5..409f303 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/embedding/transcoders/JPEGTranscoder.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/embedding/transcoders/JPEGTranscoder.java
>     > @@ -38,6 +38,7 @@ import javax.imageio.stream.
>     > MemoryCacheImageOutputStream;
>     >  import org.apache.commons.io.IOUtils;
>     >
>     >  import org.apache.royale.compiler.common.ISourceLocation;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.embedding.EmbedAttribute;
>     >  import org.apache.royale.compiler.internal.embedding.EmbedData;
>     >  import org.apache.royale.compiler.internal.workspaces.Workspace;
>     > @@ -173,7 +174,12 @@ public class JPEGTranscoder extends
> ImageTranscoder
>     >          writer.write(null, ioImage, writeParam);
>     >          writer.dispose();
>     >
>     > -        return buffer.getDirectByteArray();
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +               System.out.println("JPEGTranscoder waiting for lock
> in
>     > bufferedImageToJPEG");
>     > +        byte[] b =  buffer.getDirectByteArray();
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +               System.out.println("JPEGTranscoder waiting for lock
> in
>     > bufferedImageToJPEG");
>     > +       return b;
>     >      }
>     >
>     >      private DefineBitsTag buildImage(byte[] imageBytes, byte[]
> alphaBytes)
>     > @@ -203,7 +209,12 @@ public class JPEGTranscoder extends
> ImageTranscoder
>     >          {
>     >              IOUtils.closeQuietly(deflaterStream);
>     >          }
>     > -        return out.getDirectByteArray();
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +               System.out.println("JPEGTranscoder waiting for lock
> in
>     > deflate");
>     > +        byte[] b = out.getDirectByteArray();
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +               System.out.println("JPEGTranscoder waiting for lock
> in
>     > deflate");
>     > +       return b;
>     >      }
>     >
>     >      @Override
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/embedding/transcoders/SoundTranscoder.java
>     > b/compiler/src/main/java/org/apache/royale/compiler/
> internal/embedding/
>     > transcoders/SoundTranscoder.java
>     > index 9f9bbdc..128083a 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/embedding/transcoders/SoundTranscoder.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/embedding/transcoders/SoundTranscoder.java
>     > @@ -29,6 +29,7 @@ import java.util.Map;
>     >  import org.apache.commons.io.IOUtils;
>     >
>     >  import org.apache.royale.compiler.common.ISourceLocation;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.internal.embedding.EmbedData;
>     >  import org.apache.royale.compiler.internal.workspaces.Workspace;
>     >  import org.apache.royale.compiler.problems.
> EmbedCouldNotDetermineSampleFr
>     > ameCountProblem;
>     > @@ -253,7 +254,12 @@ public class SoundTranscoder extends
> TranscoderBase
>     >                      // assert false;
>     >                  }
>     >              }
>     > -            return baos.getDirectByteArray();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +                       System.out.println("SoundTranscoder waiting
> for
>     > lock in readFully");
>     > +            byte[] bb = baos.getDirectByteArray();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +                       System.out.println("SoundTranscoder waiting
> for
>     > lock in readFully");
>     > +               return bb;
>     >          }
>     >          catch (IOException e)
>     >          {
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/embedding/transcoders/TranscoderBase.java
>     > b/compiler/src/main/java/org/apache/royale/compiler/
> internal/embedding/
>     > transcoders/TranscoderBase.java
>     > index 0b3d480..caf7a81 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/embedding/transcoders/TranscoderBase.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/embedding/transcoders/TranscoderBase.java
>     > @@ -28,6 +28,7 @@ import java.util.Map;
>     >  import org.apache.commons.io.IOUtils;
>     >
>     >  import org.apache.royale.compiler.common.ISourceLocation;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.constants.INamespaceConstants;
>     >  import org.apache.royale.compiler.embedding.transcoders.
> ITranscoder;
>     >  import org.apache.royale.compiler.filespecs.
> IBinaryFileSpecification;
>     > @@ -194,7 +195,11 @@ public abstract class TranscoderBase implements
>     > ITranscoder
>     >          }
>     >          else
>     >          {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("TranscodeBase waiting
> for
>     > lock in getLatestBinaryFileSpecification");
>     >              IBinaryFileSpecification fileSpec = workspace.
>     > getLatestBinaryFileSpecification(source);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("TranscodeBase done with
> lock
>     > in getLatestBinaryFileSpecification");
>     >              inStrm = getDataStream(fileSpec, problems);
>     >          }
>     >
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/graph/SynchronizedGraph.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/graph/SynchronizedGraph.java
>     > index 918224a..5e7d6b5 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
> internal/graph/
>     > SynchronizedGraph.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
> internal/graph/
>     > SynchronizedGraph.java
>     > @@ -26,6 +26,8 @@ import java.util.concurrent.locks.Lock;
>     >  import java.util.concurrent.locks.ReadWriteLock;
>     >  import java.util.concurrent.locks.ReentrantReadWriteLock;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     > +
>     >  /**
>     >   * Thread safe implementation of IGraph. While the graph will
> always be
>     > in a
>     >   * consistent state, the graph may change between method calls, so
> clients
>     > @@ -46,6 +48,8 @@ public class SynchronizedGraph<V, E extends
>     > IGraphEdge<V>> extends Graph<V, E>
>     >      @Override
>     >      public boolean addVertex(V vertex)
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +               System.out.println("SynchronizedGraph.addVertex
> waiting
>     > for lock for " + getClass().getSimpleName());
>     >          lock.writeLock().lock();
>     >          try
>     >          {
>     > @@ -54,12 +58,16 @@ public class SynchronizedGraph<V, E extends
>     > IGraphEdge<V>> extends Graph<V, E>
>     >          finally
>     >          {
>     >              lock.writeLock().unlock();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +                       System.out.println("
> SynchronizedGraph.addVertex
>     > dpne with lock for " + getClass().getSimpleName());
>     >          }
>     >      }
>     >
>     >      @Override
>     >      public void removeVertex(V vertex)
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +               System.out.println("SynchronizedGraph.removeVertex
>     > waiting for lock for " + getClass().getSimpleName());
>     >          lock.writeLock().lock();
>     >          try
>     >          {
>     > @@ -68,11 +76,15 @@ public class SynchronizedGraph<V, E extends
>     > IGraphEdge<V>> extends Graph<V, E>
>     >          finally
>     >          {
>     >              lock.writeLock().unlock();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +                       System.out.println("
> SynchronizedGraph.removeVertex
>     > dpne with lock for " + getClass().getSimpleName());
>     >          }
>     >      }
>     >
>     >      public E setEdge(V from, V to, E e)
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +               System.out.println("SynchronizedGraph.setEdge
> waiting for
>     > lock for " + getClass().getSimpleName());
>     >          lock.writeLock().lock();
>     >          try
>     >          {
>     > @@ -81,12 +93,16 @@ public class SynchronizedGraph<V, E extends
>     > IGraphEdge<V>> extends Graph<V, E>
>     >          finally
>     >          {
>     >              lock.writeLock().unlock();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +                       System.out.println("
> SynchronizedGraph.setEdge
>     > dpne with lock for " + getClass().getSimpleName());
>     >          }
>     >      }
>     >
>     >      @Override
>     >      public E getEdge(V from, V to)
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +               System.out.println("SynchronizedGraph.getEdge
> waiting for
>     > lock for " + getClass().getSimpleName());
>     >          lock.writeLock().lock();
>     >          try
>     >          {
>     > @@ -95,12 +111,16 @@ public class SynchronizedGraph<V, E extends
>     > IGraphEdge<V>> extends Graph<V, E>
>     >          finally
>     >          {
>     >              lock.writeLock().unlock();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +                       System.out.println("
> SynchronizedGraph.getEdge
>     > dpne with lock for " + getClass().getSimpleName());
>     >          }
>     >      }
>     >
>     >      @Override
>     >      public Set<E> getOutgoingEdges(V vertex)
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +               System.out.println("SynchronizedGraph.
> getOutgoingEdges
>     > waiting for lock for " + getClass().getSimpleName());
>     >          lock.readLock().lock();
>     >          try
>     >          {
>     > @@ -110,12 +130,16 @@ public class SynchronizedGraph<V, E extends
>     > IGraphEdge<V>> extends Graph<V, E>
>     >          finally
>     >          {
>     >              lock.readLock().unlock();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +                       System.out.println("SynchronizedGraph.
> getOutgoingEdges
>     > dpne with lock for " + getClass().getSimpleName());
>     >          }
>     >      }
>     >
>     >      @Override
>     >      public Set<E> getIncomingEdges(V vertex)
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +               System.out.println("SynchronizedGraph.
> getIncomingEdges
>     > waiting for lock for " + getClass().getSimpleName());
>     >          lock.readLock().lock();
>     >          try
>     >          {
>     > @@ -125,12 +149,16 @@ public class SynchronizedGraph<V, E extends
>     > IGraphEdge<V>> extends Graph<V, E>
>     >          finally
>     >          {
>     >              lock.readLock().unlock();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +                       System.out.println("SynchronizedGraph.
> getIncomingEdges
>     > dpne with lock for " + getClass().getSimpleName());
>     >          }
>     >      }
>     >
>     >      @Override
>     >      public E removeEdge(E edge)
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +               System.out.println("SynchronizedGraph.removeEdge
> waiting
>     > for lock for " + getClass().getSimpleName());
>     >          lock.writeLock().lock();
>     >          try
>     >          {
>     > @@ -139,12 +167,16 @@ public class SynchronizedGraph<V, E extends
>     > IGraphEdge<V>> extends Graph<V, E>
>     >          finally
>     >          {
>     >              lock.writeLock().unlock();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +                       System.out.println("
> SynchronizedGraph.removeEdge
>     > dpne with lock for " + getClass().getSimpleName());
>     >          }
>     >      }
>     >
>     >      @Override
>     >      public Set<V> getVertices()
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +               System.out.println("SynchronizedGraph.getVertices
> waiting
>     > for lock for " + getClass().getSimpleName());
>     >          lock.readLock().lock();
>     >          try
>     >          {
>     > @@ -154,6 +186,8 @@ public class SynchronizedGraph<V, E extends
>     > IGraphEdge<V>> extends Graph<V, E>
>     >          finally
>     >          {
>     >              lock.readLock().unlock();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH) ==
>     > CompilerDiagnosticsConstants.SYNCHRONIZED_GRAPH)
>     > +                       System.out.println("
> SynchronizedGraph.getVertices
>     > dpne with lock for " + getClass().getSimpleName());
>     >          }
>     >      }
>     >
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/mxml/MXMLManifestManager.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/mxml/MXMLManifestManager.java
>     > index cf03e4b..499324f 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
> internal/mxml/
>     > MXMLManifestManager.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
> internal/mxml/
>     > MXMLManifestManager.java
>     > @@ -42,6 +42,7 @@ import org.apache.royale.compiler.
>     > mxml.IMXMLNamespaceMapping;
>     >  import org.apache.royale.compiler.problems.ICompilerProblem;
>     >  import org.apache.royale.compiler.problems.ManifestProblem;
>     >  import org.apache.royale.compiler.common.XMLName;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.filespecs.IFileSpecification;
>     >  import org.apache.royale.compiler.internal.projects.RoyaleProject;
>     >  import org.apache.royale.swc.ISWCComponent;
>     > @@ -216,7 +217,11 @@ public class MXMLManifestManager implements
>     > IMXMLManifestManager
>     >      {
>     >          Document manifestDocument = null;
>     >
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +               System.out.println("MXMLManifestManager waiting for
> lock
>     > in addManifest");
>     >          IFileSpecification manifestFileSpec =
> project.getWorkspace().
>     > getFileSpecification(manifestFileName);
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +               System.out.println("MXMLManifestManager done with
> lock in
>     > addManifest");
>     >
>     >          try
>     >          {
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/TokenBase.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/parsing/TokenBase.java
>     > index 2548744..08006be 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/TokenBase.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/TokenBase.java
>     > @@ -22,6 +22,7 @@ package org.apache.royale.compiler.
> internal.parsing;
>     >  import antlr.Token;
>     >
>     >  import org.apache.royale.compiler.common.ISourceLocation;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.internal.common.Counter;
>     >  import org.apache.royale.compiler.internal.parsing.as.ASTokenTypes;
>     >  import org.apache.royale.compiler.internal.parsing.as.
> IncludeHandler;
>     > @@ -540,9 +541,13 @@ public abstract class TokenBase extends Token
>     > implements ICMToken, ISourceLocati
>     >       */
>     >      private void countTokens()
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.COUNTER) ==
> CompilerDiagnosticsConstants.
>     > COUNTER)
>     > +               System.out.println("TokenBase incrementing counter
> for " +
>     > getClass().getSimpleName());
>     >          Counter counter = Counter.getInstance();
>     >          counter.incrementCount(getClass().getSimpleName());
>     >          counter.incrementCount("tokens");
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.COUNTER) ==
> CompilerDiagnosticsConstants.
>     > COUNTER)
>     > +               System.out.println("TokenBase done incrementing
> counter
>     > for " + getClass().getSimpleName());
>     >      }
>     >
>     >      @Override
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/as/ASToken.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/parsing/as/ASToken.java
>     > index 5a385e6..52f2040 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/as/ASToken.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/as/ASToken.java
>     > @@ -21,6 +21,7 @@ package org.apache.royale.compiler.
> internal.parsing.as;
>     >
>     >  import java.lang.reflect.Field;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.internal.parsing.TokenBase;
>     >  import org.apache.royale.compiler.parsing.IASToken;
>     >  import org.apache.royale.compiler.parsing.ICMToken;
>     > @@ -892,7 +893,11 @@ public class ASToken extends TokenBase
> implements
>     > IASToken, ASTokenTypes
>     >      @Override
>     >      protected String getTypeString()
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASTOKEN) ==
> CompilerDiagnosticsConstants.
>     > ASTOKEN)
>     > +               System.out.println("ASToken waiting for lock for " +
>     > getSourcePath() + ":" + getLine() + ":" + getColumn());
>     >          initializeTokenNames();
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASTOKEN) ==
> CompilerDiagnosticsConstants.
>     > ASTOKEN)
>     > +               System.out.println("ASToken done with lock for " +
>     > getSourcePath() + ":" + getLine() + ":" + getColumn());
>     >          return tokenNames.get(getType());
>     >      }
>     >
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/as/BaseASParser.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/parsing/as/BaseASParser.java
>     > index a4f6a15..aff02fa 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/as/BaseASParser.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/as/BaseASParser.java
>     > @@ -62,6 +62,7 @@ import org.apache.royale.compiler.
>     > asdoc.IASParserASDocDelegate;
>     >  import org.apache.royale.compiler.common.IFileSpecificationGetter;
>     >  import org.apache.royale.compiler.common.ISourceLocation;
>     >  import org.apache.royale.compiler.common.SourceLocation;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.constants.IASKeywordConstants;
>     >  import org.apache.royale.compiler.constants.IASLanguageConstants;
>     >  import org.apache.royale.compiler.constants.
> IMetaAttributeConstants;
>     > @@ -933,8 +934,12 @@ abstract class BaseASParser extends LLkParser
>     > implements IProblemReporter
>     >              if (!new File(sourcePath).isFile())
>     >                  return null;
>     >
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("BaseASParser waiting
> for lock
>     > in tryGetSecondaryReader");
>     >              // try to create a reader from file specification
>     >              final IFileSpecification fileSpec = workspace.
>     > getFileSpecification(sourcePath);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("BaseASParser done with
> lock
>     > in tryGetSecondaryReader");
>     >              if (fileSpec != null)
>     >              {
>     >                  try
>     > @@ -1183,7 +1188,11 @@ abstract class BaseASParser extends LLkParser
>     > implements IProblemReporter
>     >              final int column,
>     >              final Collection<ICompilerProblem> problems)
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +               System.out.println("BaseASParser waiting for lock in
>     > parseMetadata");
>     >          final long lastModified = workspace.getFileSpecification(
>     > sourcePath).getLastModified();
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +               System.out.println("BaseASParser done with lock in
>     > parseMetadata");
>     >          final IFileSpecification fileSpec = new
> StringFileSpecification(sourcePath,
>     > metadataContent, lastModified);
>     >          final IncludeHandler includeHandler = new
>     > IncludeHandler(workspace);
>     >          final ASParser parser = new ASParser(workspace,
>     > (IRepairingTokenBuffer)null);
>     > @@ -1583,12 +1592,20 @@ abstract class BaseASParser extends LLkParser
>     > implements IProblemReporter
>     >          final ICompilerProblem syntaxProblem;
>     >          if (ex instanceof MismatchedTokenException)
>     >          {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASTOKEN) ==
> CompilerDiagnosticsConstants.
>     > ASTOKEN)
>     > +                       System.out.println("BaseASParser waiting
> for lock
>     > for typeToKind");
>     >              final ASTokenKind expectedKind = ASToken.typeToKind(((
>     > MismatchedTokenException)ex).expecting);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASTOKEN) ==
> CompilerDiagnosticsConstants.
>     > ASTOKEN)
>     > +                       System.out.println("BaseASParser done with
> lock
>     > for typeToKind");
>     >              syntaxProblem = unexpectedTokenProblem(current,
>     > expectedKind);
>     >          }
>     >          else if (endToken != NO_END_TOKEN)
>     >          {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASTOKEN) ==
> CompilerDiagnosticsConstants.
>     > ASTOKEN)
>     > +                       System.out.println("BaseASParser waiting
> for lock
>     > for typeToKind");
>     >              final ASTokenKind expectedKind =
> ASToken.typeToKind(endToken);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASTOKEN) ==
> CompilerDiagnosticsConstants.
>     > ASTOKEN)
>     > +                       System.out.println("BaseASParser done with
> lock
>     > for typeToKind");
>     >              syntaxProblem = unexpectedTokenProblem(current,
>     > expectedKind);
>     >          }
>     >          else
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/mxml/MXMLScopeBuilder.java
> b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/parsing/mxml/MXMLScopeBuilder.java
>     > index 4e452f5..a2af339 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/mxml/MXMLScopeBuilder.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/parsing/mxml/MXMLScopeBuilder.java
>     > @@ -33,6 +33,7 @@ import java.util.List;
>     >  import org.apache.commons.io.IOUtils;
>     >  import org.apache.royale.compiler.common.IFileSpecificationGetter;
>     >  import org.apache.royale.compiler.common.Multiname;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     >  import org.apache.royale.compiler.definitions.INamespaceDefinition;
>     >  import org.apache.royale.compiler.definitions.metadata.IMetaTag;
>     > @@ -558,7 +559,11 @@ public class MXMLScopeBuilder
>     >                              mxmlTextData.getCompilableTextColumn(),
>     > problems);
>     >                      if (metaTagNodes != null)
>     >                      {
>     > +                       if ((CompilerDiagnosticsConstants.diagnostics
> &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                               System.out.println("MXMLScopeBuilder
>     > waiting for lock in processMetadataTag");
>     >                          IFileSpecification containingFileSpec =
>     > fileScope.getWorkspace().getFileSpecification(
>     > fileScope.getContainingPath());
>     > +                       if ((CompilerDiagnosticsConstants.diagnostics
> &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                               System.out.println("MXMLScopeBuilder
> done
>     > with lock in processMetadataTag");
>     >                          IMetaTag[] newMetaTags =
>     > metaTagNodes.buildMetaTags(containingFileSpec,
> currentClassDefinition);
>     >                          if( newMetaTags != null )
>     >                          {
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/projects/ConfigManager.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/projects/ConfigManager.java
>     > index bddd7a4..8db455f 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
> internal/projects/
>     > ConfigManager.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
> internal/projects/
>     > ConfigManager.java
>     > @@ -27,6 +27,7 @@ import java.util.LinkedHashMap;
>     >  import java.util.List;
>     >  import java.util.Map;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.constants.IASKeywordConstants;
>     >  import org.apache.royale.compiler.constants.IASLanguageConstants;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     > @@ -156,7 +157,13 @@ public final class ConfigManager
>     >          public List<ConfigConstNode> getConfigVariables()
>     >          {
>     >              if(constNodes == null)
>     > +            {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER) ==
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER)
>     > +                       System.out.println("ConfigManager waiting
> for
>     > lock for loadConfigData");
>     >                  loadConfigData();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER) ==
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER)
>     > +                       System.out.println("ConfigManager done with
> lock
>     > for loadConfigData");
>     > +            }
>     >              return constNodes;
>     >          }
>     >
>     > @@ -164,7 +171,13 @@ public final class ConfigManager
>     >          public List<ConfigNamespaceNode> getConfigNamespaces()
>     >          {
>     >              if(configNamespaces == null)
>     > +            {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER) ==
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER)
>     > +                       System.out.println("ConfigManager waiting
> for
>     > lock for loadConfigData");
>     >                  loadConfigData();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER) ==
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER)
>     > +                       System.out.println("ConfigManager done with
> lock
>     > for loadConfigData");
>     > +            }
>     >              return configNamespaces;
>     >          }
>     >
>     > @@ -172,7 +185,13 @@ public final class ConfigManager
>     >          public List<String> getConfigNamespaceNames()
>     >          {
>     >              if(nsNames == null)
>     > +            {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER) ==
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER)
>     > +                       System.out.println("ConfigManager waiting
> for
>     > lock for loadConfigData");
>     >                  loadConfigData();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER) ==
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER)
>     > +                       System.out.println("ConfigManager done with
> lock
>     > for loadConfigData");
>     > +            }
>     >              return nsNames;
>     >          }
>     >
>     > @@ -180,7 +199,13 @@ public final class ConfigManager
>     >          public Collection<ICompilerProblem> getProblems()
>     >          {
>     >              if(problems == null)
>     > +            {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER) ==
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER)
>     > +                       System.out.println("ConfigManager waiting
> for
>     > lock for loadConfigData");
>     >                  loadConfigData();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER) ==
>     > CompilerDiagnosticsConstants.CONFIG_MANAGER)
>     > +                       System.out.println("ConfigManager done with
> lock
>     > for loadConfigData");
>     > +            }
>     >              return problems;
>     >          }
>     >
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/scopes/ASScopeBase.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/scopes/ASScopeBase.java
>     > index 0817e04..34fa1d6 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/scopes/ASScopeBase.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/scopes/ASScopeBase.java
>     > @@ -25,6 +25,7 @@ import java.util.LinkedList;
>     >  import java.util.List;
>     >  import java.util.Set;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     >  import org.apache.royale.compiler.definitions.INamespaceDefinition;
>     >  import org.apache.royale.compiler.definitions.IScopedDefinition;
>     > @@ -512,8 +513,12 @@ public abstract class ASScopeBase implements
> IASScope
>     >       */
>     >      private void countScopes()
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.COUNTER) ==
> CompilerDiagnosticsConstants.
>     > COUNTER)
>     > +               System.out.println("ASScopeBase incrementing
> counter for
>     > " + getClass().getSimpleName());
>     >          Counter counter = Counter.getInstance();
>     >          counter.incrementCount(getClass().getSimpleName());
>     >          counter.incrementCount("scopes");
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.COUNTER) ==
> CompilerDiagnosticsConstants.
>     > COUNTER)
>     > +               System.out.println("ASScopeBase done incrementing
> counter
>     > for " + getClass().getSimpleName());
>     >      }
>     >  }
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/scopes/ASScopeCache.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/scopes/ASScopeCache.java
>     > index 8d9d1d7..fb43722 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/scopes/ASScopeCache.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/scopes/ASScopeCache.java
>     > @@ -20,6 +20,7 @@
>     >  package org.apache.royale.compiler.internal.scopes;
>     >
>     >  import org.apache.royale.compiler.common.DependencyType;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.constants.IASLanguageConstants;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     >  import org.apache.royale.compiler.definitions.IInterfaceDefinition;
>     > @@ -205,6 +206,8 @@ public class ASScopeCache
>     >          ConcurrentMap<String, IDefinition> map = findPropCache !=
> null ?
>     > findPropCache.get() : null;
>     >          if (map == null)
>     >          {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache waiting
> for lock
>     > in getScopeChainMap");
>     >              synchronized (this)
>     >              {
>     >                  // Check again, in case another thread updated the
> map
>     > first
>     > @@ -215,6 +218,8 @@ public class ASScopeCache
>     >                      findPropCache = new SoftReference<ConcurrentMap<
> String,
>     > IDefinition>>(map);
>     >                  }
>     >              }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache done with
> lock
>     > in getScopeChainMap");
>     >          }
>     >          return map;
>     >      }
>     > @@ -224,6 +229,8 @@ public class ASScopeCache
>     >          ConcurrentMap<QName, IDefinition> map =
> findPropQualifiedCache !=
>     > null ? findPropQualifiedCache.get() : null;
>     >          if (map == null)
>     >          {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache waiting
> for lock
>     > in getQualifiedScopeChainMap");
>     >              synchronized (this)
>     >              {
>     >                  // Check again, in case another thread updated the
> map
>     > first
>     > @@ -234,6 +241,8 @@ public class ASScopeCache
>     >                      findPropQualifiedCache = new
>     > SoftReference<ConcurrentMap<QName, IDefinition>>(map);
>     >                  }
>     >              }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache done with
> lock
>     > in getQualifiedScopeChainMap");
>     >          }
>     >          return map;
>     >      }
>     > @@ -402,6 +411,8 @@ public class ASScopeCache
>     >          ConcurrentMap<String, Set<INamespaceDefinition>> map =
>     > namespacesForNameCache != null ? namespacesForNameCache.get() : null;
>     >          if (map == null)
>     >          {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache waiting
> for lock
>     > in getNamespacesForNameMap");
>     >              synchronized (this)
>     >              {
>     >                  // Check again, in case another thread updated the
> map
>     > first
>     > @@ -412,6 +423,8 @@ public class ASScopeCache
>     >                      namespacesForNameCache = new
>     > SoftReference<ConcurrentMap<String, Set<INamespaceDefinition>>>(
> map);
>     >                  }
>     >              }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache done with
> lock
>     > in getNamespacesForNameMap");
>     >          }
>     >          return map;
>     >      }
>     > @@ -421,6 +434,8 @@ public class ASScopeCache
>     >          ConcurrentMap<IResolvedQualifiersReference, IDefinition>
> map =
>     > multinameLookupCache != null ? multinameLookupCache.get() : null;
>     >          if (map == null)
>     >          {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache waiting
> for lock
>     > in getMultinameLookupMap");
>     >              synchronized (this)
>     >              {
>     >                  // Check again, in case another thread updated the
> map
>     > first
>     > @@ -431,6 +446,8 @@ public class ASScopeCache
>     >                      multinameLookupCache = new
>     > SoftReference<ConcurrentMap<IResolvedQualifiersReference,
>     > IDefinition>>(map);
>     >                  }
>     >              }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache done with
> lock
>     > in getMultinameLookupMap");
>     >          }
>     >          return map;
>     >      }
>     > @@ -440,6 +457,8 @@ public class ASScopeCache
>     >          ConcurrentMap<IDefinition, Object> map =
> constValueLookupCache !=
>     > null ? constValueLookupCache.get() : null;
>     >          if (map == null)
>     >          {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache waiting
> for lock
>     > in getConstantValueLookupMap");
>     >              synchronized (this)
>     >              {
>     >                  // Check again, in case another thread updated the
> map
>     > first
>     > @@ -450,6 +469,8 @@ public class ASScopeCache
>     >                      constValueLookupCache = new
>     > SoftReference<ConcurrentMap<IDefinition, Object>>(map);
>     >                  }
>     >              }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache done with
> lock
>     > in getConstantValueLookupMap");
>     >          }
>     >          return map;
>     >      }
>     > @@ -459,6 +480,8 @@ public class ASScopeCache
>     >          Set<IASLanguageConstants.BuiltinType> set =
>     > builtinTypeDependencyCache != null ? builtinTypeDependencyCache.get()
> :
>     > null;
>     >          if (set == null)
>     >          {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache waiting
> for lock
>     > in getBuiltinTypeMap");
>     >              synchronized (this)
>     >              {
>     >                  // Check again, in case another thread updated the
> set
>     > first
>     > @@ -469,6 +492,8 @@ public class ASScopeCache
>     >                      builtinTypeDependencyCache = new
> SoftReference<Set<
>     > IASLanguageConstants.BuiltinType>>(set);
>     >                  }
>     >              }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache done with
> lock
>     > in getBuiltinTypeMap");
>     >          }
>     >          return set;
>     >      }
>     > @@ -494,14 +519,22 @@ public class ASScopeCache
>     >          Boolean valueObject = needsEventDispatcherCache;
>     >          if (valueObject != null)
>     >              return valueObject.booleanValue();
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +               System.out.println("ASScopeCache waiting for lock in
>     > needsEventDispatcher");
>     >          synchronized (this)
>     >          {
>     >              // Check again, in case another thread updated the
> value first
>     >              valueObject = needsEventDispatcherCache;
>     >              if (valueObject != null)
>     > +            {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache done with
> lock
>     > in needsEventDispatcher");
>     >                  return valueObject.booleanValue();
>     > +            }
>     >              boolean computedValue = ((ClassDefinitionBase)scope.
>     > getDefinition()).computeNeedsEventDispatcher(project);
>     >              needsEventDispatcherCache = computedValue;
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache done with
> lock
>     > in needsEventDispatcher");
>     >              return computedValue;
>     >          }
>     >      }
>     > @@ -516,15 +549,23 @@ public class ASScopeCache
>     >          if( interfs != null )
>     >              return interfs;
>     >
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +               System.out.println("ASScopeCache waiting for lock in
>     > resolveInterfaces");
>     >          synchronized (this)
>     >          {
>     >              // check again in case another thread updated the value
> first
>     >              interfs = interfacesCache != null ?
> interfacesCache.get() :
>     > null;
>     >              if( interfs != null )
>     > +            {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache done with
> lock
>     > in resolveInterfaces");
>     >                  return interfs;
>     > +            }
>     >
>     >              interfs = ((TypeDefinitionBase)scope.getDefinition()).
>     > resolveInterfacesImpl(project);
>     >              interfacesCache = new SoftReference<
> IInterfaceDefinition[]>(
>     > interfs);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.ASSCOPECACHE) ==
>     > CompilerDiagnosticsConstants.ASSCOPECACHE)
>     > +                       System.out.println("ASScopeCache done with
> lock
>     > in resolveInterfaces");
>     >              return interfs;
>     >          }
>     >      }
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/targets/SWCTarget.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/targets/SWCTarget.java
>     > index 698834a..8088ec9 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/targets/SWCTarget.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/targets/SWCTarget.java
>     > @@ -46,6 +46,7 @@ import org.apache.royale.compiler.
>     > common.DependencyTypeSet;
>     >  import org.apache.royale.compiler.common.ISourceLocation;
>     >  import org.apache.royale.compiler.common.VersionInfo;
>     >  import org.apache.royale.compiler.common.XMLName;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.constants.
> IMetaAttributeConstants;
>     >  import org.apache.royale.compiler.definitions.IClassDefinition;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     > @@ -344,7 +345,11 @@ public class SWCTarget extends Target implements
>     > ISWCTarget
>     >              IOUtils.copy(fileInputStream, buffer);
>     >              IOUtils.closeQuietly(buffer);
>     >              IOUtils.closeQuietly(fileInputStream);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +                       System.out.println("SWCTarget waiting for
> lock in
>     > getContents");
>     >              contents = buffer.getDirectByteArray();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +                       System.out.println("SWCTarget waiting for
> lock in
>     > getContents");
>     >          }
>     >          catch (IOException e)
>     >          {
>     > @@ -862,7 +867,11 @@ public class SWCTarget extends Target implements
>     > ISWCTarget
>     >                  for (File file : files)
>     >                  {
>     >                      String path = file.getAbsolutePath();
>     > +                       if ((CompilerDiagnosticsConstants.diagnostics
> &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                               System.out.println("SWCTarget
> waiting for
>     > lock in getLatestBinaryFileSpecification");
>     >                      IBinaryFileSpecification fileSpec =
>     > project.getWorkspace().getLatestBinaryFileSpecification(path);
>     > +                       if ((CompilerDiagnosticsConstants.diagnostics
> &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                               System.out.println("SWCTarget done
> with
>     > lock in getLatestBinaryFileSpecification");
>     >
>     >                      if (filename != null && fileSpec != null)
>     >                      {
>     > @@ -876,7 +885,11 @@ public class SWCTarget extends Target implements
>     > ISWCTarget
>     >              else
>     >              {
>     >                  String path = entry.getValue().getAbsolutePath();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("SWCTarget waiting for
> lock in
>     > getLatestBinaryFileSpecification");
>     >                  IBinaryFileSpecification fileSpec =
>     > project.getWorkspace().getLatestBinaryFileSpecification(path);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("SWCTarget done with lock
> in
>     > getLatestBinaryFileSpecification");
>     >
>     >                  if (filename != null && fileSpec != null)
>     >                  {
>     > @@ -978,7 +991,11 @@ public class SWCTarget extends Target implements
>     > ISWCTarget
>     >                  {
>     >                      String sourcePath =
> classDefinition.getSourcePath();
>     >                      iconFilePath = FilenameUtils.getFullPath(
> sourcePath)
>     > + iconFilePath;
>     > +                       if ((CompilerDiagnosticsConstants.diagnostics
> &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                               System.out.println("SWCTarget
> waiting for
>     > lock in getLatestBinaryFileSpecification");
>     >                      fileSpec = project.getWorkspace().
>     > getLatestBinaryFileSpecification(iconFilePath);
>     > +                       if ((CompilerDiagnosticsConstants.diagnostics
> &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                               System.out.println("SWCTarget done
> with
>     > lock in getLatestBinaryFileSpecification");
>     >                  }
>     >
>     >                  FileEntryValue value = new FileEntryValue(fileSpec,
>     > iconFileMetaTag);
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/as/FunctionNode.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/tree/as/FunctionNode.java
>     > index ca28b80..c48154b 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/as/FunctionNode.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/as/FunctionNode.java
>     > @@ -34,6 +34,7 @@ import java.util.concurrent.locks.ReentrantLock;
>     >
>     >  import org.apache.royale.compiler.common.ASImportTarget;
>     >  import org.apache.royale.compiler.common.IImportTarget;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.constants.IASLanguageConstants;
>     >  import org.apache.royale.compiler.constants.INamespaceConstants;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     > @@ -800,7 +801,11 @@ public class FunctionNode extends
>     > BaseTypedDefinitionNode implements IFunctionNo
>     >                  else
>     >                  {
>     >                      // from file using offset
>     > +                       if ((CompilerDiagnosticsConstants.diagnostics
> &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                               System.out.println("FunctionNode
> waiting
>     > for lock in parseFunctionBody");
>     >                      sourceReader = workspace.getFileSpecification(
>     > sourcePath).createReader();
>     > +                       if ((CompilerDiagnosticsConstants.diagnostics
> &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                               System.out.println("FunctionNode
> done
>     > with lock in parseFunctionBody");
>     >                      sourceReader.skip(openT.getLocalEnd());
>     >                  }
>     >
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
> internal/tree/as/NodeBase.java
>     > b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/as/NodeBase.java
>     > index b81c9f0..d4d9941 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/as/NodeBase.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/as/NodeBase.java
>     > @@ -28,6 +28,7 @@ import antlr.Token;
>     >  import org.apache.royale.compiler.common.ASModifier;
>     >  import org.apache.royale.compiler.common.ISourceLocation;
>     >  import org.apache.royale.compiler.common.SourceLocation;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     >  import org.apache.royale.compiler.filespecs.IFileSpecification;
>     >  import org.apache.royale.compiler.internal.common.Counter;
>     > @@ -127,7 +128,12 @@ public abstract class NodeBase extends
> SourceLocation
>     > implements IASNode
>     >          // TODO Make sure this works with include processing!!!
>     >          ASFileScope fileScope = getFileScope();
>     >          IWorkspace w = fileScope.getWorkspace();
>     > -        return w.getFileSpecification(
> fileScope.getContainingPath());
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +               System.out.println("NodeBase waiting for lock in
>     > getFileSpecification");
>     > +        IFileSpecification fs = w.getFileSpecification(
>     > fileScope.getContainingPath());
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +               System.out.println("NodeBase done with lock in
>     > getFileSpecification");
>     > +        return fs;
>     >      }
>     >
>     >      @Override
>     > @@ -1042,8 +1048,12 @@ public abstract class NodeBase extends
>     > SourceLocation implements IASNode
>     >       */
>     >      private void countNodes()
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.COUNTER) ==
> CompilerDiagnosticsConstants.
>     > COUNTER)
>     > +               System.out.println("ASScopeBase incrementing
> counter for
>     > " + getClass().getSimpleName());
>     >          Counter counter = Counter.getInstance();
>     >          counter.incrementCount(getClass().getSimpleName());
>     >          counter.incrementCount("nodes");
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.COUNTER) ==
> CompilerDiagnosticsConstants.
>     > COUNTER)
>     > +               System.out.println("ASScopeBase done incrementing
> counter
>     > for " + getClass().getSimpleName());
>     >      }
>     >  }
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/mxml/MXMLFileNode.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/tree/mxml/MXMLFileNode.java
>     > index e5dc33d..e9c5517 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/mxml/MXMLFileNode.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/mxml/MXMLFileNode.java
>     > @@ -29,6 +29,7 @@ import java.util.Set;
>     >
>     >  import org.apache.royale.compiler.asdoc.IASDocComment;
>     >  import org.apache.royale.compiler.common.IEmbedResolver;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.definitions.IClassDefinition;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     >  import org.apache.royale.compiler.definitions.IFunctionDefinition;
>     > @@ -367,7 +368,12 @@ public class MXMLFileNode extends MXMLNodeBase
>     > implements IMXMLFileNode, IScoped
>     >      @Override
>     >      public IFileSpecification getFileSpecification()
>     >      {
>     > -        return fileScope.getWorkspace().getFileSpecification(
>     > fileScope.getContainingPath());
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +               System.out.println("MXMLFileNode waiting for lock in
>     > getFileSpecification");
>     > +       IFileSpecification fs = fileScope.getWorkspace().
>     > getFileSpecification(fileScope.getContainingPath());
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +               System.out.println("MXMLFileNode done with lock in
>     > getFileSpecification");
>     > +       return fs;
>     >      }
>     >
>     >      @Override
>     > @@ -508,10 +514,20 @@ public class MXMLFileNode extends MXMLNodeBase
>     > implements IMXMLFileNode, IScoped
>     >       * @return CSS semantic information.
>     >       */
>     >      @Override
>     > -    public synchronized CSSCompilationSession
> getCSSCompilationSession()
>     > +    public CSSCompilationSession getCSSCompilationSession()
>     >      {
>     >          if (cssCompilationSession == null)
>     > -            cssCompilationSession = project.
> getCSSCompilationSession();
>     > +        {
>     > +               synchronized (this)
>     > +               {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.FILE_NODE) ==
> CompilerDiagnosticsConstants.
>     > FILE_NODE)
>     > +                       System.out.println("MXMLFileNode waiting
> for lock
>     > in getCSSCompilationSession");
>     > +                if (cssCompilationSession == null)
>     > +                       cssCompilationSession = project.
> getCSSCompilationSession();
>     >
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.FILE_NODE) ==
> CompilerDiagnosticsConstants.
>     > FILE_NODE)
>     > +                       System.out.println("MXMLFileNode done with
> lock
>     > in getCSSCompilationSession");
>     > +               }
>     > +        }
>     >          return cssCompilationSession;
>     >      }
>     >
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/mxml/MXMLScriptNode.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/tree/mxml/MXMLScriptNode.java
>     > index ef15874..ee5051f 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/mxml/MXMLScriptNode.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/mxml/MXMLScriptNode.java
>     > @@ -27,6 +27,7 @@ import java.util.List;
>     >  import org.apache.royale.compiler.problems.ICompilerProblem;
>     >  import org.apache.royale.compiler.problems.MXMLDualContentProblem;
>     >  import org.apache.royale.compiler.problems.
> UnexpectedExceptionProblem;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.filespecs.IFileSpecification;
>     >  import org.apache.royale.compiler.internal.mxml.MXMLDialect;
>     >  import org.apache.royale.compiler.internal.parsing.as.ASParser;
>     > @@ -125,7 +126,11 @@ class MXMLScriptNode extends MXMLNodeBase
> implements
>     > IMXMLScriptNode
>     >                  RoyaleProject project = builder.getProject();
>     >                  Workspace workspace = builder.getWorkspace();
>     >                  Collection<ICompilerProblem> problems =
>     > builder.getProblems();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("MXMLScriptNode waiting
> for
>     > lock in processTagSpecificAttribute");
>     >                  IFileSpecification sourceFileSpec = workspace.
>     > getFileSpecification(sourcePath);
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +                       System.out.println("MXMLScriptNode done
> with lock
>     > in processTagSpecificAttribute");
>     >                  String scriptText = builder.readExternalFile(
> attribute,
>     > sourcePath);
>     >
>     >                  if (scriptText != null)
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/mxml/MXMLTreeBuilder.java
> b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/tree/mxml/MXMLTreeBuilder.java
>     > index 2fe0ecb..c910880 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/mxml/MXMLTreeBuilder.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/tree/mxml/MXMLTreeBuilder.java
>     > @@ -35,6 +35,7 @@ import org.apache.royale.compiler.
> common.DependencyType;
>     >  import org.apache.royale.compiler.common.IFileSpecificationGetter;
>     >  import org.apache.royale.compiler.common.ISourceLocation;
>     >  import org.apache.royale.compiler.common.SourceLocation;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.constants.IASLanguageConstants;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     >  import org.apache.royale.compiler.definitions.ITypeDefinition;
>     > @@ -847,8 +848,12 @@ public class MXMLTreeBuilder
>     >          }
>     >
>     >          Workspace workspace = getWorkspace();
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +               System.out.println("MXMLTreeBuilder waiting for
> lock in
>     > getExternalMXMLData");
>     >          IFileSpecification sourceFileSpec =
>     >                  workspace.getFileSpecification(resolvedSourcePath);
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.WORKSPACE) ==
> CompilerDiagnosticsConstants.
>     > WORKSPACE)
>     > +               System.out.println("MXMLTreeBuilder done with lock
> in
>     > getExternalMXMLData");
>     >          IMXMLDataManager mxmlDataManager =
> workspace.getMXMLDataManager()
>     > ;
>     >
>     >          return mxmlDataManager.get(sourceFileSpec);
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/
>     > internal/units/ASCompilationUnit.java b/compiler/src/main/java/org/
>     > apache/royale/compiler/internal/units/ASCompilationUnit.java
>     > index c1884e8..b8266a1 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/
> internal/units/
>     > ASCompilationUnit.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/
> internal/units/
>     > ASCompilationUnit.java
>     > @@ -30,6 +30,7 @@ import java.util.Set;
>     >
>     >  import org.apache.royale.compiler.clients.ASC;
>     >  import org.apache.royale.compiler.common.DependencyType;
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     >  import org.apache.royale.compiler.filespecs.FileSpecification;
>     >  import org.apache.royale.compiler.filespecs.IFileSpecification;
>     > @@ -335,7 +336,11 @@ public class ASCompilationUnit extends
>     > CompilationUnitBase
>     >              }
>     >              final ImmutableSet<String> includedFiles =
>     > ast.getIncludeHandler().getIncludedFiles();
>     >              addScopeToProjectScope(new ASFileScope[] {
> ast.getFileScope()
>     > });
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.FILE_NODE) ==
> CompilerDiagnosticsConstants.
>     > FILE_NODE)
>     > +                       System.out.println("ASCompilationUnit
> waiting for
>     > lock in parseRequiredFunctionBodies");
>     >              ast.parseRequiredFunctionBodies();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.FILE_NODE) ==
> CompilerDiagnosticsConstants.
>     > FILE_NODE)
>     > +                       System.out.println("ASCompilationUnit done
> with
>     > lock in parseRequiredFunctionBodies");
>     >              final Collection<ICompilerProblem> problemCollection =
>     > ast.getProblems();
>     >              ASSyntaxTreeRequestResult result = new
>     > ASSyntaxTreeRequestResult(this, syntaxTreeRequest, ast,
> includedFiles,
>     > ast.getIncludeTreeLastModified(), problemCollection);
>     >              getProject().getWorkspace().
> addIncludedFilesToCompilationUnit(this,
>     > result.getIncludedFiles());
>     > diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/
>     > as/decorators/SymbolDecoratorProvider.java
> b/compiler/src/main/java/org/
>     > apache/royale/compiler/tree/as/decorators/
> SymbolDecoratorProvider.java
>     > index 36c0d09..f309bad 100644
>     > --- a/compiler/src/main/java/org/apache/royale/compiler/tree/
>     > as/decorators/SymbolDecoratorProvider.java
>     > +++ b/compiler/src/main/java/org/apache/royale/compiler/tree/
>     > as/decorators/SymbolDecoratorProvider.java
>     > @@ -23,6 +23,7 @@ import java.util.ArrayList;
>     >  import java.util.Iterator;
>     >  import java.util.List;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.compiler.definitions.IDefinition;
>     >  import org.apache.royale.compiler.tree.as.IVariableNode;
>     >
>     > @@ -71,6 +72,8 @@ public class SymbolDecoratorProvider
>     >       */
>     >      public List<IVariableTypeDecorator> getVariableTypeDecorators(
> IDefinition
>     > context)
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYMBOL_DECORATOR_PROVIDER) ==
>     > CompilerDiagnosticsConstants.SYMBOL_DECORATOR_PROVIDER)
>     > +               System.out.println("SymbolDecoratorProvider waiting
> for
>     > lock in getVariableTypeDecorators");
>     >          synchronized (variableTypeDecorators)
>     >          {
>     >              Iterator<IVariableTypeDecorator> it =
> variableTypeDecorators.
>     > iterator();
>     > @@ -83,6 +86,8 @@ public class SymbolDecoratorProvider
>     >                      retVal.add(next);
>     >                  }
>     >              }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.SYMBOL_DECORATOR_PROVIDER) ==
>     > CompilerDiagnosticsConstants.SYMBOL_DECORATOR_PROVIDER)
>     > +                       System.out.println("SymbolDecoratorProvider
> done
>     > with lock in getVariableTypeDecorators");
>     >              return retVal;
>     >          }
>     >      }
>     > diff --git a/compiler/src/main/java/org/apache/royale/swf/io/
> InputBitStream.java
>     > b/compiler/src/main/java/org/apache/royale/swf/io/
> InputBitStream.java
>     > index 0c30ec7..4cdcab9 100644
>     > --- a/compiler/src/main/java/org/apache/royale/swf/io/
> InputBitStream.java
>     > +++ b/compiler/src/main/java/org/apache/royale/swf/io/
> InputBitStream.java
>     > @@ -28,6 +28,7 @@ import java.util.zip.InflaterInputStream;
>     >
>     >  import org.apache.commons.io.IOUtils;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.swf.Header;
>     >  import org.apache.royale.utils.DAByteArrayOutputStream;
>     >
>     > @@ -287,7 +288,12 @@ public class InputBitStream extends InputStream
>     > implements IInputBitStream
>     >
>     >          try
>     >          {
>     > -            return new String(buffer.getDirectByteArray(), 0,
>     > buffer.size(), "UTF-8");
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +                       System.out.println("InputBitStream waiting
> for
>     > lock in readString");
>     > +            String ret = new String(buffer.getDirectByteArray(), 0,
>     > buffer.size(), "UTF-8");
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +                       System.out.println("InputBitStream done
> with lock
>     > in readString");
>     > +            return ret;
>     >          }
>     >          catch (UnsupportedEncodingException e)
>     >          {
>     > diff --git a/compiler/src/main/java/org/apache/royale/swf/io/
> LZMACompressor.java
>     > b/compiler/src/main/java/org/apache/royale/swf/io/
> LZMACompressor.java
>     > index f6b02ba..428fd04 100644
>     > --- a/compiler/src/main/java/org/apache/royale/swf/io/
> LZMACompressor.java
>     > +++ b/compiler/src/main/java/org/apache/royale/swf/io/
> LZMACompressor.java
>     > @@ -23,6 +23,7 @@ import java.io.IOException;
>     >  import java.io.InputStream;
>     >  import java.io.OutputStream;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.utils.DAByteArrayOutputStream;
>     >
>     >  import SevenZip.Compression.LZMA.Encoder;
>     > @@ -152,7 +153,11 @@ public class LZMACompressor
>     >       */
>     >      public void writeDataAndEnd(OutputStream outputStream) throws
>     > IOException
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +               System.out.println("LZMACompressor waiting for lock
> in
>     > writeDataAndEnd");
>     >          byte[] data = byteArrayOutputStream.getDirectByteArray();
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +               System.out.println("LZMACompressor waiting for lock
> in
>     > writeDataAndEnd");
>     >          outputStream.write(data, 0, data.length);
>     >          outputStream.flush();
>     >      }
>     > diff --git a/compiler/src/main/java/org/apache/royale/swf/io/
> LZMAInputStream.java
>     > b/compiler/src/main/java/org/apache/royale/swf/io/
> LZMAInputStream.java
>     > index 3da4a33..b8f67d8 100644
>     > --- a/compiler/src/main/java/org/apache/royale/swf/io/
> LZMAInputStream.java
>     > +++ b/compiler/src/main/java/org/apache/royale/swf/io/
> LZMAInputStream.java
>     > @@ -22,6 +22,7 @@ package org.apache.royale.swf.io;
>     >  import java.io.IOException;
>     >  import java.io.InputStream;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.utils.DAByteArrayOutputStream;
>     >
>     >  import SevenZip.Compression.LZMA.Decoder;
>     > @@ -89,6 +90,10 @@ public class LZMAInputStream extends InputStream
>     >
>     >          os.flush();
>     >          readIndex = 0;
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +               System.out.println("LZMAInputStream waiting for
> lock in
>     > initDecode");
>     >          buffer = os.getDirectByteArray();
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +               System.out.println("LZMAInputStream waiting for
> lock in
>     > initDecode");
>     >      }
>     >  }
>     > diff --git a/compiler/src/main/java/org/apache/royale/swf/io/
> OutputBitStream.java
>     > b/compiler/src/main/java/org/apache/royale/swf/io/
> OutputBitStream.java
>     > index 4c886b1..ae53f9e 100644
>     > --- a/compiler/src/main/java/org/apache/royale/swf/io/
> OutputBitStream.java
>     > +++ b/compiler/src/main/java/org/apache/royale/swf/io/
> OutputBitStream.java
>     > @@ -23,6 +23,7 @@ import java.io.IOException;
>     >  import java.io.OutputStream;
>     >  import java.util.zip.DeflaterOutputStream;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     >  import org.apache.royale.utils.DAByteArrayOutputStream;
>     >
>     >  /**
>     > @@ -127,7 +128,12 @@ public class OutputBitStream implements
>     > IOutputBitStream
>     >      public byte[] getBytes()
>     >      {
>     >          flush();
>     > -        return flatOutputBuffer.getDirectByteArray();
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +               System.out.println("OutputBitStream waiting for
> lock in
>     > getBytes");
>     > +        byte[] b = flatOutputBuffer.getDirectByteArray();
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY) ==
>     > CompilerDiagnosticsConstants.DA_BYTEARRAY)
>     > +                       System.out.println("OutputBitStream waiting
> for
>     > lock in getBytes");
>     > +               return b;
>     >      }
>     >
>     >      @Override
>     > diff --git a/compiler/src/main/java/org/apache/royale/utils/
> ArgumentUtil.java
>     > b/compiler/src/main/java/org/apache/royale/utils/ArgumentUtil.java
>     > index fdd9de8..30e0310 100644
>     > --- a/compiler/src/main/java/org/apache/royale/utils/
> ArgumentUtil.java
>     > +++ b/compiler/src/main/java/org/apache/royale/utils/
> ArgumentUtil.java
>     > @@ -27,6 +27,8 @@ import java.lang.reflect.Array;
>     >  import java.util.ArrayList;
>     >  import java.util.Collection;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     > +
>     >  public class ArgumentUtil {
>     >
>     >      // workaround for Royale bug.
>     > @@ -36,7 +38,11 @@ public class ArgumentUtil {
>     >          if (args.length > 1) {
>     >              String targetPath = args[args.length - 1];
>     >              if (targetPath.startsWith(".")) {
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.FILE_UTILS) ==
> CompilerDiagnosticsConstants.
>     > FILE_UTILS)
>     > +                       System.out.println("ArgumentUtil waiting
> for lock
>     > in getTheRealPathBecauseCanonicalizeDoesNotFixCase");
>     >                  targetPath = FileUtils.
> getTheRealPathBecauseCanonicalizeDoesNotFixCase(new
>     > File(targetPath));
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.FILE_UTILS) ==
> CompilerDiagnosticsConstants.
>     > FILE_UTILS)
>     > +                       System.out.println("ArgumentUtil waiting
> for lock
>     > in getTheRealPathBecauseCanonicalizeDoesNotFixCase");
>     >                  newArgs = new String[args.length];
>     >                  System.arraycopy(args, 0, newArgs, 0, args.length -
> 1);
>     >                  newArgs[args.length - 1] = targetPath;
>     > diff --git a/compiler/src/main/java/org/apache/royale/utils/
> IntMapLRUCache.java
>     > b/compiler/src/main/java/org/apache/royale/utils/IntMapLRUCache.java
>     > index a665fc4..8c322a9 100644
>     > --- a/compiler/src/main/java/org/apache/royale/utils/
> IntMapLRUCache.java
>     > +++ b/compiler/src/main/java/org/apache/royale/utils/
> IntMapLRUCache.java
>     > @@ -19,6 +19,8 @@
>     >
>     >  package org.apache.royale.utils;
>     >
>     > +import org.apache.royale.compiler.config.
> CompilerDiagnosticsConstants;
>     > +
>     >  /**
>     >   * Caching data structure that uses a Least Recently Used (LRU)
>     >   * algorithm.  This cache has a max size associated with it that is
>     > @@ -75,6 +77,8 @@ public abstract class IntMapLRUCache
>     >      {
>     >          Object value = null;
>     >
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.INT_MAP) ==
> CompilerDiagnosticsConstants.
>     > INT_MAP)
>     > +               System.out.println("IntMapLRUCache waiting for lock
> in
>     > get");
>     >          synchronized (this)
>     >          {
>     >              //use a fast compare to see if this key matches the head
>     > object.
>     > @@ -97,12 +101,16 @@ public abstract class IntMapLRUCache
>     >              }
>     >              // else not in cache, go fetch it
>     >          }
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.INT_MAP) ==
> CompilerDiagnosticsConstants.
>     > INT_MAP)
>     > +               System.out.println("IntMapLRUCache done with lock in
>     > get");
>     >
>     >          try
>     >          {
>     >              // don't hold the lock while fetching
>     >              value = fetch(key);
>     >
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.INT_MAP) ==
> CompilerDiagnosticsConstants.
>     > INT_MAP)
>     > +                       System.out.println("IntMapLRUCache waiting
> for
>     > lock in get (2nd half)");
>     >              synchronized (this)
>     >              {
>     >                  ListEntry entry = new ListEntry();
>     > @@ -111,6 +119,8 @@ public abstract class IntMapLRUCache
>     >
>     >                  map.put(key, entry);
>     >              }
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.INT_MAP) ==
> CompilerDiagnosticsConstants.
>     > INT_MAP)
>     > +                       System.out.println("IntMapLRUCache done
> with lock
>     > in get (2nd half)");
>     >          }
>     >          catch (UnsupportedOperationException ex)
>     >          {
>     > @@ -121,12 +131,16 @@ public abstract class IntMapLRUCache
>     >
>     >      public int firstKey()
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.INT_MAP) ==
> CompilerDiagnosticsConstants.
>     > INT_MAP)
>     > +               System.out.println("IntMapLRUCache waiting for lock
> in
>     > firstKey");
>     >          synchronized (this)
>     >          {
>     > +               int ret = 0;
>     >              if (head != null)
>     > -                return head.key;
>     > -            else
>     > -                return 0;
>     > +                ret = head.key;
>     > +               if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.INT_MAP) ==
> CompilerDiagnosticsConstants.
>     > INT_MAP)
>     > +                       System.out.println("IntMapLRUCache done
> with lock
>     > in firstKey");
>     > +            return ret;
>     >          }
>     >      }
>     >
>     > @@ -142,6 +156,8 @@ public abstract class IntMapLRUCache
>     >          entry.value = value;
>     >          entry.key = key;
>     >
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.INT_MAP) ==
> CompilerDiagnosticsConstants.
>     > INT_MAP)
>     > +               System.out.println("IntMapLRUCache waiting for lock
> in
>     > put");
>     >          synchronized (this)
>     >          {
>     >              //insert the entry into the table
>     > @@ -161,6 +177,8 @@ public abstract class IntMapLRUCache
>     >                  purgeLRUElements();
>     >              }
>     >          }
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.INT_MAP) ==
> CompilerDiagnosticsConstants.
>     > INT_MAP)
>     > +               System.out.println("IntMapLRUCache done with lock in
>     > put");
>     >
>     >          return value;
>     >      }
>     > @@ -170,6 +188,8 @@ public abstract class IntMapLRUCache
>     >       */
>     >      public void remove(int key)
>     >      {
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.INT_MAP) ==
> CompilerDiagnosticsConstants.
>     > INT_MAP)
>     > +               System.out.println("IntMapLRUCache waiting for lock
> in
>     > remove");
>     >          synchronized (this)
>     >          {
>     >              ListEntry entry = (ListEntry)map.remove(key);
>     > @@ -193,6 +213,8 @@ public abstract class IntMapLRUCache
>     >                  }
>     >              }
>     >          }
>     > +       if ((CompilerDiagnosticsConstants.diagnostics &
>     > CompilerDiagnosticsConstants.INT_MAP) ==
> CompilerDiagnosticsConstants.
>     > INT_MAP)
>     > +               System.out.println("IntMapLRUCache done with lock in
>     > remove");
>     >      }
>     >
>     >      public void setSize(int size)
>     >
>     >
>
>
>     --
>     Carlos Rovira
>     https://na01.safelinks.protection.outlook.com/?url=
> http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%
> 7C01%7Caharui%40adobe.com%7C222d51f26f6e4909fe2408d5f06a1a5b%
> 7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636679260873634790&amp;
> sdata=CARi3PypoHBMWxkFch7vk%2Fl%2Bb5UyfPj6xTyrlLbiNOU%3D&amp;reserved=0
>
>
>


-- 
Carlos Rovira
http://about.me/carlosrovira

Reply via email to