GWT compiler guru help need ...

158 views
Skip to first unread message

Rocco De Angelis

unread,
Oct 16, 2013, 9:30:56 AM10/16/13
to google-we...@googlegroups.com
Hi All,

I checked out the latest version (trunk) of GWT from git and tried to compile my current project with this state of GWT.

But during the compiling of the permutation I get an error message:

 Compiling 1 permutation
      Creating PermutationWorkerFactory instances
      Compiling permutation 0...
      [ERROR] An internal compiler exception occurred
com.google.gwt.dev.jjs.InternalCompilerException: Unexpected error during visit.
at com.google.gwt.dev.jjs.ast.JVisitor.translateException(JVisitor.java:110)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:148)
at com.google.gwt.dev.jjs.ast.JVisitor.acceptWithInsertRemoveImmutable(JVisitor.java:171)
at com.google.gwt.dev.jjs.ast.JClassType.traverse(JClassType.java:98)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:126)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:121)
at com.google.gwt.dev.jjs.impl.GenerateJavaScriptAST$CreateNamesAndScopesVisitor.visit(GenerateJavaScriptAST.java:332)
at com.google.gwt.dev.jjs.ast.JClassType.traverse(JClassType.java:96)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:126)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:121)
at com.google.gwt.dev.jjs.impl.GenerateJavaScriptAST$CreateNamesAndScopesVisitor.visit(GenerateJavaScriptAST.java:332)
at com.google.gwt.dev.jjs.ast.JClassType.traverse(JClassType.java:96)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:145)
at com.google.gwt.dev.jjs.ast.JProgram.traverse(JProgram.java:974)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:126)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:121)
at com.google.gwt.dev.jjs.impl.GenerateJavaScriptAST.execImpl(GenerateJavaScriptAST.java:2790)
at com.google.gwt.dev.jjs.impl.GenerateJavaScriptAST.exec(GenerateJavaScriptAST.java:2501)
at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.compilePermutation(JavaToJavaScriptCompiler.java:355)
at com.google.gwt.dev.jjs.UnifiedAst.compilePermutation(UnifiedAst.java:134)
at com.google.gwt.dev.CompilePerms.compile(CompilePerms.java:195)
at com.google.gwt.dev.ThreadedPermutationWorkerFactory$ThreadedPermutationWorker.compile(ThreadedPermutationWorkerFactory.java:49)
at com.google.gwt.dev.PermutationWorkerFactory$Manager$WorkerThread.run(PermutationWorkerFactory.java:73)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at com.google.gwt.thirdparty.guava.common.base.Preconditions.checkNotNull(Preconditions.java:192)
at com.google.gwt.thirdparty.guava.common.collect.MapMakerInternalMap.putIfAbsent(MapMakerInternalMap.java:3507)
at com.google.gwt.thirdparty.guava.common.collect.Interners$WeakInterner.intern(Interners.java:85)
at com.google.gwt.dev.js.ast.JsScope.maybeMangleKeyword(JsScope.java:53)
at com.google.gwt.dev.js.ast.JsScope.declareName(JsScope.java:68)
at com.google.gwt.dev.jjs.impl.GenerateJavaScriptAST$CreateNamesAndScopesVisitor.visit(GenerateJavaScriptAST.java:369)
at com.google.gwt.dev.jjs.ast.JMethod.traverse(JMethod.java:417)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:145)
... 22 more
         [ERROR] at Object.java(79): protected Object clone();

            com.google.gwt.dev.jjs.ast.JMethod
         [ERROR] at Object.java(26): class Object 
            com.google.gwt.dev.jjs.ast.JClassType
         [ERROR] at AbstractStyledText.java(12): abstract class AbstractStyledText extends Object 
            com.google.gwt.dev.jjs.ast.JClassType
         [ERROR] at DefaultStyledText.java(13): final class DefaultStyledText extends AbstractStyledText 
            com.google.gwt.dev.jjs.ast.JClassType
         [ERROR] at Unknown(0): <JProgram>
            com.google.gwt.dev.jjs.ast.JProgram
      [ERROR] Unrecoverable exception, shutting down
com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)
at com.google.gwt.dev.javac.CompilationProblemReporter.logAndTranslateException(CompilationProblemReporter.java:90)
at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.compilePermutation(JavaToJavaScriptCompiler.java:549)
at com.google.gwt.dev.jjs.UnifiedAst.compilePermutation(UnifiedAst.java:134)
at com.google.gwt.dev.CompilePerms.compile(CompilePerms.java:195)
at com.google.gwt.dev.ThreadedPermutationWorkerFactory$ThreadedPermutationWorker.compile(ThreadedPermutationWorkerFactory.java:49)
at com.google.gwt.dev.PermutationWorkerFactory$Manager$WorkerThread.run(PermutationWorkerFactory.java:73)
at java.lang.Thread.run(Thread.java:662)
      [ERROR] Not all permutation were compiled , completed (0/1)
Shutting down PersistentUnitCache thread


What looks very strange for me: The class DefaultStyledText is not in my source path and it is also not final??

public class DefaultStyledText extends AbstractStyledText<AStyledDocument> {

    public DefaultStyledText(AStyledDocument document) {
        super(document);
    }

    @Override
    public String getPlainText() {
        return getValue().getPlainText();
    }

}

I have my own Object.java implementation. I simply added a implementation for the clone method:

    protected native Object clone() throws CloneNotSupportedException /*-{
        var r = {};

        // prevents to use same hash code
        @com.google.gwt.core.client.impl.Impl::getHashCode(Ljava/lang/Object;)(r);

        var o = this;
        for(var i in o){
            if(!(i in r)){
                r[i] = o[i];
            }
        }
        return r;
    }-*/;


Anybody of the GWT gurus here an idea???



Rocco De Angelis

unread,
Oct 17, 2013, 5:21:49 AM10/17/13
to google-we...@googlegroups.com
Seems to be a bug in the GWT compiler.

Adding following line to the GenerateJavaScriptAST solves the problem:

line number 2627: namesToIdents.put("clone", "cL");

See patched file
GenerateJavaScriptAST.java
Reply all
Reply to author
Forward
0 new messages