http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.javacimpl/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/libs.javacimpl/nbproject/project.properties 
b/libs.javacimpl/nbproject/project.properties
index b602c8a..89770eb 100644
--- a/libs.javacimpl/nbproject/project.properties
+++ b/libs.javacimpl/nbproject/project.properties
@@ -19,7 +19,7 @@ javac.source=1.6
 nbm.homepage=http://jackpot.netbeans.org/
 nbm.module.author=Petr Hrebejk
 spec.version.base=0.47.0
-release.external/nb-javac-impl.jar=modules/ext/nb-javac-impl.jar
+#release.external/nb-javac-impl.jar=modules/ext/nb-javac-impl.jar
 javadoc.arch=${basedir}/arch.xml
 
 
@@ -37,3 +37,4 @@ javadoc.arch=${basedir}/arch.xml
 # Hidden class found: com.sun.tools.javac.jvm.Code$State in method public int 
com.sun.tools.javac.jvm.Code.entryPoint(com.sun.tools.javac.jvm.Code$State,com.sun.tools.javac.code.Type)
 in class com.sun.tools.javac.jvm.Code
 sigtest.gen.fail.on.error=false
 
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.javacimpl/nbproject/project.xml
----------------------------------------------------------------------
diff --git a/libs.javacimpl/nbproject/project.xml 
b/libs.javacimpl/nbproject/project.xml
index 7944a18..e5bdda9 100644
--- a/libs.javacimpl/nbproject/project.xml
+++ b/libs.javacimpl/nbproject/project.xml
@@ -30,11 +30,11 @@
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>8.17</specification-version>
+                        <implementation-version/>
                     </run-dependency>
                 </dependency>
             </module-dependencies>
-            <friend-packages>
+<!--            <friend-packages>
                 <friend>org.netbeans.modules.jackpot.rules</friend>
                 <friend>org.netbeans.modules.java.hints</friend>
                 <friend>org.netbeans.modules.java.source</friend>
@@ -57,11 +57,12 @@
                 <package>com.sun.tools.javac.tree</package>
                 <package>com.sun.tools.javac.util</package>
                 <package>com.sun.tools.javadoc</package>
-            </friend-packages>
-            <class-path-extension>
+            </friend-packages>-->
+            <public-packages/>
+<!--            <class-path-extension>
                 
<runtime-relative-path>ext/nb-javac-impl.jar</runtime-relative-path>
                 <binary-origin>external/nb-javac-impl.jar</binary-origin>
-            </class-path-extension>
+            </class-path-extension>-->
         </data>
     </configuration>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.jshell.compile/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/libs.jshell.compile/nbproject/project.properties 
b/libs.jshell.compile/nbproject/project.properties
index d192e77..01fcd9b 100644
--- a/libs.jshell.compile/nbproject/project.properties
+++ b/libs.jshell.compile/nbproject/project.properties
@@ -26,3 +26,4 @@ javadoc.arch=${basedir}/arch.xml
 module.javadoc.packages=
 sigtest.skip.check=true
 sigtest.gen.fail.on.error=false
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.jshell.compile/nbproject/project.xml
----------------------------------------------------------------------
diff --git a/libs.jshell.compile/nbproject/project.xml 
b/libs.jshell.compile/nbproject/project.xml
index 5ecafda..0ec3316 100644
--- a/libs.jshell.compile/nbproject/project.xml
+++ b/libs.jshell.compile/nbproject/project.xml
@@ -25,7 +25,7 @@
         <data xmlns="http://www.netbeans.org/ns/nb-module-project/2";>
             <code-name-base>org.netbeans.libs.jshell.compile</code-name-base>
             <module-dependencies>
-                <dependency>
+<!--                <dependency>
                     <code-name-base>org.netbeans.libs.javacapi</code-name-base>
                     <build-prerequisite/>
                     <compile-dependency/>
@@ -41,7 +41,7 @@
                         <release-version>1</release-version>
                         <specification-version>0.47</specification-version>
                     </run-dependency>
-                </dependency>
+                </dependency>-->
                 <dependency>
                     <code-name-base>org.netbeans.lib.nbjshell</code-name-base>
                     <run-dependency>

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/maven.apisupport/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/maven.apisupport/nbproject/project.properties 
b/maven.apisupport/nbproject/project.properties
index 41c0e06..5f7dca0 100644
--- a/maven.apisupport/nbproject/project.properties
+++ b/maven.apisupport/nbproject/project.properties
@@ -20,3 +20,4 @@ javac.source=1.6
 javac.compilerargs=-Xlint -Xlint:-serial
 
 test.config.stableBTD.includes=**/*Test.class
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/maven.hints/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/maven.hints/nbproject/project.properties 
b/maven.hints/nbproject/project.properties
index 2aea11b..82150ad 100644
--- a/maven.hints/nbproject/project.properties
+++ b/maven.hints/nbproject/project.properties
@@ -20,3 +20,4 @@ javac.source=1.6
 #javac.compilerargs=-Xlint -Xlint:-serial
 
 test.config.stableBTD.includes=**/*Test.class
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/maven.junit.ui/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/maven.junit.ui/nbproject/project.properties 
b/maven.junit.ui/nbproject/project.properties
index 7f641b7..375b088 100644
--- a/maven.junit.ui/nbproject/project.properties
+++ b/maven.junit.ui/nbproject/project.properties
@@ -17,3 +17,4 @@
 is.eager=true
 javac.source=1.6
 javac.compilerargs=-Xlint -Xlint:-serial
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/maven.refactoring/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/maven.refactoring/nbproject/project.properties 
b/maven.refactoring/nbproject/project.properties
index c0af75f..315878a 100644
--- a/maven.refactoring/nbproject/project.properties
+++ b/maven.refactoring/nbproject/project.properties
@@ -16,3 +16,4 @@
 # under the License.
 javac.source=1.6
 javac.compilerargs=-Xlint -Xlint:-serial
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/maven/src/org/netbeans/modules/maven/queries/UnitTestsCompilerOptionsQueryImpl.java
----------------------------------------------------------------------
diff --git 
a/maven/src/org/netbeans/modules/maven/queries/UnitTestsCompilerOptionsQueryImpl.java
 
