Need to be more careful when creating the JDK8 javac with the NB features.
authorJan Lahoda <jlahoda@netbeans.org>
Tue, 16 Apr 2013 18:21:34 +0200
changeset 9420d17e104d2d3
parent 941 4235164505af
child 943 010ece24190b
Need to be more careful when creating the JDK8 javac with the NB features.
language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/JavacCreatorImpl.java
     1.1 --- a/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/JavacCreatorImpl.java	Mon Apr 01 23:49:08 2013 +0200
     1.2 +++ b/language/server/web/language.web.api/src/org/netbeans/modules/jackpot30/backend/language/api/JavacCreatorImpl.java	Tue Apr 16 18:21:34 2013 +0200
     1.3 @@ -42,6 +42,7 @@
     1.4  package org.netbeans.modules.jackpot30.backend.language.api;
     1.5  
     1.6  import com.sun.tools.javac.api.JavacTaskImpl;
     1.7 +import com.sun.tools.javac.api.JavacTool;
     1.8  import com.sun.tools.javac.main.JavaCompiler;
     1.9  import com.sun.tools.javac.util.Context;
    1.10  import com.sun.tools.javadoc.Messager;
    1.11 @@ -53,7 +54,6 @@
    1.12  import javax.tools.DiagnosticListener;
    1.13  import javax.tools.JavaFileManager;
    1.14  import javax.tools.JavaFileObject;
    1.15 -import javax.tools.ToolProvider;
    1.16  import org.netbeans.lib.nbjavac.services.NBAttr;
    1.17  import org.netbeans.lib.nbjavac.services.NBClassReader;
    1.18  import org.netbeans.lib.nbjavac.services.NBClassWriter;
    1.19 @@ -82,10 +82,11 @@
    1.20          realOptions.add("-XDallowStringFolding=false"); //NOI18N
    1.21          realOptions.add("-XDshouldStopPolicy=GENERATE");   // NOI18N, parsing should not stop in phase where an error is found
    1.22          realOptions.add("-XDsuppressAbortOnBadClassFile=true");
    1.23 -        JavacTaskImpl task = (JavacTaskImpl) ToolProvider.getSystemJavaCompiler().getTask(out, fileManager, diagnosticListener, realOptions, classes, compilationUnits);
    1.24 -        Context context = task.getContext();
    1.25 +        Context context = new Context();
    1.26 +        //need to preregister the Messages here, because the getTask below requires Log instance:
    1.27 +        Messager.preRegister(context, null, DEV_NULL, DEV_NULL, DEV_NULL);
    1.28 +        JavacTaskImpl task = (JavacTaskImpl) JavacTool.create().getTask(out, fileManager, diagnosticListener, realOptions, classes, compilationUnits, context);
    1.29          NBClassReader.preRegister(context, true);
    1.30 -        Messager.preRegister(context, null, DEV_NULL, DEV_NULL, DEV_NULL);
    1.31          NBAttr.preRegister(context);
    1.32          NBClassWriter.preRegister(context);
    1.33          NBParserFactory.preRegister(context);