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://gitbox.apache.org/repos/asf/royale-compiler.git
>
>
> 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
> + *
> + * http://www.apache.org/licenses/LICENSE-2.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
http://about.me/carlosrovira