b/maven/src/org/netbeans/modules/maven/queries/UnitTestsCompilerOptionsQueryImpl.java
index 1415258..0613261 100644
--- 
a/maven/src/org/netbeans/modules/maven/queries/UnitTestsCompilerOptionsQueryImpl.java
+++ 
b/maven/src/org/netbeans/modules/maven/queries/UnitTestsCompilerOptionsQueryImpl.java
@@ -290,7 +290,7 @@ public final class UnitTestsCompilerOptionsQueryImpl 
implements CompilerOptionsQ
                         cc.toPhase(JavaSource.Phase.PARSED);
                         final CompilationUnitTree cu = cc.getCompilationUnit();
                         for (Tree decl : cu.getTypeDecls()) {
-                            if (decl.getKind() == Tree.Kind.MODULE) {
+                            if (decl.getKind().name().equals("MODULE")) {
                                 res[0] = 
((ModuleTree)decl).getName().toString();
                                 break;
                             }

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/nbbuild/build.xml
----------------------------------------------------------------------
diff --git a/nbbuild/build.xml b/nbbuild/build.xml
index 1db4316..68028ad 100644
--- a/nbbuild/build.xml
+++ b/nbbuild/build.xml
@@ -71,6 +71,7 @@
     <property name="have-downloadbinaries-task" value="true" />
     <downloadbinaries cache="${binaries.cache}" server="${binaries.server}">
         <manifest dir="${nb_all}">
+            <include name="nbbuild/external/binaries-list"/>
             <include name="libs.junit4/external/binaries-list"/>
             <include name="javahelp/external/binaries-list"/>
         </manifest>
@@ -124,7 +125,40 @@
     </downloadbinaries>
   </target>
 
-  <target name="init-module-list" depends="bootstrap,init-tasks">
+  <target name="-check-vanilla-javac" depends="bootstrap">
+    <condition property="vanilla.javac.exists">
+      <and>
+        <available file="${nb_all}/nbbuild/external/vanilla-javac-api.jar" />
+        <available file="${nb_all}/nbbuild/external/vanilla-javac-impl.jar" />
+      </and>
+    </condition>
+  </target>
+
+  <target name="prepare-vanilla-javac" depends="-check-vanilla-javac" 
unless="vanilla.javac.exists">
+    <delete dir="${nb_all}/nbbuild/build/langtools" />
+    <mkdir dir="${nb_all}/nbbuild/build/langtools" />
+    <get src="http://hg.openjdk.java.net/jdk9/jdk9/langtools/archive/tip.zip"; 
dest="${nb_all}/nbbuild/build/langtools.zip" skipexisting="true"/>
+    <unzip src="${nb_all}/nbbuild/build/langtools.zip" 
dest="${nb_all}/nbbuild/build/langtools">
+        <cutdirsmapper dirs="1"/>
+    </unzip>
+    <ant antfile="${nb_all}/nbbuild/build/langtools/make/build.xml" 
dir="${nb_all}/nbbuild/build/langtools/" target="generate-sources">
+        <property name="langtools.jdk.home" value="${java.home}" />
+    </ant>
+    <mkdir dir="${nb_all}/nbbuild/build/langtools/build/nb" />
+    <javac 
srcdir="${nb_all}/nbbuild/build/langtools/src/java.compiler/share/classes:${nb_all}/nbbuild/build/langtools/src/jdk.compiler/share/classes:${nb_all}/nbbuild/build/langtools/src/jdk.javadoc/share/classes:${nb_all}/nbbuild/build/langtools/src/jdk.jdeps/share/classes:${nb_all}/nbbuild/build/langtools/build/gensrc/jdk.compiler"
+           destdir="${nb_all}/nbbuild/build/langtools/build/nb"
+           
excludes="**/module-info.java,com/sun/tools/javac/main/JavacToolProvider.java,com/sun/tools/jdeps/**,com/sun/tools/jdeprscan/**,com/sun/tools/javap/Main.java,jdk/javadoc/internal/tool/JavadocToolProvider.java,com/sun/tools/doclets/standard/Standard.java"
 />
+    <copy todir="${nb_all}/nbbuild/build/langtools/build/nb">
+        <fileset 
dir="${nb_all}/nbbuild/build/langtools/src/java.compiler/share/classes" 
includes="**/*.properties"/>
+        <fileset 
dir="${nb_all}/nbbuild/build/langtools/src/jdk.compiler/share/classes" 
includes="**/*.properties"/>
+        <fileset 
dir="${nb_all}/nbbuild/build/langtools/src/jdk.javadoc/share/classes" 
includes="**/*.properties"/>
+        <fileset 
dir="${nb_all}/nbbuild/build/langtools/src/jdk.jdeps/share/classes" 
includes="**/*.properties"/>
+    </copy>
+    <jar destfile="${nb_all}/nbbuild/external/vanilla-javac-api.jar" 
basedir="${nb_all}/nbbuild/build/langtools/build/nb" 
includes="javax/**,com/sun/source/**,com/sun/javadoc/**" />
+    <jar destfile="${nb_all}/nbbuild/external/vanilla-javac-impl.jar" 
basedir="${nb_all}/nbbuild/build/langtools/build/nb" 
excludes="javax/**,com/sun/source/**,com/sun/javadoc/**" />
+  </target>
+
+  <target name="init-module-list" 
depends="bootstrap,init-tasks,prepare-vanilla-javac">
     <!-- Define modules. -->
     <checkmoduleconfigs nbroot=".."/>
     <resolvelist name="allmodules" list="${nb.clusters.list}"/>

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/nbbuild/cluster.properties
----------------------------------------------------------------------
diff --git a/nbbuild/cluster.properties b/nbbuild/cluster.properties
index 6cbb9a9..dc00472 100644
--- a/nbbuild/cluster.properties
+++ b/nbbuild/cluster.properties
@@ -627,6 +627,8 @@ nb.cluster.java=\
         java.source.ant,\
         java.source.base,\
         java.source.compat8,\
+        java.source.jdk9.req,\
+        java.source.nbjavac,\
         java.source.queries,\
         java.source.queriesimpl,\
         java.sourceui,\

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/nbbuild/external/binaries-list
----------------------------------------------------------------------
diff --git a/nbbuild/external/binaries-list b/nbbuild/external/binaries-list
index 435c1cd..7335f3b 100644
--- a/nbbuild/external/binaries-list
+++ b/nbbuild/external/binaries-list
@@ -16,4 +16,5 @@
 # under the License.
 A7674A6D78B7FEA58AF76B357DAE6EA5E3FDFBE9 apitest.jar
 88CADDFC6785B6B7B7E65C9DC80C03958EBAEE73 nbbuild-xhtml1-dtds-resources.zip
+071355012BD9E174619F838E72F1869277E24B69 nb-javac-impl.jar
 16398550402B27F81CD0D508CEF54B3E47A4A6DA org.apache.rat:apache-rat:0.12

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/nbbuild/templates/common.xml
----------------------------------------------------------------------
diff --git a/nbbuild/templates/common.xml b/nbbuild/templates/common.xml
index 7ff3e4c..6265067 100644
--- a/nbbuild/templates/common.xml
+++ b/nbbuild/templates/common.xml
@@ -534,6 +534,7 @@
                     <pathelement path="${module.run.classpath}"/>
                     <pathelement path="${test.@{test.type}.run.cp.extra}"/>
                     <pathelement path="${test.@{test.type}.cp.extra}"/>
+                    <pathelement path="${test.extra.nb.javac.deps}"/>
                 </path>
                 <!-- path reference used in both compiler and executor -->
                 <propertyset id="test.@{test.type}.properties">

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/nbbuild/templates/projectized.xml
----------------------------------------------------------------------
diff --git a/nbbuild/templates/projectized.xml 
b/nbbuild/templates/projectized.xml
index ef60182..1d8885f 100644
--- a/nbbuild/templates/projectized.xml
+++ b/nbbuild/templates/projectized.xml
@@ -170,30 +170,40 @@ If you are sure you want to build with JDK 9+ anyway, 
use: -Dpermit.jdk9.builds=
         <property name="locjhindexer.locales" value="${locales}"/>
         <property name="locmakenbm.locales" value="${locales}"/>
         <property name="locmakenbm.brands" value="${brandings}"/>
-        <pathconvert property="retouche.javac.api">
-            <fileset dir="${nb_all}">
-                <include name="libs.javacapi/external/*javac*.jar"/>
-            </fileset>
-        </pathconvert>
-        <pathconvert property="retouche.javac.impl">
-            <fileset dir="${nb_all}">
-                <include name="libs.javacimpl/external/*javac*.jar"/>
-            </fileset>
-            <fileset dir="${nbjdk.home}/../Classes" erroronmissingdir="false">
-                <include name="*.jar"/>
-            </fileset>
-        </pathconvert>
         <!-- When requires.nb.javac property is true, prepend javac-api and 
javac-impl on bootclasspath to allow override the default annotation
              processing API located in rt.jar. -->
-        <condition property="bootclasspath.prepend" 
value="${retouche.javac.api}${path.separator}${retouche.javac.impl}">
+        <property name="bootclasspath.prepend.vanilla" 
value="${nb_all}/nbbuild/external/vanilla-javac-api.jar:${nb_all}/nbbuild/external/vanilla-javac-impl.jar"
 />
+        <property name="bootclasspath.prepend.nb" 
value="${nb_all}/nbbuild/external/vanilla-javac-api.jar:${nb_all}/nbbuild/external/nb-javac-impl.jar"
 />
+        <condition property="bootclasspath.prepend" 
value="${bootclasspath.prepend.nb}">
+            <istrue value="${requires.nb.javac.impl}"/>
+        </condition>
+        <condition property="bootclasspath.prepend" 
value="${bootclasspath.prepend.vanilla}">
             <istrue value="${requires.nb.javac}"/>
         </condition>
-        <condition property="run.bootclasspath.prepend" 
value="${bootclasspath.prepend}">
+        <condition property="run.bootclasspath.prepend" 
value="${bootclasspath.prepend.vanilla}">
+            <and>
+                <istrue value="${requires.nb.javac}"/>
+                <istrue value="${test.use.vanilla.javac}"/>
+            </and>
+        </condition>
+        <condition property="run.bootclasspath.prepend" 
value="${bootclasspath.prepend.nb}">
             <istrue value="${requires.nb.javac}"/>
         </condition>
+        <condition property="run.bootclasspath.prepend" 
value="${bootclasspath.prepend.nb}">
+            <istrue value="${requires.nb.javac.impl}"/>
+        </condition>
         <condition property="run.bootclasspath.prepend" 
value="${bootclasspath.prepend}">
             <isset property="bootclasspath.prepend"/>
         </condition>
+        <condition property="test.extra.nb.javac.deps" 
value="${java.source.nbjavac.dir}/modules/org-netbeans-modules-java-source-nbjavac.jar">
+            <and>
+                <istrue value="${requires.nb.javac}"/>
+                <not>
+                    <istrue value="${test.use.vanilla.javac}"/>
+                </not>
+            </and>
+        </condition>
+        <property name="test.extra.nb.javac.deps" value="" />
         <fail message="Delete standalone/suite-related metadata from 
netbeans.org modules">
             <condition>
                 <or>

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/o.n.bootstrap/src/org/netbeans/ModuleManager.java
----------------------------------------------------------------------
diff --git a/o.n.bootstrap/src/org/netbeans/ModuleManager.java 
b/o.n.bootstrap/src/org/netbeans/ModuleManager.java
index 9276954..f63fd33 100644
--- a/o.n.bootstrap/src/org/netbeans/ModuleManager.java
+++ b/o.n.bootstrap/src/org/netbeans/ModuleManager.java
@@ -882,7 +882,7 @@ public final class ModuleManager extends Modules {
         return theHost.getClassLoader();
     }
     
-    private Collection<Module> getAttachedFragments(Module m) {
+    public Collection<Module> getAttachedFragments(Module m) {
         String cdn = m.getCodeNameBase();
         Collection<Module> frags = fragmentModules.get(cdn);
         return frags == null ? Collections.<Module>emptySet() : frags;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/parsing.api/src/org/netbeans/modules/parsing/api/Source.java
----------------------------------------------------------------------
diff --git a/parsing.api/src/org/netbeans/modules/parsing/api/Source.java 
b/parsing.api/src/org/netbeans/modules/parsing/api/Source.java
index b608e2c..de03c14 100644
--- a/parsing.api/src/org/netbeans/modules/parsing/api/Source.java
+++ b/parsing.api/src/org/netbeans/modules/parsing/api/Source.java
@@ -570,6 +570,8 @@ public final class Source implements Lookup.Provider {
     }
 
     private void setSourceModification (boolean sourceChanged, int 
startOffset, int endOffset) {
+        if (!sourceChanged)
+            return ;
         ASourceModificationEvent oldSourceModificationEvent;
         ASourceModificationEvent newSourceModificationEvent;
         do {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/ElementUtilitiesEx.java
----------------------------------------------------------------------
diff --git 
a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/ElementUtilitiesEx.java
 
b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/ElementUtilitiesEx.java
index 7b1ce92..6ca03d9 100644
--- 
a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/ElementUtilitiesEx.java
+++ 
b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/ElementUtilitiesEx.java
@@ -19,7 +19,7 @@
 package org.netbeans.modules.profiler.nbimpl.javac;
 
 import com.sun.source.tree.ClassTree;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.io.IOException;
 import java.util.Collections;
 import java.util.EnumSet;
@@ -191,7 +191,7 @@ public class ElementUtilitiesEx {
                 @Override
                 public void run(final CompilationController cc) throws 
Exception {
                     cc.toPhase(Phase.RESOLVED);
-                    new TreePathScanner<Void, Void>() {
+                    new ErrorAwareTreePathScanner<Void, Void>() {
 
                         @Override
                         public Void visitClass(ClassTree node, Void p) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/JavacClassInfo.java
----------------------------------------------------------------------
diff --git 
a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/JavacClassInfo.java
 
b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/JavacClassInfo.java
index ee328dc..ece6b75 100644
--- 
a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/JavacClassInfo.java
+++ 
b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/JavacClassInfo.java
@@ -19,7 +19,7 @@
 package org.netbeans.modules.profiler.nbimpl.javac;
 
 import com.sun.source.tree.ClassTree;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.io.IOException;
 import java.lang.ref.Reference;
 import java.lang.ref.SoftReference;
@@ -348,7 +348,7 @@ public class JavacClassInfo extends SourceClassInfo {
 
         cc.toPhase(JavaSource.Phase.RESOLVED);
 
-        TreePathScanner<Void, Void> scanner = new TreePathScanner<Void, 
Void>() {
+        ErrorAwareTreePathScanner<Void, Void> scanner = new 
ErrorAwareTreePathScanner<Void, Void>() {
 
             @Override
             public Void visitClass(ClassTree node, Void v) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/providers/JavaProfilerSourceImpl.java
----------------------------------------------------------------------
diff --git 
a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/providers/JavaProfilerSourceImpl.java
 
b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/providers/JavaProfilerSourceImpl.java
index 9c6906f..f681956 100644
--- 
a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/providers/JavaProfilerSourceImpl.java
+++ 
b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/providers/JavaProfilerSourceImpl.java
@@ -26,7 +26,7 @@ import com.sun.source.tree.MethodTree;
 import com.sun.source.tree.Scope;
 import com.sun.source.tree.Tree;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import com.sun.source.util.Trees;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -194,7 +194,7 @@ public class JavaProfilerSourceImpl implements 
AbstractJavaProfilerSource {
                         return;
                     }
 
-                    TreePathScanner<Void, Void> scanner = new 
TreePathScanner<Void, Void>() {
+                    ErrorAwareTreePathScanner<Void, Void> scanner = new 
ErrorAwareTreePathScanner<Void, Void>() {
 
                         public Void visitMethod(MethodTree node, Void p) {
                             Void retValue;
@@ -241,7 +241,7 @@ public class JavaProfilerSourceImpl implements 
AbstractJavaProfilerSource {
                         return;
                     }
 
-                    TreePathScanner<Void, Void> scanner = new 
TreePathScanner<Void, Void>() {
+                    ErrorAwareTreePathScanner<Void, Void> scanner = new 
ErrorAwareTreePathScanner<Void, Void>() {
 
                         @Override
                         public Void visitClass(ClassTree node, Void param) {
@@ -295,7 +295,7 @@ public class JavaProfilerSourceImpl implements 
AbstractJavaProfilerSource {
                 public void run(final CompilationController controller) throws 
Exception {
                     controller.toPhase(Phase.ELEMENTS_RESOLVED);
 
-                    TreePathScanner<Void, Void> scanner = new 
TreePathScanner<Void, Void>() {
+                    ErrorAwareTreePathScanner<Void, Void> scanner = new 
ErrorAwareTreePathScanner<Void, Void>() {
 
                         @Override
                         public Void visitAnnotation(AnnotationTree annTree, 
Void p) {
@@ -632,7 +632,7 @@ public class JavaProfilerSourceImpl implements 
AbstractJavaProfilerSource {
                     public void run(final CompilationController cc) throws 
Exception {
                         cc.toPhase(Phase.ELEMENTS_RESOLVED);
 
-                        TreePathScanner<Void, Void> scanner = new 
TreePathScanner<Void, Void>() {
+                        ErrorAwareTreePathScanner<Void, Void> scanner = new 
ErrorAwareTreePathScanner<Void, Void>() {
                             @Override
                             public Void visitMethod(MethodTree node, Void p) {
                                 Element e = 
cc.getTrees().getElement(getCurrentPath());

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/profiler.projectsupport/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/profiler.projectsupport/nbproject/project.properties 
b/profiler.projectsupport/nbproject/project.properties
index 352701b..1918eaa 100644
--- a/profiler.projectsupport/nbproject/project.properties
+++ b/profiler.projectsupport/nbproject/project.properties
@@ -17,3 +17,4 @@
 is.autoload=true
 javac.compilerargs=-Xlint -Xlint:-serial
 javac.source=1.6
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java
index 62de70c..c487ced 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java
@@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.api;
 import com.sun.source.tree.MemberSelectTree;
 import com.sun.source.tree.Tree;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.io.IOException;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -297,7 +297,7 @@ public final class JavaRefactoringUtils {
         return scanner.usages;
     }
 
-    private static final class InvocationScanner extends TreePathScanner 
<Tree, ElementHandle> implements CancellableTask <CompilationController> {
+    private static final class InvocationScanner extends 
ErrorAwareTreePathScanner <Tree, ElementHandle> implements CancellableTask 
<CompilationController> {
         private CompilationController cc;
         private final ElementHandle toFind;
         InvocationScanner (ElementHandle toFind) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/callhierarchy/CallHierarchyTasks.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/callhierarchy/CallHierarchyTasks.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/callhierarchy/CallHierarchyTasks.java
index bbd26bf..1f299e9 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/callhierarchy/CallHierarchyTasks.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/callhierarchy/CallHierarchyTasks.java
@@ -22,7 +22,7 @@ package org.netbeans.modules.refactoring.java.callhierarchy;
 import com.sun.source.tree.*;
 import com.sun.source.tree.Tree.Kind;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.awt.EventQueue;
 import java.io.IOException;
 import java.lang.annotation.Annotation;
@@ -530,7 +530,7 @@ final class CallHierarchyTasks {
         
     }
     
-    private static final class CalleeScanner extends TreePathScanner<Void, 
Void> {
+    private static final class CalleeScanner extends 
ErrorAwareTreePathScanner<Void, Void> {
         private final CompilationInfo   javac;
         /** map of all executables and their occurrences in the method body */
         private Map<Element, OccurrencesDesc> refs = new HashMap<Element, 
OccurrencesDesc>();

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java
index 1cc4e4b..86a7dfd 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java
@@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.plugins;
 import com.sun.source.tree.TypeParameterTree;
 import com.sun.source.tree.VariableTree;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import java.io.IOException;
 import java.text.MessageFormat;
 import java.util.*;
@@ -506,7 +506,7 @@ public class ChangeParametersPlugin extends 
JavaRefactoringPlugin {
             String name = paramTable[index].getName();
             int originalIndex = paramTable[index].getOriginalIndex();
             final VariableElement parameterElement = originalIndex == -1 ? 
null : method.getParameters().get(originalIndex);
-            TreeScanner<Boolean, String> scanner = new TreeScanner<Boolean, 
String>() {
+            ErrorAwareTreeScanner<Boolean, String> scanner = new 
ErrorAwareTreeScanner<Boolean, String>() {
 
                 @Override
                 public Boolean visitVariable(VariableTree vt, String p) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParamsTransformer.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParamsTransformer.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParamsTransformer.java
index 86204c2..5194ef2 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParamsTransformer.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParamsTransformer.java
@@ -41,7 +41,7 @@ import com.sun.source.tree.Tree.Kind;
 import com.sun.source.tree.*;
 import com.sun.source.util.SourcePositions;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import com.sun.source.util.Trees;
 import java.io.IOException;
 import java.util.*;
@@ -788,7 +788,7 @@ public class ChangeParamsTransformer extends 
RefactoringVisitor {
         do {
             original2Translated.clear();
             if(renameParams) {
-                TreeScanner<Void, Void> idScan = new TreeScanner<Void, Void>() 
{
+                ErrorAwareTreeScanner<Void, Void> idScan = new 
ErrorAwareTreeScanner<Void, Void>() {
                     @Override
                     public Void visitIdentifier(IdentifierTree node, Void p) {
                         String name = node.getName().toString();
@@ -808,7 +808,7 @@ public class ChangeParamsTransformer extends 
RefactoringVisitor {
                 blockTree = (BlockTree) 
workingCopy.getTreeUtilities().translate(blockTree, original2Translated);
             }
             original2Translated.clear();
-            TreeScanner<Boolean, ExecutableElement> methodScanner = new 
TreeScanner<Boolean, ExecutableElement>() {
+            ErrorAwareTreeScanner<Boolean, ExecutableElement> methodScanner = 
new ErrorAwareTreeScanner<Boolean, ExecutableElement>() {
                 @Override
                 public Boolean visitMethodInvocation(MethodInvocationTree 
node, ExecutableElement p) {
                     boolean changed = false;
@@ -847,7 +847,7 @@ public class ChangeParamsTransformer extends 
RefactoringVisitor {
         boolean changed = false;
         do {
             original2Translated.clear();
-            TreeScanner<Void, Void> idScan = new TreeScanner<Void, Void>() {
+            ErrorAwareTreeScanner<Void, Void> idScan = new 
ErrorAwareTreeScanner<Void, Void>() {
                 @Override
                 public Void visitIdentifier(IdentifierTree node, Void p) {
                     String name = node.getName().toString();
@@ -866,7 +866,7 @@ public class ChangeParamsTransformer extends 
RefactoringVisitor {
             expressionTree = (ExpressionTree) 
workingCopy.getTreeUtilities().translate(expressionTree, original2Translated);
             
             original2Translated.clear();
-            TreeScanner<Boolean, ExecutableElement> methodScanner = new 
TreeScanner<Boolean, ExecutableElement>() {
+            ErrorAwareTreeScanner<Boolean, ExecutableElement> methodScanner = 
new ErrorAwareTreeScanner<Boolean, ExecutableElement>() {
                 @Override
                 public Boolean visitMethodInvocation(MethodInvocationTree 
node, ExecutableElement p) {
                     boolean changed = false;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ExtractSuperclassRefactoringPlugin.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ExtractSuperclassRefactoringPlugin.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ExtractSuperclassRefactoringPlugin.java
index a2f5b92..0804d6d 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ExtractSuperclassRefactoringPlugin.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ExtractSuperclassRefactoringPlugin.java
@@ -20,7 +20,7 @@ package org.netbeans.modules.refactoring.java.plugins;
 
 import com.sun.source.tree.*;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import com.sun.source.util.Trees;
 import java.io.IOException;
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindUsagesVisitor.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindUsagesVisitor.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindUsagesVisitor.java
index 1bdece1..28c9b0b 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindUsagesVisitor.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindUsagesVisitor.java
@@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.plugins;
 import com.sun.source.tree.*;
 import com.sun.source.tree.Tree.Kind;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import com.sun.source.util.Trees;
 import java.io.IOException;
 import java.util.*;
@@ -51,7 +51,7 @@ import org.openide.util.Exceptions;
  *
  * @author Jan Becicka
  */
-public class FindUsagesVisitor extends TreePathScanner<Tree, Element> {
+public class FindUsagesVisitor extends ErrorAwareTreePathScanner<Tree, 
Element> {
 
     private Collection<TreePath> usages = new ArrayList<>();
     private List<WhereUsedElement> elements = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindVisitor.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindVisitor.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindVisitor.java
index d7d5789..10f6f1c 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindVisitor.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindVisitor.java
@@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.plugins;
 
 import com.sun.source.tree.Tree;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -36,7 +36,7 @@ import org.openide.util.Exceptions;
  *
  * @author Jan Becicka
  */
-public class FindVisitor extends TreePathScanner<Tree, Element> {
+public class FindVisitor extends ErrorAwareTreePathScanner<Tree, Element> {
 
     private Collection<TreePath> usages = new ArrayList<TreePath>();
     

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineMethodTransformer.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineMethodTransformer.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineMethodTransformer.java
index ac1fe21..8a36ef9 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineMethodTransformer.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineMethodTransformer.java
@@ -31,6 +31,8 @@ import org.netbeans.api.java.source.ElementUtilities;
 import org.netbeans.api.java.source.GeneratorUtilities;
 import org.netbeans.api.java.source.TreePathHandle;
 import org.netbeans.api.java.source.TreeUtilities;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import org.netbeans.modules.refactoring.api.Problem;
 import org.netbeans.modules.refactoring.java.api.JavaRefactoringUtils;
 import org.netbeans.modules.refactoring.java.spi.RefactoringVisitor;
@@ -208,7 +210,7 @@ public class InlineMethodTransformer extends 
RefactoringVisitor {
             body = (BlockTree) treeUtilities.translate(body, 
original2TranslatedBody);
             
             final Boolean[] multiplereturn = {null};
-            new TreeScanner<Void, Void>() {
+            new ErrorAwareTreeScanner<Void, Void>() {
 
                 @Override
                 public Void scan(Tree node, Void p) {
@@ -396,7 +398,7 @@ public class InlineMethodTransformer extends 
RefactoringVisitor {
         final ElementUtilities elementUtilities = 
workingCopy.getElementUtilities();
         final TypeElement bodyEnclosingTypeElement = 
elementUtilities.enclosingTypeElement(method);
 
-        TreePathScanner<Void, ExecutableElement> idScan = new 
TreePathScanner<Void, ExecutableElement>() {
+        ErrorAwareTreePathScanner<Void, ExecutableElement> idScan = new 
ErrorAwareTreePathScanner<Void, ExecutableElement>() {
             @Override
             public Void visitIdentifier(IdentifierTree node, ExecutableElement 
p) {
                 TreePath currentPath = getCurrentPath();
@@ -524,7 +526,7 @@ public class InlineMethodTransformer extends 
RefactoringVisitor {
         final CompilationUnitTree compilationUnitTree = 
workingCopy.getTrees().getPath(resolved).getCompilationUnit();
         final LinkedList<Pair<Element, String>> renames = new LinkedList<>();
         // Scan the body and look for name clashes
-        TreeScanner<Void, ExecutableElement> nameClashScanner = new 
TreeScanner<Void, ExecutableElement>() {
+        ErrorAwareTreeScanner<Void, ExecutableElement> nameClashScanner = new 
ErrorAwareTreeScanner<Void, ExecutableElement>() {
             @Override
             public Void visitVariable(VariableTree node, ExecutableElement p) {
                 TreePath path = trees.getPath(compilationUnitTree, node);
@@ -577,7 +579,7 @@ public class InlineMethodTransformer extends 
RefactoringVisitor {
             
         };
         nameClashScanner.scan(body, (ExecutableElement) p);
-        TreeScanner<Void, Pair<Element, String>> idScan = new 
TreeScanner<Void, Pair<Element, String>>() {
+        ErrorAwareTreeScanner<Void, Pair<Element, String>> idScan = new 
ErrorAwareTreeScanner<Void, Pair<Element, String>>() {
             @Override
             public Void visitIdentifier(IdentifierTree node, Pair<Element, 
String> p) {
                 TreePath path = trees.getPath(compilationUnitTree, node);
@@ -617,7 +619,7 @@ public class InlineMethodTransformer extends 
RefactoringVisitor {
         final CompilationUnitTree compilationUnitTree = 
workingCopy.getTrees().getPath(resolved).getCompilationUnit();
         final LinkedList<Pair<Element, String>> renames = new LinkedList<>();
         
-        TreeScanner<Void, Pair<VariableElement, ExpressionTree>> idScan = new 
TreeScanner<Void, Pair<VariableElement, ExpressionTree>>() {
+        ErrorAwareTreeScanner<Void, Pair<VariableElement, ExpressionTree>> 
idScan = new ErrorAwareTreeScanner<Void, Pair<VariableElement, 
ExpressionTree>>() {
             @Override
             public Void visitIdentifier(IdentifierTree node, 
Pair<VariableElement, ExpressionTree> p) {
                 TreePath currentPath = trees.getPath(compilationUnitTree, 
node);
@@ -675,7 +677,7 @@ public class InlineMethodTransformer extends 
RefactoringVisitor {
             }
         }
 
-        TreeScanner<Void, Pair<Element, String>> renameScan = new 
TreeScanner<Void, Pair<Element, String>>() {
+        ErrorAwareTreeScanner<Void, Pair<Element, String>> renameScan = new 
ErrorAwareTreeScanner<Void, Pair<Element, String>>() {
             @Override
             public Void visitIdentifier(IdentifierTree node, Pair<Element, 
String> p) {
                 TreePath path = trees.getPath(compilationUnitTree, node);

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineRefactoringPlugin.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineRefactoringPlugin.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineRefactoringPlugin.java
index 917a01e..80cfb4b 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineRefactoringPlugin.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineRefactoringPlugin.java
@@ -20,7 +20,7 @@ package org.netbeans.modules.refactoring.java.plugins;
 
 import com.sun.source.tree.*;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import com.sun.source.util.Trees;
 import java.io.IOException;
 import java.util.*;
@@ -250,7 +250,7 @@ public class InlineRefactoringPlugin extends 
JavaRefactoringPlugin {
                 if (initializer.getKind().equals(Tree.Kind.METHOD_INVOCATION)) 
{
                     skipFirstMethodInvocation++;
                 }
-                TreeScanner<Boolean, Boolean> scanner = new 
UnsafeTreeScanner(skipFirstMethodInvocation);
+                ErrorAwareTreeScanner<Boolean, Boolean> scanner = new 
UnsafeTreeScanner(skipFirstMethodInvocation);
                 Boolean isChanged = scanner.scan(initializer, false);
                 if (isChanged != null && isChanged) {
                     preCheckProblem = createProblem(preCheckProblem, false, 
WRN_InlineChange()); //NOI18N
@@ -542,7 +542,7 @@ public class InlineRefactoringPlugin extends 
JavaRefactoringPlugin {
         }
     }
 
-    private static class UnsafeTreeScanner extends TreeScanner<Boolean, 
Boolean> {
+    private static class UnsafeTreeScanner extends 
ErrorAwareTreeScanner<Boolean, Boolean> {
 
         private int skipFirstMethodInvocation;
 

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/IntroduceParameterPlugin.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/IntroduceParameterPlugin.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/IntroduceParameterPlugin.java
index fdba31e..24fc93a 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/IntroduceParameterPlugin.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/IntroduceParameterPlugin.java
@@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.plugins;
 import com.sun.source.tree.Tree.Kind;
 import com.sun.source.tree.*;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import java.io.IOException;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -92,7 +92,7 @@ public class IntroduceParameterPlugin extends 
JavaRefactoringPlugin {
                 String name = paramTable[index].getName();
                 int originalIndex = paramTable[index].getOriginalIndex();
                 final VariableElement parameterElement = originalIndex == -1 ? 
null : method.getParameters().get(originalIndex);
-                TreeScanner<Boolean, String> scanner = new 
TreeScanner<Boolean, String>() {
+                ErrorAwareTreeScanner<Boolean, String> scanner = new 
ErrorAwareTreeScanner<Boolean, String>() {
                
                     @Override
                     public Boolean visitVariable(VariableTree vt, String p) {
@@ -330,7 +330,7 @@ public class IntroduceParameterPlugin extends 
JavaRefactoringPlugin {
     private Set<TreePath> computeDuplicates(final WorkingCopy workingCopy, 
TreePath resolved, TreePath meth) {
         Set<TreePath> ret = SourceUtils.computeDuplicates(workingCopy, 
resolved, meth, new AtomicBoolean());
 //        final Set<TreePath> ret = new HashSet<TreePath>();
-//        TreePathScanner<Void, Element> scanner = new TreePathScanner<Void, 
Element>() {
+//        ErrorAwareTreePathScanner<Void, Element> scanner = new 
ErrorAwareTreePathScanner<Void, Element>() {
 //
 //            @Override
 //            public Void visitIdentifier(IdentifierTree node, Element p) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InvertBooleanRefactoringPlugin.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InvertBooleanRefactoringPlugin.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InvertBooleanRefactoringPlugin.java
index 4dd18c2..e9cbf5f 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InvertBooleanRefactoringPlugin.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InvertBooleanRefactoringPlugin.java
@@ -22,7 +22,7 @@ package org.netbeans.modules.refactoring.java.plugins;
 import com.sun.source.tree.*;
 import com.sun.source.tree.Tree.Kind;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -259,7 +259,7 @@ public class InvertBooleanRefactoringPlugin implements 
RefactoringPlugin { //ext
                         format.setRightBrace("}$");
                         final String mthFormat = format.format(MTH_INIT);
 
-                        new TreePathScanner<Void, Void>() {
+                        new ErrorAwareTreePathScanner<Void, Void>() {
                             @Override public Void visitReturn(ReturnTree node, 
Void p) {
                                 
TransformationSupport.create(mthFormat).setCancel(cancel).transformTreePath(parameter,
 getCurrentPath());
                                 return super.visitReturn(node, p);

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/LocalVarScanner.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/LocalVarScanner.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/LocalVarScanner.java
index a58afff..9f7c98b 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/LocalVarScanner.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/LocalVarScanner.java
@@ -32,7 +32,7 @@ import com.sun.source.tree.SwitchTree;
 import com.sun.source.tree.TryTree;
 import com.sun.source.tree.VariableTree;
 import com.sun.source.tree.WhileLoopTree;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import javax.lang.model.element.Element;
 import javax.lang.model.element.ElementKind;
 import org.netbeans.api.java.source.CompilationInfo;
@@ -41,7 +41,7 @@ import org.netbeans.api.java.source.CompilationInfo;
  *
  * @author Jan Becicka
  */
-public class LocalVarScanner extends TreePathScanner<Boolean, Element> {
+public class LocalVarScanner extends ErrorAwareTreePathScanner<Boolean, 
Element> {
 
     private CompilationInfo info;
     private String newName;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveClassTransformer.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveClassTransformer.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveClassTransformer.java
index 26c7a74..e7e1fdd 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveClassTransformer.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveClassTransformer.java
@@ -20,7 +20,7 @@ package org.netbeans.modules.refactoring.java.plugins;
 
 import com.sun.source.tree.*;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import java.io.File;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -170,7 +170,7 @@ public class MoveClassTransformer extends 
RefactoringVisitor {
                     ClassTree classTree = (ClassTree) 
workingCopy.getTrees().getTree(resolved);
                     ClassTree origTree = get.importComments(classTree, 
workingCopy.getTrees().getPath(resolved).getCompilationUnit());
                     final Map<Tree, Tree> org2trans = new HashMap<Tree, 
Tree>();
-                    TreeScanner<Object, Element> scanner= new 
TreeScanner<Object, Element>() {
+                    ErrorAwareTreeScanner<Object, Element> scanner= new 
ErrorAwareTreeScanner<Object, Element>() {
 
                         @Override
                         public Object visitIdentifier(IdentifierTree node, 
Element p) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveMembersTransformer.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveMembersTransformer.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveMembersTransformer.java
index 37c9c8e..ccc162f 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveMembersTransformer.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveMembersTransformer.java
@@ -23,7 +23,7 @@ import com.sun.javadoc.Tag;
 import com.sun.source.tree.*;
 import com.sun.source.util.SourcePositions;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import com.sun.source.util.Trees;
 import java.util.*;
 import java.util.logging.Level;
@@ -377,7 +377,7 @@ public class MoveMembersTransformer extends 
RefactoringVisitor {
                 arguments.remove(removedIndex);
             }
             TypeMirror sourceType = 
workingCopy.getTrees().getTypeMirror(enclosingClassPath);
-            TreeScanner<Boolean, TypeMirror> needsArgumentScanner = new 
TreeScanner<Boolean, TypeMirror>() {
+            ErrorAwareTreeScanner<Boolean, TypeMirror> needsArgumentScanner = 
new ErrorAwareTreeScanner<Boolean, TypeMirror>() {
                 // Logic is a copy from #insertIfMatch
 
                 @Override
@@ -549,7 +549,7 @@ public class MoveMembersTransformer extends 
RefactoringVisitor {
                     final TreePath bodyPath = new TreePath(resolvedPath, body);
                     final Trees trees = workingCopy.getTrees();
                     final Map<ExpressionTree, ExpressionTree> fqns = new 
HashMap<ExpressionTree, ExpressionTree>();
-                    TreeScanner<Void, Void> fqnScan = new TreeScanner<Void, 
Void>() {
+                    ErrorAwareTreeScanner<Void, Void> fqnScan = new 
ErrorAwareTreeScanner<Void, Void>() {
 
                         @Override
                         public Void visitIdentifier(IdentifierTree node, Void 
p) {
@@ -573,7 +573,7 @@ public class MoveMembersTransformer extends 
RefactoringVisitor {
                     TreePath sourceClass = 
JavaRefactoringUtils.findEnclosingClass(workingCopy, resolvedPath, true, true, 
true, true, true);
                     TypeMirror sourceType = 
workingCopy.getTrees().getTypeMirror(sourceClass);
                     final String parameterName = getParameterName(sourceType, 
workingCopy.getTrees().getScope(bodyPath), workingCopy);
-                    TreeScanner<Boolean, TypeMirror> idScan = new 
TreeScanner<Boolean, TypeMirror>() {
+                    ErrorAwareTreeScanner<Boolean, TypeMirror> idScan = new 
ErrorAwareTreeScanner<Boolean, TypeMirror>() {
 
                         @Override
                         public Boolean visitMemberSelect(MemberSelectTree 
node, TypeMirror source) {
@@ -646,7 +646,7 @@ public class MoveMembersTransformer extends 
RefactoringVisitor {
                     boolean addParameter = idScan.scan(body, sourceType) == 
Boolean.TRUE;
 
                     if (removedParameter != null) {
-                        TreeScanner<Void, Pair<Element, ExpressionTree>> 
idScan2 = new TreeScanner<Void, Pair<Element, ExpressionTree>>() {
+                        ErrorAwareTreeScanner<Void, Pair<Element, 
ExpressionTree>> idScan2 = new ErrorAwareTreeScanner<Void, Pair<Element, 
ExpressionTree>>() {
 
                             @Override
                             public Void visitIdentifier(IdentifierTree node, 
Pair<Element, ExpressionTree> p) {
@@ -950,7 +950,7 @@ public class MoveMembersTransformer extends 
RefactoringVisitor {
         final Map<Tree, Tree> original2Translated = new HashMap<Tree, Tree>();
         
         // TODO Change this to something like that is used for method body; 
importFqns
-        TreeScanner<Void, Void> idScan = new TreeScanner<Void, Void>() {
+        ErrorAwareTreeScanner<Void, Void> idScan = new 
ErrorAwareTreeScanner<Void, Void>() {
             @Override
             public Void visitIdentifier(IdentifierTree node, Void p) {
                 TreePath currentPath = new TreePath(resolvedPath, node);

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PullUpTransformer.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PullUpTransformer.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PullUpTransformer.java
index 1e991a7..7648fa8 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PullUpTransformer.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PullUpTransformer.java
@@ -20,7 +20,7 @@ package org.netbeans.modules.refactoring.java.plugins;
 
 import com.sun.source.tree.*;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import com.sun.source.util.Trees;
 import java.util.EnumSet;
 import java.util.HashMap;
@@ -318,7 +318,7 @@ public class PullUpTransformer extends RefactoringVisitor {
         final Types types = workingCopy.getTypes();
 
         final Map<IdentifierTree, Tree> original2Translated = new 
HashMap<IdentifierTree, Tree>();
-        TreeScanner<Void, Void> scanner = new TreeScanner<Void, Void>() {
+        ErrorAwareTreeScanner<Void, Void> scanner = new 
ErrorAwareTreeScanner<Void, Void>() {
 
             @Override
             public Void visitIdentifier(IdentifierTree node, Void p) {
@@ -359,7 +359,7 @@ public class PullUpTransformer extends RefactoringVisitor {
     private BlockTree updateSuperThisReferences(BlockTree body, final TreePath 
mpath) {
         final Map<ExpressionTree, ExpressionTree> original2Translated = new 
HashMap<ExpressionTree, ExpressionTree>();
         final Trees trees = workingCopy.getTrees();
-        TreeScanner<Boolean, Void> idScan = new TreeScanner<Boolean, Void>() {
+        ErrorAwareTreeScanner<Boolean, Void> idScan = new 
ErrorAwareTreeScanner<Boolean, Void>() {
             @Override
             public Boolean visitMemberSelect(MemberSelectTree node, Void 
nothing) {
                 String isThis = node.getExpression().toString();

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PushDownTransformer.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PushDownTransformer.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PushDownTransformer.java
index be45fb4..8188d2e 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PushDownTransformer.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PushDownTransformer.java
@@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.plugins;
 
 import com.sun.source.tree.*;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import com.sun.source.util.Trees;
 import java.util.ArrayList;
 import java.util.Deque;
@@ -376,7 +376,7 @@ public class PushDownTransformer extends RefactoringVisitor 
{
             return;
         }
         
-        new TreePathScanner() {
+        new ErrorAwareTreePathScanner() {
 
             @Override
             public Object visitIdentifier(IdentifierTree node, Object p) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameRefactoringPlugin.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameRefactoringPlugin.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameRefactoringPlugin.java
index 26fa10f..b783668 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameRefactoringPlugin.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameRefactoringPlugin.java
@@ -23,7 +23,7 @@ import com.sun.source.tree.LabeledStatementTree;
 import com.sun.source.tree.Tree;
 import com.sun.source.util.DocTrees;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import java.io.IOException;
 import java.text.MessageFormat;
 import java.util.*;
@@ -187,7 +187,7 @@ public class RenameRefactoringPlugin extends 
JavaRefactoringPlugin {
                 parent = parent.getParentPath();
             }
             final String[] result = new String[1];
-            new TreeScanner<Void, Void>() {
+            new ErrorAwareTreeScanner<Void, Void>() {
                 
                 @Override
                 public Void visitLabeledStatement(LabeledStatementTree tree, 
Void p) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameTransformer.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameTransformer.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameTransformer.java
index 7c23169..55c5975 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameTransformer.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameTransformer.java
@@ -26,7 +26,7 @@ import com.sun.source.tree.*;
 import com.sun.source.util.DocTreePath;
 import com.sun.source.util.DocTrees;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import com.sun.source.util.Trees;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -606,7 +606,7 @@ public class RenameTransformer extends RefactoringVisitor {
     }
 
     private boolean duplicateDeclaration() {
-        TreeScanner<Boolean, String> duplicateIds = new TreeScanner<Boolean, 
String>() {
+        ErrorAwareTreeScanner<Boolean, String> duplicateIds = new 
ErrorAwareTreeScanner<Boolean, String>() {
             @Override public Boolean visitClass(ClassTree node, String p) {
                 if(node.getSimpleName().contentEquals(p)) {
                     return Boolean.TRUE;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java
index 4b77368..39031ab 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java
@@ -57,7 +57,7 @@ import com.sun.source.tree.Tree;
 import com.sun.source.util.DocTreePath;
 import com.sun.source.util.DocTreePathScanner;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.io.IOException;
 import javax.lang.model.element.Element;
 import org.netbeans.api.annotations.common.CheckForNull;
@@ -73,7 +73,7 @@ import org.openide.ErrorManager;
  *
  * @author Jan Becicka
  */
-public class RefactoringVisitor extends TreePathScanner<Tree, Element> 
implements DocTreeVisitor<DocTree, Element> {
+public class RefactoringVisitor extends ErrorAwareTreePathScanner<Tree, 
Element> implements DocTreeVisitor<DocTree, Element> {
     /**
      * 
      */

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/InstantRefactoringUIImpl.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/InstantRefactoringUIImpl.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/InstantRefactoringUIImpl.java
index 1216081..958141d 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/InstantRefactoringUIImpl.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/InstantRefactoringUIImpl.java
@@ -30,7 +30,7 @@ import com.sun.source.util.DocSourcePositions;
 import com.sun.source.util.DocTreePath;
 import com.sun.source.util.DocTrees;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -430,7 +430,7 @@ public final class InstantRefactoringUIImpl implements 
InstantRefactoringUI {
                         }
                     }
                     final Name label = 
((LabeledStatementTree)labeledStatement.getLeaf()).getLabel();
-                    new TreePathScanner <Void, Void>() {
+                    new ErrorAwareTreePathScanner <Void, Void>() {
                         @Override
                         public Void visitBreak(BreakTree node, Void p) {
                             if (node.getLabel() != null && 
label.contentEquals(node.getLabel())) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/MoveMembersPanel.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/MoveMembersPanel.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/MoveMembersPanel.java
index 697242d..e6152a5 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/MoveMembersPanel.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/MoveMembersPanel.java
@@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.ui;
 import com.sun.source.tree.*;
 import com.sun.source.util.SourcePositions;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import com.sun.source.util.Trees;
 import java.awt.*;
 import java.awt.event.*;
@@ -1088,7 +1088,7 @@ public class MoveMembersPanel extends javax.swing.JPanel 
implements CustomRefact
         }
     }
 
-    private static class PositionVisitor extends TreePathScanner<Void, 
Map<Element, Long>> {
+    private static class PositionVisitor extends 
ErrorAwareTreePathScanner<Void, Map<Element, Long>> {
 
         private final Trees trees;
         private final SourcePositions sourcePositions;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/RenamePanel.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/RenamePanel.java
 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/RenamePanel.java
index 120f8d5..50dd12f 100644
--- 
a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/RenamePanel.java
+++ 
b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/RenamePanel.java
@@ -19,7 +19,7 @@
 package org.netbeans.modules.refactoring.java.ui;
 import com.sun.source.tree.ClassTree;
 import com.sun.source.tree.Tree;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.awt.Component;
 import java.awt.event.ItemEvent;
 import java.io.IOException;
@@ -190,7 +190,7 @@ public class RenamePanel extends JPanel implements 
CustomRefactoringPanel {
         initialized = true;
     }
 
-    private class TestClassMethodsVisitor extends TreePathScanner<Void, Void> {
+    private class TestClassMethodsVisitor extends 
ErrorAwareTreePathScanner<Void, Void> {
 
        private CompilationInfo info;
        private List<ExecutableElement> testClassMethods;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RefactoringTestBase.java
----------------------------------------------------------------------
diff --git 
a/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RefactoringTestBase.java
 
b/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RefactoringTestBase.java
index db31258..cae3ee7 100644
--- 
a/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RefactoringTestBase.java
+++ 
b/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RefactoringTestBase.java
@@ -321,7 +321,7 @@ public class RefactoringTestBase extends NbTestCase {
         Main.initializeURLFactory();
         
org.netbeans.api.project.ui.OpenProjects.getDefault().getOpenProjects();
         
-        org.netbeans.modules.java.source.TreeLoader.DISABLE_CONFINEMENT_TEST = 
true;
+//        org.netbeans.modules.java.source.TreeLoader.DISABLE_CONFINEMENT_TEST 
= true;
         
         prepareTest();
         org.netbeans.api.project.ui.OpenProjects.getDefault().open(new 
Project[] {prj = ProjectManager.getDefault().findProject(src.getParent())}, 
false);

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spellchecker.bindings.java/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/spellchecker.bindings.java/nbproject/project.properties 
b/spellchecker.bindings.java/nbproject/project.properties
index c306880..e13a23a 100644
--- a/spellchecker.bindings.java/nbproject/project.properties
+++ b/spellchecker.bindings.java/nbproject/project.properties
@@ -38,3 +38,4 @@ test.unit.run.cp.extra=\
     ${netbeans.dest.dir}/ide8/modules/ext/jmi.jar:\
 
 test.config.stableBTD.includes=**/*Test.class
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spellchecker.bindings.java/src/org/netbeans/modules/spellchecker/bindings/java/JavaSemanticTokenList.java
----------------------------------------------------------------------
diff --git 
a/spellchecker.bindings.java/src/org/netbeans/modules/spellchecker/bindings/java/JavaSemanticTokenList.java
 
b/spellchecker.bindings.java/src/org/netbeans/modules/spellchecker/bindings/java/JavaSemanticTokenList.java
index effe969..f277d09 100644
--- 
a/spellchecker.bindings.java/src/org/netbeans/modules/spellchecker/bindings/java/JavaSemanticTokenList.java
+++ 
b/spellchecker.bindings.java/src/org/netbeans/modules/spellchecker/bindings/java/JavaSemanticTokenList.java
@@ -21,7 +21,7 @@ package org.netbeans.modules.spellchecker.bindings.java;
 import com.sun.source.tree.ClassTree;
 import com.sun.source.tree.MethodTree;
 import com.sun.source.tree.VariableTree;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
@@ -159,7 +159,7 @@ public class JavaSemanticTokenList implements TokenList {
             l.set(pos, parameter.getDocument());
         }
         
-        private static final class ScannerImpl extends TreeScanner<Void, 
List<Position[]>> {
+        private static final class ScannerImpl extends 
ErrorAwareTreeScanner<Void, List<Position[]>> {
             private Document doc;
             private CompilationInfo info;
 

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Hacks.java
----------------------------------------------------------------------
diff --git 
a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Hacks.java 
b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Hacks.java
index 88b5b23..c9adef9 100644
--- a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Hacks.java
+++ b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Hacks.java
@@ -25,7 +25,7 @@ import com.sun.source.tree.MethodTree;
 import com.sun.source.tree.Scope;
 import com.sun.source.tree.Tree;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import com.sun.tools.javac.api.JavacTaskImpl;
 import com.sun.tools.javac.code.Symbol.ClassSymbol;
 import com.sun.tools.javac.comp.AttrContext;
@@ -36,13 +36,18 @@ import com.sun.tools.javac.tree.JCTree;
 import com.sun.tools.javac.tree.JCTree.JCErroneous;
 import com.sun.tools.javac.util.Context;
 import com.sun.tools.javac.util.Log;
+
 import java.io.File;
 import java.io.IOException;
+import java.util.Collections;
+
 import javax.lang.model.element.Element;
 import javax.lang.model.element.TypeElement;
 import javax.lang.model.element.VariableElement;
 import javax.lang.model.type.TypeMirror;
 import javax.tools.JavaFileObject;
+
+import com.sun.tools.javac.parser.ParserFactory;
 import org.netbeans.api.annotations.common.CheckForNull;
 import org.netbeans.api.annotations.common.NonNull;
 import org.netbeans.api.java.source.CompilationInfo;
@@ -83,26 +88,21 @@ public class Hacks {
         Log.instance(context).nerrors = 0;
 
         JavaFileObject jfo = FileObjects.memoryFileObject("$$", "$", new 
File("/tmp/t.java").toURI(), System.currentTimeMillis(), clazz.toString());
-        boolean oldSkipAPs = jc.skipAnnotationProcessing;
 
         try {
-            jc.skipAnnotationProcessing = true;
-
-            Iterable<? extends CompilationUnitTree> parsed = jti.parse(jfo);
-            CompilationUnitTree cut = parsed.iterator().next();
+            CompilationUnitTree cut = 
ParserFactory.instance(context).newParser(jfo.getCharContent(true), true, true, 
true).parseCompilationUnit();
 
-            jti.analyze(jti.enter(parsed));
+            jti.analyze(jti.enter(Collections.singletonList(cut)));
 
             return new ScannerImpl().scan(cut, info);
         } catch (IOException ex) {
             Exceptions.printStackTrace(ex);
             return null;
         } finally {
-            jc.skipAnnotationProcessing = oldSkipAPs;
         }
     }
 
-    private static final class ScannerImpl extends TreePathScanner<Scope, 
CompilationInfo> {
+    private static final class ScannerImpl extends 
ErrorAwareTreePathScanner<Scope, CompilationInfo> {
 
         @Override
         public Scope visitBlock(BlockTree node, CompilationInfo p) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java
----------------------------------------------------------------------
diff --git 
a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java 
b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java
index 3051cd7..5962f8c 100644
--- a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java
+++ b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java
@@ -44,8 +44,8 @@ import com.sun.source.tree.TypeParameterTree;
 import com.sun.source.tree.VariableTree;
 import com.sun.source.util.SourcePositions;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import com.sun.source.util.Trees;
 import com.sun.tools.javac.api.JavacScope;
 import com.sun.tools.javac.api.JavacTaskImpl;
@@ -59,6 +59,7 @@ import com.sun.tools.javac.comp.Attr;
 import com.sun.tools.javac.comp.AttrContext;
 import com.sun.tools.javac.comp.Enter;
 import com.sun.tools.javac.comp.Env;
+import com.sun.tools.javac.comp.Modules;
 import com.sun.tools.javac.comp.Todo;
 import com.sun.tools.javac.main.JavaCompiler;
 import com.sun.tools.javac.parser.JavacParser;
@@ -93,6 +94,7 @@ import java.io.File;
 import java.io.IOException;
 import java.lang.ref.Reference;
 import java.lang.ref.WeakReference;
+import java.lang.reflect.Field;
 import java.net.URI;
 import java.nio.CharBuffer;
 import java.util.Arrays;
@@ -109,6 +111,8 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import javax.lang.model.element.AnnotationMirror;
 import javax.lang.model.element.AnnotationValue;
 import javax.lang.model.element.AnnotationValueVisitor;
@@ -441,7 +445,7 @@ public class Utilities {
                     CompilationUnitTree cut = ((JavacScope) 
scope).getEnv().toplevel;
                     final boolean[] found = new boolean[1];
 
-                    new TreePathScanner<Void, Void>() {
+                    new ErrorAwareTreePathScanner<Void, Void>() {
                         @Override public Void 
visitMemberSelect(MemberSelectTree node, Void p) {
                             Element currentElement = 
trees.getElement(getCurrentPath());
 
@@ -546,7 +550,7 @@ public class Utilities {
     }
     
     private static boolean containsError(Tree t) {
-        return new TreeScanner<Boolean, Void>() {
+        return new ErrorAwareTreeScanner<Boolean, Void>() {
             @Override
             public Boolean scan(Tree node, Void p) {
                 if (node != null && isErrorTree(node)) {
@@ -635,10 +639,10 @@ public class Utilities {
         };
         NBResolve resolve = NBResolve.instance(jti.getContext());
         resolve.disableAccessibilityChecks();
-        Enter enter = Enter.instance(jti.getContext());
-        enter.shadowTypeEnvs(true);
-        ArgumentAttr argumentAttr = ArgumentAttr.instance(jti.getContext());
-        ArgumentAttr.LocalCacheContext cacheContext = 
argumentAttr.withLocalCacheContext();
+//        Enter enter = Enter.instance(jti.getContext());
+//        enter.shadowTypeEnvs(true);
+//        ArgumentAttr argumentAttr = ArgumentAttr.instance(jti.getContext());
+//        ArgumentAttr.LocalCacheContext cacheContext = 
argumentAttr.withLocalCacheContext();
         try {
             Attr attr = Attr.instance(jti.getContext());
             Env<AttrContext> env = ((JavacScope) scope).getEnv();
@@ -646,11 +650,11 @@ public class Utilities {
                 return attr.attribExpr((JCTree) tree,env, Type.noType);
             return attr.attribStat((JCTree) tree,env);
         } finally {
-            cacheContext.leave();
+//            cacheContext.leave();
             log.useSource(prev);
             log.popDiagnosticHandler(discardHandler);
             resolve.restoreAccessbilityChecks();
-            enter.shadowTypeEnvs(false);
+//            enter.shadowTypeEnvs(false);
         }
     }
 
@@ -732,6 +736,7 @@ public class Utilities {
         JavacTaskImpl jti = 
JavaSourceAccessor.getINSTANCE().getJavacTask(info);
         Context context = jti.getContext();
         JavaCompiler compiler = JavaCompiler.instance(context);
+        Modules modules = Modules.instance(context);
         Log log = Log.instance(context);
         NBResolve resolve = NBResolve.instance(context);
         Annotate annotate = Annotate.instance(context);
@@ -739,18 +744,24 @@ public class Utilities {
 
         JavaFileObject jfo = FileObjects.memoryFileObject("$", "$", new 
File("/tmp/$" + count + ".java").toURI(), System.currentTimeMillis(), 
clazz.toString());
 
-        boolean oldSkipAPs = compiler.skipAnnotationProcessing;
-
         try {
-            compiler.skipAnnotationProcessing = true;
             resolve.disableAccessibilityChecks();
             if (compiler.isEnterDone()) {
                 annotate.blockAnnotations();
-                compiler.resetEnterDone();
+//                try {
+//                    Field f = 
compiler.getClass().getDeclaredField("enterDone");
+//                    f.setAccessible(true);
+//                    f.set(compiler, false);
+//                } catch (Throwable t) {
+//                    
Logger.getLogger(Utilities.class.getName()).log(Level.FINE, null, t);
+//                }
+                //was:
+//                compiler.resetEnterDone();
             }
             
             JCCompilationUnit cut = compiler.parse(jfo);
-            
compiler.enterTrees(compiler.initModules(com.sun.tools.javac.util.List.of(cut)));
+            modules.enter(com.sun.tools.javac.util.List.of(cut), null);
+            compiler.enterTrees(com.sun.tools.javac.util.List.of(cut));
 
             Todo todo = compiler.todo;
             ListBuffer<Env<AttrContext>> defer = new 
ListBuffer<Env<AttrContext>>();
@@ -774,11 +785,10 @@ public class Utilities {
         } finally {
             resolve.restoreAccessbilityChecks();
             log.popDiagnosticHandler(discardHandler);
-            compiler.skipAnnotationProcessing = oldSkipAPs;
         }
     }
 
-    private static final class ScannerImpl extends TreePathScanner<Scope, 
CompilationInfo> {
+    private static final class ScannerImpl extends 
ErrorAwareTreePathScanner<Scope, CompilationInfo> {
 
         @Override
         public Scope visitBlock(BlockTree node, CompilationInfo p) {
@@ -1075,7 +1085,7 @@ public class Utilities {
         }
     }
     
-    private static final class GeneralizePattern extends TreePathScanner<Void, 
Void> {
+    private static final class GeneralizePattern extends 
ErrorAwareTreePathScanner<Void, Void> {
 
         public final Map<Tree, Tree> tree2Variable = new HashMap<Tree, Tree>();
         private final Map<Element, String> element2Variable = new 
HashMap<Element, String>();
@@ -1214,7 +1224,7 @@ public class Utilities {
     }
 
     public static long patternValue(Tree pattern) {
-        class VisitorImpl extends TreeScanner<Void, Void> {
+        class VisitorImpl extends ErrorAwareTreeScanner<Void, Void> {
             private int value;
             @Override
             public Void scan(Tree node, Void p) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/pm/NFABasedBulkSearch.java
----------------------------------------------------------------------
diff --git 
a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/pm/NFABasedBulkSearch.java
 
b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/pm/NFABasedBulkSearch.java
index 4211d95..6ed8348 100644
--- 
a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/pm/NFABasedBulkSearch.java
+++ 
b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/pm/NFABasedBulkSearch.java
@@ -32,7 +32,7 @@ import com.sun.source.tree.Tree;
 import com.sun.source.tree.Tree.Kind;
 import com.sun.source.tree.VariableTree;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFixUtilities.java
----------------------------------------------------------------------
diff --git 
a/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFixUtilities.java 
b/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFixUtilities.java
index 45539b5..642541d 100644
--- a/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFixUtilities.java
+++ b/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFixUtilities.java
@@ -57,8 +57,8 @@ import com.sun.source.tree.VariableTree;
 import com.sun.source.tree.WhileLoopTree;
 import com.sun.source.util.SourcePositions;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -522,7 +522,7 @@ public class JavaFixUtilities {
 
             final Set<Tree> originalTrees = Collections.newSetFromMap(new 
IdentityHashMap<Tree, Boolean>());
             
-            new TreeScanner<Void, Void>() {
+            new ErrorAwareTreeScanner<Void, Void>() {
                 @Override public Void scan(Tree tree, Void p) {
                     originalTrees.add(tree);
                     return super.scan(tree, p);
@@ -580,7 +580,7 @@ public class JavaFixUtilities {
 
     private static final Set<Kind> NUMBER_LITERAL_KINDS = 
EnumSet.of(Kind.FLOAT_LITERAL, Kind.DOUBLE_LITERAL, Kind.INT_LITERAL, 
Kind.LONG_LITERAL);
 
-    private static class ReplaceParameters extends TreePathScanner<Number, 
Void> {
+    private static class ReplaceParameters extends 
ErrorAwareTreePathScanner<Number, Void> {
 
         private final CompilationInfo info;
         private final TreeMaker make;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/TestBase.java
----------------------------------------------------------------------
diff --git 
a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/TestBase.java
 
b/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/TestBase.java
index 1ec2c70..7eadb97 100644
--- 
a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/TestBase.java
+++ 
b/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/TestBase.java
@@ -31,7 +31,7 @@ import org.netbeans.api.java.source.SourceUtilsTestUtil;
 import org.netbeans.api.java.source.TestUtilities;
 import org.netbeans.api.lexer.Language;
 import org.netbeans.junit.NbTestCase;
-import org.netbeans.modules.java.source.TreeLoader;
+//import org.netbeans.modules.java.source.TreeLoader;
 import org.openide.cookies.EditorCookie;
 import org.openide.filesystems.FileObject;
 import org.openide.filesystems.FileUtil;
@@ -51,7 +51,8 @@ public class TestBase extends NbTestCase {
     protected void setUp() throws Exception {
         super.setUp();
         SourceUtilsTestUtil.prepareTest(new String[0], new Object[0]);
-        TreeLoader.DISABLE_CONFINEMENT_TEST = true;
+        //XXX:
+//        TreeLoader.DISABLE_CONFINEMENT_TEST = true;
         clearWorkDir();
 
         FileUtil.refreshFor(File.listRoots());

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/UtilitiesTest.java
----------------------------------------------------------------------
diff --git 
a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/UtilitiesTest.java
 
b/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/UtilitiesTest.java
index 5a47794..01edc45 100644
--- 
a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/UtilitiesTest.java
+++ 
b/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/UtilitiesTest.java
@@ -30,7 +30,7 @@ import com.sun.source.tree.Tree.Kind;
 import com.sun.source.tree.VariableTree;
 import com.sun.source.util.SourcePositions;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import com.sun.tools.javac.tree.JCTree;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -623,7 +623,7 @@ public class UtilitiesTest extends TestBase {
     private void assertPositions(Tree t, final SourcePositions sp, final 
String code, String... golden) {
         final List<String> actual = new ArrayList<String>(golden.length);
 
-        new TreeScanner<Void, Void>() {
+        new ErrorAwareTreeScanner<Void, Void>() {
             @Override
             public Void scan(Tree node, Void p) {
                 if (node != null) {


Reply via email to