Need to be more careful when creating the JDK8 javac with the NB features.
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);