You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jl...@apache.org on 2017/10/04 19:41:25 UTC

[13/13] incubator-netbeans git commit: Work in progress: an experiment on using javac from JDK for source code modeling.

Work in progress: an experiment on using javac from JDK for source code modeling.


Project: http://git-wip-us.apache.org/repos/asf/incubator-netbeans/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-netbeans/commit/ffc0de5a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-netbeans/tree/ffc0de5a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-netbeans/diff/ffc0de5a

Branch: refs/heads/jdk-javac
Commit: ffc0de5a17b88ced95a0bd5b89175108701f86a0
Parents: 81234c9
Author: Jan Lahoda <jl...@netbeans.org>
Authored: Wed Oct 4 21:39:38 2017 +0200
Committer: Jan Lahoda <jl...@netbeans.org>
Committed: Wed Oct 4 21:39:38 2017 +0200

----------------------------------------------------------------------
 apisupport.project/nbproject/project.properties |   1 +
 apisupport.wizards/nbproject/project.properties |   1 +
 beans/nbproject/project.properties              |   3 +-
 .../addproperty/AddPropertyCodeGenerator.java   |   4 +-
 .../org/netbeans/core/startup/NbInstaller.java  |   2 +
 debugger.jpda.ant/nbproject/project.properties  |   1 +
 .../debugger/jpda/projects/ClassScanner.java    |   4 +-
 .../jpda/projects/EditorContextSupport.java     |   6 +-
 .../jpda/projects/ExpressionScanner.java        |   4 +-
 .../jpda/projects/MethodArgumentsScanner.java   |   4 +-
 .../jpda/projects/PreferredCCParser.java        |   8 +-
 .../debugger/jpda/projects/ScanLocalVars.java   |   4 +-
 .../jpda/projectsui/EditorContextImpl.java      |   6 +-
 debugger.jpda.visual/nbproject/project.xml      |   8 +
 .../debugger/jpda/EditorContextBridge.java      |  20 +-
 .../debugger/jpda/expr/CanInterpretVisitor.java |   4 +-
 .../debugger/jpda/expr/EvaluatorVisitor.java    |   4 +-
 .../api/debugger/jpda/JDIWrappersTest.java      |   4 +-
 form.binding/nbproject/project.properties       |   2 +
 form.j2ee/nbproject/project.properties          |   2 +
 form.nb/nbproject/project.properties            |   2 +
 form.refactoring/nbproject/project.properties   |   2 +
 .../RADComponentRenameRefactoringSupport.java   |   4 +-
 hibernate/nbproject/project.properties          |   3 +
 i18n/nbproject/project.properties               |   2 +
 ide/launcher/netbeans.conf                      |   2 +-
 .../nbproject/project.properties                |   3 +
 .../api/common/classpath/ModuleClassPaths.java  |   4 +-
 .../impl/DefaultProjectModulesModifier.java     |   8 +-
 .../common/impl/TemplateModuleDeclarator.java   |   4 +-
 .../modules/java/completion/BaseTask.java       |   5 +-
 .../java/completion/JavaCompletionTask.java     |   3 +-
 .../java/completion/CompletionTestBase.java     |   4 +-
 .../java/debug/TreeNavigatorProviderImpl.java   |   4 +-
 .../java/editor/base/imports/UnusedImports.java |   4 +-
 .../editor/base/javadoc/JavadocImports.java     |  14 +-
 .../MarkOccurrencesHighlighterBase.java         |   4 +-
 .../editor/base/semantic/UnusedImportsTest.java |   4 +-
 .../modules/editor/java/GoToSupport.java        |   6 +-
 .../editor/java/JavaCodeTemplateProcessor.java  |   3 +-
 .../netbeans/modules/editor/java/Utilities.java |   8 +-
 .../editor/codegen/EqualsHashCodeGenerator.java |   4 +-
 .../editor/fold/ResourceStringFoldProvider.java |   4 +-
 .../java/editor/imports/ClipboardHandler.java   |   4 +-
 .../java/editor/imports/JavaFixAllImports.java  |   4 +-
 .../editor/rename/InstantRenamePerformer.java   |   4 +-
 .../modules/editor/java/GoToSupportTest.java    |   5 +-
 .../modules/editor/java/UtilitiesTest.java      |   4 +-
 .../codegen/DelegateMethodGeneratorTest.java    |   4 +-
 .../editor/completion/CompletionTestBase.java   |   5 +-
 .../IsOverriddenAnnotationCreatorTest.java      |   7 +-
 .../declarative/DeclarativeHintsParser.java     |  13 +-
 .../hints/declarative/conditionapi/Matcher.java |   6 +-
 .../debugging/EvaluationSpanTaskTest.java       |   5 +-
 .../modules/java/hints/test/api/HintTest.java   |   2 -
 java.hints.ui/nbproject/project.properties      |   1 +
 .../modules/java/hints/ArithmeticUtilities.java |   4 +-
 .../modules/java/hints/AssignmentIssues.java    |   4 +-
 .../java/hints/ConvertAnonymousToInner.java     |   8 +-
 .../modules/java/hints/DoubleCheck.java         |   4 +-
 .../modules/java/hints/EqualsMethodHint.java    |   4 +-
 .../modules/java/hints/OrganizeImports.java     |   4 +-
 .../java/hints/WrongPackageSuggestion.java      |   4 +-
 .../java/hints/bugs/AssertWithSideEffects.java  |   2 +-
 .../java/hints/bugs/CloneAndCloneable.java      |   4 +-
 .../hints/bugs/ComparatorParameterNotUsed.java  |   4 +-
 .../java/hints/bugs/InfiniteRecursion.java      |   4 +-
 .../modules/java/hints/bugs/Regexp.java         |   4 +-
 .../netbeans/modules/java/hints/bugs/Tiny.java  |   6 +-
 .../java/hints/bugs/TryCatchFinally.java        |   4 +-
 .../java/hints/control/RemoveUnnecessary.java   |   4 +-
 .../hints/errors/AddParameterOrLocalFix.java    |   4 +-
 .../errors/ImplementAllAbstractMethods.java     |   4 +-
 .../errors/MagicSurroundWithTryCatchFix.java    |   4 +-
 .../hints/errors/MissingReturnStatement.java    |   2 +-
 .../errors/OrigSurroundWithTryCatchFix.java     |   4 +-
 .../modules/java/hints/errors/Utilities.java    |  18 +-
 .../finalize/FinalizeDoesNotCallSuper.java      |   4 +-
 .../modules/java/hints/introduce/Flow.java      |   4 +-
 .../java/hints/introduce/InstanceRefFinder.java |   4 +-
 .../java/hints/introduce/IntroduceHint.java     |  12 +-
 .../hints/introduce/ReferenceTransformer.java   |   4 +-
 .../java/hints/introduce/ScanStatement.java     |   4 +-
 .../modules/java/hints/jdk/ConvertToARM.java    |  12 +-
 .../hints/jdk/ConvertToLambdaConverter.java     |   4 +-
 .../jdk/ConvertToLambdaPreconditionChecker.java |   4 +-
 .../modules/java/hints/jdk/IteratorToFor.java   |   4 +-
 .../java/hints/jdk/UseSpecificCatch.java        |   4 +-
 .../jdk/mapreduce/PreconditionsChecker.java     |   8 +-
 .../java/hints/perf/ManualArrayCopy.java        |   4 +-
 .../java/hints/perf/ReplaceBufferByString.java  |   8 +-
 .../java/hints/perf/StringBuffer2Builder.java   |   4 +-
 .../hints/suggestions/ExpectedTypeResolver.java |   2 +-
 .../hints/suggestions/IfToSwitchSupport.java    |   8 +-
 .../modules/java/hints/suggestions/Lambda.java  |   6 +-
 .../modules/java/hints/suggestions/Tiny.java    |   4 +-
 .../modules/java/hints/threading/Tiny.java      |   4 +-
 .../java/hints/ConvertAnonymousToInnerTest.java |   4 +-
 .../hints/SuspiciousNamesCombinationTest.java   |   4 +-
 .../hints/infrastructure/TreeRuleTestBase.java  |   5 +-
 .../java/hints/introduce/RefFinderTest.java     |   2 +-
 java.j2semodule/nbproject/project.properties    |   1 +
 java.j2seprofiles/nbproject/project.properties  |   2 +
 .../java/j2seprofiles/ProfilesAnalyzer.java     |   4 +-
 java.j2seproject/nbproject/project.properties   |   1 +
 .../java/metrics/hints/ClassMetrics.java        |   2 +-
 .../hints/CyclomaticComplexityVisitor.java      |   4 +-
 .../java/metrics/hints/DependencyCollector.java |   4 +-
 .../java/metrics/hints/DepthVisitor.java        |   4 +-
 .../java/metrics/hints/ExpressionVisitor.java   |   4 +-
 .../java/metrics/hints/MethodMetrics.java       |   8 +-
 .../java/metrics/hints/NCLOCVisitor.java        |   4 +-
 .../java/metrics/hints/MethodMetricsTest.java   |   2 +-
 java.module.graph/nbproject/project.properties  |   1 +
 java.module.graph/nbproject/project.xml         |   8 +-
 .../java/navigation/BreadCrumbsNodeImpl.java    |   4 +-
 .../java/navigation/ElementScanningTask.java    |   4 +-
 .../java/navigation/actions/OpenAction.java     |   4 +-
 .../nbproject/project.properties                |   1 +
 java.source.base/manifest.mf                    |   1 +
 java.source.base/nbproject/project.properties   |   1 +
 java.source.base/nbproject/project.xml          |  10 +-
 .../api/java/source/AssignComments.java         |   4 +-
 .../api/java/source/CompilationInfo.java        |  25 +-
 .../netbeans/api/java/source/ElementHandle.java |   7 +-
 .../api/java/source/GeneratorUtilities.java     |  18 +-
 .../netbeans/api/java/source/SourceUtils.java   |  47 +-
 .../api/java/source/TranslateIdentifier.java    |   4 +-
 .../org/netbeans/api/java/source/TreeMaker.java |   6 +-
 .../api/java/source/TreePathHandle.java         |   4 +-
 .../netbeans/api/java/source/TreeUtilities.java | 270 ++++--
 .../netbeans/api/java/source/TypeUtilities.java | 108 ++-
 .../netbeans/api/java/source/WorkingCopy.java   |  21 +-
 .../support/CancellableTreePathScanner.java     |   4 +-
 .../source/support/CancellableTreeScanner.java  |   4 +-
 .../support/ErrorAwareTreePathScanner.java      |  35 +
 .../source/support/ErrorAwareTreeScanner.java   |  35 +
 .../java/source/CompilationInfoAccessor.java    |  65 ++
 .../modules/java/source/ElementUtils.java       |  94 +++
 .../modules/java/source/JavaSourceUtilImpl.java |  16 +-
 .../modules/java/source/JavadocEnv.java         |  24 +-
 .../modules/java/source/TreeLoader.java         | 779 ------------------
 .../java/source/indexing/CompileWorker.java     |  40 +-
 .../source/indexing/DiagnosticListenerImpl.java |   2 +-
 .../modules/java/source/indexing/FQN2Files.java |   4 +-
 .../java/source/indexing/JavaBinaryIndexer.java |   8 +-
 .../java/source/indexing/JavaCustomIndexer.java |  31 +-
 .../modules/java/source/indexing/JavaIndex.java |   2 +-
 .../source/indexing/JavaParsingContext.java     |  16 +-
 .../source/indexing/MultiPassCompileWorker.java | 518 ------------
 .../source/indexing/OnePassCompileWorker.java   | 370 ---------
 .../java/source/indexing/SourcePrefetcher.java  |   4 +-
 .../indexing/SuperOnePassCompileWorker.java     | 375 ---------
 .../source/indexing/VanillaCompileWorker.java   | 357 ++++++++
 .../java/source/matching/CopyFinder.java        |   4 +-
 .../parsing/AbstractSourceFileObject.java       |   5 +-
 .../source/parsing/BasicSourceFileObject.java   |   2 +-
 .../source/parsing/CompilationInfoImpl.java     |  25 +-
 .../source/parsing/FileManagerTransaction.java  |   6 +-
 .../source/parsing/FindAnonymousVisitor.java    |  85 --
 .../java/source/parsing/JavacFlowListener.java  |   4 +-
 .../java/source/parsing/JavacParser.java        | 295 ++-----
 .../java/source/parsing/ModuleOraculum.java     |  15 +-
 .../java/source/parsing/ParsingUtils.java       |  53 ++
 .../parsing/TranslatePositionsVisitor.java      | 122 ---
 .../java/source/pretty/ImportAnalysis2.java     |   6 +-
 .../modules/java/source/pretty/VeryPretty.java  |  16 +-
 .../modules/java/source/save/CasualDiff.java    |  28 +-
 .../modules/java/source/save/Reformatter.java   |  10 +-
 .../modules/java/source/save/Reindenter.java    |  39 +-
 .../usages/ClassNamesForFileOraculumImpl.java   |  75 --
 .../source/usages/SourceAnalyzerFactory.java    |   8 +-
 .../api/java/source/APIIsSelfContainedTest.java |   2 -
 .../api/java/source/CommentCollectorTest.java   |  22 +-
 .../api/java/source/ElementHandleTest.java      |  29 +-
 .../api/java/source/JavaSourceTest.java         |  64 +-
 .../api/java/source/SourceUtilsTestUtil2.java   |  23 +-
 .../api/java/source/TreeUtilitiesTest.java      |  20 +-
 .../api/java/source/TypeMirrorHandleTest.java   |   4 +-
 .../api/java/source/gen/AnnotationTest.java     |  12 +-
 .../api/java/source/gen/ArraysTest.java         |   4 +-
 .../netbeans/api/java/source/gen/BlockTest.java |   4 +-
 .../api/java/source/gen/CommentsTest.java       |  12 +-
 .../java/source/gen/CompilationUnitTest.java    |   6 +-
 .../api/java/source/gen/ConstructorTest.java    |   6 +-
 .../api/java/source/gen/DoctreeTest.java        |  72 +-
 .../netbeans/api/java/source/gen/EnumTest.java  |   6 +-
 .../api/java/source/gen/ForLoopTest.java        |   4 +-
 .../api/java/source/gen/GuardedBlockTest.java   |   6 +-
 .../api/java/source/gen/LambdaTest.java         |  46 +-
 .../api/java/source/gen/MemberAdditionTest.java |   6 +-
 .../api/java/source/gen/MethodBodyTest.java     |   8 +-
 .../api/java/source/gen/ModifiersTest.java      |   8 +-
 .../api/java/source/gen/MoveTreeTest.java       |   6 +-
 .../api/java/source/gen/MultiCatchTest.java     |  10 +-
 .../source/gen/RefactoringRegressionsTest.java  |   4 +-
 .../source/gen/RewriteOccasionalStatements.java |   6 +-
 .../api/java/source/gen/SwitchTest.java         |   6 +-
 .../netbeans/api/java/source/gen/TryTest.java   |   4 +-
 .../api/java/source/gen/TypeAnnotationTest.java |  10 +-
 .../modules/java/source/TreeLoaderTest.java     |  94 ---
 .../source/indexing/CompileWorkerTestBase.java  |  37 +-
 .../indexing/MultiPassCompileWorkerTest.java    |  42 -
 .../indexing/OnePassCompileWorkerTest.java      |  41 -
 .../indexing/SuperOnePassCompileWorkerTest.java |  41 -
 .../indexing/VanillaCompileWorkerTest.java      |  71 ++
 .../java/source/parsing/ClasspathInfoTest.java  |   9 +-
 .../java/source/parsing/JavacParserTest.java    |   6 +-
 .../java/source/parsing/ModuleOraculumTest.java |  21 -
 .../java/source/transform/Transformer.java      |   4 +-
 .../ClassNamesForFileOraculumImplTest.java      |  73 --
 .../java/source/usages/CompromiseSATest.java    |   4 +-
 .../java/source/usages/SourceAnalyzerTest.java  |  19 +-
 java.source.jdk9.req/build.xml                  |   5 +
 java.source.jdk9.req/manifest.mf                |   7 +
 .../nbproject/project.properties                |   3 +
 java.source.jdk9.req/nbproject/project.xml      |  11 +
 .../java/source/jdk9/req/Bundle.properties      |   1 +
 java.source.nbjavac/build.xml                   |   5 +
 java.source.nbjavac/manifest.mf                 |   6 +
 .../nbproject/project.properties                |   5 +
 java.source.nbjavac/nbproject/project.xml       | 160 ++++
 .../java/source/nbjavac/Bundle.properties       |   1 +
 .../indexing/ClassNamesForFileOraculumImpl.java |  75 ++
 .../indexing/MultiPassCompileWorker.java        | 525 ++++++++++++
 .../indexing/NBJavacCompileWorkerProvider.java  |  45 +
 .../nbjavac/indexing/OnePassCompileWorker.java  | 379 +++++++++
 .../indexing/SuperOnePassCompileWorker.java     | 381 +++++++++
 .../nbjavac/parsing/FindAnonymousVisitor.java   |  85 ++
 .../nbjavac/parsing/PartialReparserImpl.java    | 226 +++++
 .../nbjavac/parsing/PartialReparserService.java | 187 +++++
 .../nbjavac/parsing/SequentialParsingImpl.java  |  41 +
 .../parsing/TranslatePositionsVisitor.java      | 121 +++
 .../java/source/nbjavac/parsing/TreeLoader.java | 814 +++++++++++++++++++
 .../lib/nbjavac/services/CouplingTest.java      | 177 ++++
 .../ClassNamesForFileOraculumImplTest.java      |  73 ++
 .../indexing/MultiPassCompileWorkerTest.java    |  44 +
 .../indexing/NBJavacCompileWorkerTestBase.java  |  55 ++
 .../indexing/OnePassCompileWorkerTest.java      |  42 +
 .../indexing/SuperOnePassCompileWorkerTest.java |  42 +
 .../source/nbjavac/indexing/TreeLoaderTest.java |  94 +++
 .../source/queriesimpl/JavaOperationsImpl.java  |   8 +-
 .../org/netbeans/api/java/source/UiUtils.java   |   4 +-
 .../src/org/netbeans/modules/java/JavaNode.java |   4 +-
 .../modules/java/classfile/CodeGenerator.java   |  18 +-
 .../java/source/parsing/SourceFileObject.java   |   2 +-
 .../api/java/source/gen/LambdaTest.java         |  46 +-
 .../api/java/source/ui/ElementOpen.java         |   4 +-
 .../source/ui/AsyncJavaSymbolDescriptor.java    |   6 +-
 .../api/java/source/ui/ElementHeadersTest.java  |   4 +-
 java.testrunner.ui/nbproject/project.properties |   2 +
 java.testrunner/nbproject/project.properties    |   1 +
 javaee.injection/nbproject/project.properties   |   1 +
 .../javafx2/editor/FXMLCompletionTestBase.java  |   5 +-
 javafx2.project/nbproject/project.properties    |   1 +
 javawebstart/nbproject/project.properties       |   1 +
 jshell.support/nbproject/project.properties     |   1 +
 jshell.support/nbproject/project.xml            |   4 +-
 junit.ant.ui/nbproject/project.properties       |   1 +
 junit.ui/nbproject/project.properties           |   2 +
 .../modules/junit/ui/OpenTestAction.java        |   4 +-
 .../lib/nbjavac/services/NBClassReader.java     |  40 -
 .../lib/nbjavac/services/NBClassWriter.java     | 124 ---
 .../netbeans/lib/nbjavac/services/NBEnter.java  |   2 +-
 .../lib/nbjavac/services/NBJavadocEnter.java    |   2 +-
 .../nbjavac/services/NBJavadocMemberEnter.java  |  18 +-
 .../lib/nbjavac/services/NBParserFactory.java   |  94 +--
 .../lib/nbjavac/services/NBResolve.java         |   5 +-
 .../lib/nbjavac/services/PartialReparser.java   | 135 ---
 .../services/AnonymousNumberingTest.java        |  17 +-
 .../lib/nbjavac/services/CouplingTest.java      | 177 ----
 .../lib/nbjavac/services/NBClassWriterTest.java |   6 +-
 .../lib/nbjavac/services/Utilities.java         |  15 +-
 lib.nbjshell/nbproject/project.properties       |   1 +
 libs.javacapi/build.xml                         |  13 +
 libs.javacapi/manifest.mf                       |   2 +-
 libs.javacapi/nbproject/project.properties      |   4 +-
 libs.javacapi/nbproject/project.xml             |   6 +-
 libs.javacimpl/build.xml                        |   4 +-
 libs.javacimpl/manifest.mf                      |   4 +-
 libs.javacimpl/nbproject/project.properties     |   3 +-
 libs.javacimpl/nbproject/project.xml            |  11 +-
 .../nbproject/project.properties                |   1 +
 libs.jshell.compile/nbproject/project.xml       |   4 +-
 maven.apisupport/nbproject/project.properties   |   1 +
 maven.hints/nbproject/project.properties        |   1 +
 maven.junit.ui/nbproject/project.properties     |   1 +
 maven.refactoring/nbproject/project.properties  |   1 +
 .../UnitTestsCompilerOptionsQueryImpl.java      |   2 +-
 nbbuild/build.xml                               |  36 +-
 nbbuild/cluster.properties                      |   2 +
 nbbuild/external/binaries-list                  |   1 +
 nbbuild/templates/common.xml                    |   1 +
 nbbuild/templates/projectized.xml               |  40 +-
 .../src/org/netbeans/ModuleManager.java         |   2 +-
 .../netbeans/modules/parsing/api/Source.java    |   2 +
 .../nbimpl/javac/ElementUtilitiesEx.java        |   4 +-
 .../profiler/nbimpl/javac/JavacClassInfo.java   |   4 +-
 .../providers/JavaProfilerSourceImpl.java       |  10 +-
 .../nbproject/project.properties                |   1 +
 .../java/api/JavaRefactoringUtils.java          |   4 +-
 .../java/callhierarchy/CallHierarchyTasks.java  |   4 +-
 .../java/plugins/ChangeParametersPlugin.java    |   4 +-
 .../java/plugins/ChangeParamsTransformer.java   |  10 +-
 .../ExtractSuperclassRefactoringPlugin.java     |   2 +-
 .../java/plugins/FindUsagesVisitor.java         |   4 +-
 .../refactoring/java/plugins/FindVisitor.java   |   4 +-
 .../java/plugins/InlineMethodTransformer.java   |  14 +-
 .../java/plugins/InlineRefactoringPlugin.java   |   6 +-
 .../java/plugins/IntroduceParameterPlugin.java  |   6 +-
 .../plugins/InvertBooleanRefactoringPlugin.java |   4 +-
 .../java/plugins/LocalVarScanner.java           |   4 +-
 .../java/plugins/MoveClassTransformer.java      |   4 +-
 .../java/plugins/MoveMembersTransformer.java    |  12 +-
 .../java/plugins/PullUpTransformer.java         |   6 +-
 .../java/plugins/PushDownTransformer.java       |   4 +-
 .../java/plugins/RenameRefactoringPlugin.java   |   4 +-
 .../java/plugins/RenameTransformer.java         |   4 +-
 .../java/spi/RefactoringVisitor.java            |   4 +-
 .../java/ui/InstantRefactoringUIImpl.java       |   4 +-
 .../refactoring/java/ui/MoveMembersPanel.java   |   4 +-
 .../refactoring/java/ui/RenamePanel.java        |   4 +-
 .../java/test/RefactoringTestBase.java          |   2 +-
 .../nbproject/project.properties                |   1 +
 .../bindings/java/JavaSemanticTokenList.java    |   4 +-
 .../modules/java/hints/spiimpl/Hacks.java       |  18 +-
 .../modules/java/hints/spiimpl/Utilities.java   |  48 +-
 .../hints/spiimpl/pm/NFABasedBulkSearch.java    |   2 +-
 .../spi/java/hints/JavaFixUtilities.java        |   8 +-
 .../modules/java/hints/spiimpl/TestBase.java    |   5 +-
 .../java/hints/spiimpl/UtilitiesTest.java       |   4 +-
 .../spiimpl/pm/BulkSearchTestPerformer.java     |   5 +-
 .../spi/java/hints/matching/CopyFinderTest.java |   4 +-
 testng.ui/nbproject/project.properties          |   1 +
 .../nbproject/project.properties                |   1 +
 .../api/whitelist/support/WhiteListSupport.java |   4 +-
 xml.jaxb/nbproject/project.properties           |   1 +
 xml.tools.java/nbproject/project.properties     |   1 +
 338 files changed, 5949 insertions(+), 4323 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/apisupport.project/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/apisupport.project/nbproject/project.properties b/apisupport.project/nbproject/project.properties
index c947b08..73392e5 100644
--- a/apisupport.project/nbproject/project.properties
+++ b/apisupport.project/nbproject/project.properties
@@ -25,3 +25,4 @@ test-unit-sys-prop.java.awt.headless=true
 test.config.stableBTD.includes=**/*Test.class
 test.config.stableBTD.excludes=\
     **/ModuleOperationsTest.class
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/apisupport.wizards/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/apisupport.wizards/nbproject/project.properties b/apisupport.wizards/nbproject/project.properties
index c0af75f..315878a 100644
--- a/apisupport.wizards/nbproject/project.properties
+++ b/apisupport.wizards/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/beans/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/beans/nbproject/project.properties b/beans/nbproject/project.properties
index 915c8bf..ac47b14 100644
--- a/beans/nbproject/project.properties
+++ b/beans/nbproject/project.properties
@@ -17,7 +17,7 @@
 javac.compilerargs=-Xlint -Xlint:-serial
 javac.source=1.6
 spec.version.base=1.52.0
-
+cp.extra=${tools.jar}
 
 test.config.stable.includes=\
     **/PropertyGeneration.class
@@ -30,3 +30,4 @@ test.config.beaninfo.includes=\
 
 test.config.stable.include=\
     **/StableSuite.class
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/beans/src/org/netbeans/modules/beans/addproperty/AddPropertyCodeGenerator.java
----------------------------------------------------------------------
diff --git a/beans/src/org/netbeans/modules/beans/addproperty/AddPropertyCodeGenerator.java b/beans/src/org/netbeans/modules/beans/addproperty/AddPropertyCodeGenerator.java
index f630bd6..aaedaa9 100644
--- a/beans/src/org/netbeans/modules/beans/addproperty/AddPropertyCodeGenerator.java
+++ b/beans/src/org/netbeans/modules/beans/addproperty/AddPropertyCodeGenerator.java
@@ -25,7 +25,7 @@ import com.sun.source.tree.MemberSelectTree;
 import com.sun.source.tree.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.io.IOException;
 import java.util.Collections;
@@ -301,7 +301,7 @@ public class AddPropertyCodeGenerator implements CodeGenerator {
         return semicolon;
     }
 
-    private static final class ImportFQNsHack extends TreePathScanner<Void, Void> {
+    private static final class ImportFQNsHack extends ErrorAwareTreePathScanner<Void, Void> {
 
         private WorkingCopy wc;
         private int start;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/core.startup/src/org/netbeans/core/startup/NbInstaller.java
----------------------------------------------------------------------
diff --git a/core.startup/src/org/netbeans/core/startup/NbInstaller.java b/core.startup/src/org/netbeans/core/startup/NbInstaller.java
index 08b6372..b4c47cc 100644
--- a/core.startup/src/org/netbeans/core/startup/NbInstaller.java
+++ b/core.startup/src/org/netbeans/core/startup/NbInstaller.java
@@ -230,11 +230,13 @@ final class NbInstaller extends ModuleInstaller {
         List<Module.PackageExport> hiddenPackages = new ArrayList<Module.PackageExport>();
         List<Module> mWithDeps = new LinkedList<Module>();
         mWithDeps.add(m);
+        mWithDeps.addAll(mgr.getAttachedFragments(m));
         for (Dependency d : m.getDependencies()) {
             if (d.getType() == Dependency.TYPE_MODULE) {
                 Module _m = mgr.get((String) Util.parseCodeName(d.getName())[0]);
                 assert _m != null : d;
                 mWithDeps.add(_m);
+                mWithDeps.addAll(mgr.getAttachedFragments(_m));
             }
         }
         for (Module _m : mWithDeps) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda.ant/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/debugger.jpda.ant/nbproject/project.properties b/debugger.jpda.ant/nbproject/project.properties
index 0d7b6d5..773b2c0 100644
--- a/debugger.jpda.ant/nbproject/project.properties
+++ b/debugger.jpda.ant/nbproject/project.properties
@@ -20,3 +20,4 @@ ant.jar=${ant.core.lib}
 javac.compilerargs=-Xlint:unchecked
 javac.source=1.6
 javadoc.arch=${basedir}/arch.xml
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ClassScanner.java
----------------------------------------------------------------------
diff --git a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ClassScanner.java b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ClassScanner.java
index 860b126..d7602bd 100644
--- a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ClassScanner.java
+++ b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ClassScanner.java
@@ -20,7 +20,7 @@
 package org.netbeans.modules.debugger.jpda.projects;
 
 import com.sun.source.tree.ClassTree;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import com.sun.source.util.Trees;
 import javax.lang.model.element.TypeElement;
 import javax.lang.model.util.Elements;
@@ -30,7 +30,7 @@ import javax.lang.model.util.Elements;
  * 
  * @author martin
  */
-class ClassScanner extends TreePathScanner<TypeElement, Void> {
+class ClassScanner extends ErrorAwareTreePathScanner<TypeElement, Void> {
     
     private Trees trees;
     private Elements elements;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/EditorContextSupport.java
----------------------------------------------------------------------
diff --git a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/EditorContextSupport.java b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/EditorContextSupport.java
index cd6e65b..d375d02 100644
--- a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/EditorContextSupport.java
+++ b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/EditorContextSupport.java
@@ -32,7 +32,7 @@ import com.sun.source.tree.Tree;
 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 org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -1428,8 +1428,8 @@ public final class EditorContextSupport {
     
     public static <R,D> R interpretOrCompileCode(final Expression<Object> expression,
                                                  final String url, final int line,
-                                                 final TreePathScanner<Boolean,D> canInterpret,
-                                                 final TreePathScanner<R,D> interpreter,
+                                                 final ErrorAwareTreePathScanner<Boolean,D> canInterpret,
+                                                 final ErrorAwareTreePathScanner<R,D> interpreter,
                                                  final D context, boolean staticContext,
                                                  final Function<Pair<String, byte[]>, Boolean> compiledClassHandler,
                                                  final SourcePathProvider sp) throws InvalidExpressionException {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ExpressionScanner.java
----------------------------------------------------------------------
diff --git a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ExpressionScanner.java b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ExpressionScanner.java
index 7bc80a9..1630aa2 100644
--- a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ExpressionScanner.java
+++ b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ExpressionScanner.java
@@ -52,7 +52,7 @@ import com.sun.source.tree.UnaryTree;
 import com.sun.source.tree.VariableTree;
 import com.sun.source.tree.WhileLoopTree;
 import com.sun.source.util.SourcePositions;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -69,7 +69,7 @@ import javax.tools.Diagnostic;
  * 
  * @author Martin Entlicher
  */
-class ExpressionScanner extends TreeScanner<List<Tree>, ExpressionScanner.ExpressionsInfo> {
+class ExpressionScanner extends ErrorAwareTreeScanner<List<Tree>, ExpressionScanner.ExpressionsInfo> {
     
     private int lineNumber;
     private int statementStart;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/MethodArgumentsScanner.java
----------------------------------------------------------------------
diff --git a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/MethodArgumentsScanner.java b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/MethodArgumentsScanner.java
index 790026f..e39cf4c 100644
--- a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/MethodArgumentsScanner.java
+++ b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/MethodArgumentsScanner.java
@@ -29,7 +29,7 @@ import com.sun.source.tree.Tree;
 import com.sun.source.tree.TypeParameterTree;
 import com.sun.source.tree.VariableTree;
 import com.sun.source.util.SourcePositions;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import java.util.List;
 import javax.tools.Diagnostic;
 import org.netbeans.spi.debugger.jpda.EditorContext.MethodArgument;
@@ -39,7 +39,7 @@ import org.netbeans.spi.debugger.jpda.EditorContext.MethodArgument;
  * 
  * @author Martin Entlicher
  */
-class MethodArgumentsScanner extends TreeScanner<MethodArgument[], Object> {
+class MethodArgumentsScanner extends ErrorAwareTreeScanner<MethodArgument[], Object> {
     
     private int offset;
     private CompilationUnitTree tree;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/PreferredCCParser.java
----------------------------------------------------------------------
diff --git a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/PreferredCCParser.java b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/PreferredCCParser.java
index 5838e93..4a59859 100644
--- a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/PreferredCCParser.java
+++ b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/PreferredCCParser.java
@@ -27,7 +27,7 @@ import com.sun.source.tree.Scope;
 import com.sun.source.tree.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.io.IOException;
 import java.net.MalformedURLException;
@@ -404,8 +404,8 @@ class PreferredCCParser {
     @NbBundle.Messages("MSG_NoParseNoEval=Can not evaluate expression - parsing failed.")
     public <R,D> R interpretOrCompileCode(final Expression<Object> expression,
                                           final String url, final int line,
-                                          final TreePathScanner<Boolean,D> canInterpret,
-                                          final TreePathScanner<R,D> interpreter,
+                                          final ErrorAwareTreePathScanner<Boolean,D> canInterpret,
+                                          final ErrorAwareTreePathScanner<R,D> interpreter,
                                           final D context, boolean staticContext,
                                           final Function<Pair<String, byte[]>, Boolean> compiledClassHandler,
                                           final SourcePathProvider sp) throws InvalidExpressionException {
@@ -654,7 +654,7 @@ class PreferredCCParser {
 
     private static boolean isErroneous(Tree tree) {
 
-        class TreeChecker extends TreePathScanner<Boolean,Void> {
+        class TreeChecker extends ErrorAwareTreePathScanner<Boolean,Void> {
 
             @Override
             public Boolean scan(Tree tree, Void p) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ScanLocalVars.java
----------------------------------------------------------------------
diff --git a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ScanLocalVars.java b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ScanLocalVars.java
index 4d51f0b..4e057d3 100644
--- a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ScanLocalVars.java
+++ b/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ScanLocalVars.java
@@ -30,7 +30,7 @@ import com.sun.source.tree.StatementTree;
 import com.sun.source.tree.Tree;
 import com.sun.source.tree.VariableTree;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.util.EnumSet;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
@@ -51,7 +51,7 @@ import org.netbeans.api.java.source.CompilationInfo;
  *
  * @author sdedic, Martin Entlicher
  */
-final class ScanLocalVars extends TreePathScanner<Void, Void> {
+final class ScanLocalVars extends ErrorAwareTreePathScanner<Void, Void> {
     
     private static final Set<ElementKind> LOCAL_VARIABLES = EnumSet.of(ElementKind.EXCEPTION_PARAMETER,
                                                                        ElementKind.LOCAL_VARIABLE,

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda.projectsui/src/org/netbeans/modules/debugger/jpda/projectsui/EditorContextImpl.java
----------------------------------------------------------------------
diff --git a/debugger.jpda.projectsui/src/org/netbeans/modules/debugger/jpda/projectsui/EditorContextImpl.java b/debugger.jpda.projectsui/src/org/netbeans/modules/debugger/jpda/projectsui/EditorContextImpl.java
index 96aaaa2..b505e84 100644
--- a/debugger.jpda.projectsui/src/org/netbeans/modules/debugger/jpda/projectsui/EditorContextImpl.java
+++ b/debugger.jpda.projectsui/src/org/netbeans/modules/debugger/jpda/projectsui/EditorContextImpl.java
@@ -19,7 +19,7 @@
 
 package org.netbeans.modules.debugger.jpda.projectsui;
 
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.awt.Color;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
@@ -817,8 +817,8 @@ public class EditorContextImpl extends EditorContext {
     }
     
     public <R,D> R interpretOrCompileCode(final Expression<Object> expression, String url, final int line,
-                                          final TreePathScanner<Boolean,D> canInterpret,
-                                          final TreePathScanner<R,D> interpreter,
+                                          final ErrorAwareTreePathScanner<Boolean,D> canInterpret,
+                                          final ErrorAwareTreePathScanner<R,D> interpreter,
                                           final D context, final boolean staticContext,
                                           final Function<Pair<String, byte[]>, Boolean> compiledClassHandler,
                                           final SourcePathProvider sp) throws InvalidExpressionException {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda.visual/nbproject/project.xml
----------------------------------------------------------------------
diff --git a/debugger.jpda.visual/nbproject/project.xml b/debugger.jpda.visual/nbproject/project.xml
index d711277..8c5bea1 100644
--- a/debugger.jpda.visual/nbproject/project.xml
+++ b/debugger.jpda.visual/nbproject/project.xml
@@ -101,6 +101,14 @@
                     </run-dependency>
                 </dependency>
                 <dependency>
+                    <code-name-base>org.netbeans.modules.java.source.base</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>2.30</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
                     <code-name-base>org.netbeans.modules.options.api</code-name-base>
                     <build-prerequisite/>
                     <compile-dependency/>

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/EditorContextBridge.java
----------------------------------------------------------------------
diff --git a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/EditorContextBridge.java b/debugger.jpda/src/org/netbeans/modules/debugger/jpda/EditorContextBridge.java
index 10fcf65..d7e67a9 100644
--- a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/EditorContextBridge.java
+++ b/debugger.jpda/src/org/netbeans/modules/debugger/jpda/EditorContextBridge.java
@@ -19,7 +19,7 @@
 package org.netbeans.modules.debugger.jpda;
 
 import com.sun.jdi.AbsentInformationException;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.net.MalformedURLException;
@@ -96,8 +96,8 @@ public class EditorContextBridge {
 
     public static <R,D> R interpretOrCompileCode(final Expression<Object> expression,
                                                  final String url, final int line,
-                                                 final TreePathScanner<Boolean,D> canInterpret,
-                                                 final TreePathScanner<R,D> interpreter,
+                                                 final ErrorAwareTreePathScanner<Boolean,D> canInterpret,
+                                                 final ErrorAwareTreePathScanner<R,D> interpreter,
                                                  final D context, final boolean staticContext,
                                                  final Function<Pair<String, byte[]>, Boolean> compiledClassHandler,
                                                  final SourcePathProvider sp) throws InvalidExpressionException {
@@ -105,7 +105,7 @@ public class EditorContextBridge {
             return (R) getContext ().getClass().getMethod(
                     "interpretOrCompileCode",
                     new Class[] { Expression.class, String.class, Integer.TYPE,
-                                  TreePathScanner.class, TreePathScanner.class,
+                                  ErrorAwareTreePathScanner.class, ErrorAwareTreePathScanner.class,
                                   Object.class, Boolean.TYPE, Function.class,
                                   SourcePathProvider.class }).
                         invoke(getContext(), new Object[] { expression, url, line,
@@ -347,8 +347,8 @@ public class EditorContextBridge {
 
         public <R,D> R interpretOrCompileCode(final Expression<Object> expression,
                                               final String url, final int line,
-                                              final TreePathScanner<Boolean,D> canInterpret,
-                                              final TreePathScanner<R,D> interpreter,
+                                              final ErrorAwareTreePathScanner<Boolean,D> canInterpret,
+                                              final ErrorAwareTreePathScanner<R,D> interpreter,
                                               final D context, final boolean staticContext,
                                               final Function<Pair<String, byte[]>, Boolean> compiledClassHandler,
                                               final SourcePathProvider sp) throws InvalidExpressionException {
@@ -356,8 +356,8 @@ public class EditorContextBridge {
             try {
                 ret = (R) cp1.getClass().getMethod(
                     "interpretOrCompileCode",
-                    new Class[] { Expression.class, String.class, Integer.TYPE, TreePathScanner.class,
-                                  TreePathScanner.class, Object.class, Boolean.TYPE, Function.class,
+                    new Class[] { Expression.class, String.class, Integer.TYPE, ErrorAwareTreePathScanner.class,
+                                  ErrorAwareTreePathScanner.class, Object.class, Boolean.TYPE, Function.class,
                                   SourcePathProvider.class }).
                         invoke(cp1, new Object[] { expression, url, line, canInterpret, interpreter,
                                                    context, staticContext, compiledClassHandler, sp });
@@ -375,8 +375,8 @@ public class EditorContextBridge {
                 try {
                     ret = (R) cp2.getClass().getMethod(
                     "interpretOrCompileCode",
-                    new Class[] { Expression.class, String.class, Integer.TYPE, TreePathScanner.class,
-                                  TreePathScanner.class, Object.class, Boolean.TYPE, Function.class,
+                    new Class[] { Expression.class, String.class, Integer.TYPE, ErrorAwareTreePathScanner.class,
+                                  ErrorAwareTreePathScanner.class, Object.class, Boolean.TYPE, Function.class,
                                   SourcePathProvider.class }).
                         invoke(cp2, new Object[] { expression, url, line, canInterpret, interpreter,
                                                    context, staticContext, compiledClassHandler, sp });

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/expr/CanInterpretVisitor.java
----------------------------------------------------------------------
diff --git a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/expr/CanInterpretVisitor.java b/debugger.jpda/src/org/netbeans/modules/debugger/jpda/expr/CanInterpretVisitor.java
index 2bf465b..ee92d32 100644
--- a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/expr/CanInterpretVisitor.java
+++ b/debugger.jpda/src/org/netbeans/modules/debugger/jpda/expr/CanInterpretVisitor.java
@@ -32,14 +32,14 @@ import com.sun.source.tree.RequiresTree;
 import com.sun.source.tree.Tree;
 import com.sun.source.tree.UsesTree;
 import com.sun.source.tree.WhileLoopTree;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 
 /**
  * Test of ability and suitability of an interpreter or compiler when evaluating.
  * 
  * @author Martin
  */
-class CanInterpretVisitor extends TreePathScanner<Boolean, EvaluationContext> {
+class CanInterpretVisitor extends ErrorAwareTreePathScanner<Boolean, EvaluationContext> {
 
     @Override
     public Boolean reduce(Boolean r1, Boolean r2) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/expr/EvaluatorVisitor.java
----------------------------------------------------------------------
diff --git a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/expr/EvaluatorVisitor.java b/debugger.jpda/src/org/netbeans/modules/debugger/jpda/expr/EvaluatorVisitor.java
index d6714dc..b0ea376 100644
--- a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/expr/EvaluatorVisitor.java
+++ b/debugger.jpda/src/org/netbeans/modules/debugger/jpda/expr/EvaluatorVisitor.java
@@ -128,7 +128,7 @@ import com.sun.source.tree.VariableTree;
 import com.sun.source.tree.WhileLoopTree;
 import com.sun.source.tree.WildcardTree;
 import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -184,7 +184,7 @@ import org.openide.util.NbBundle;
  * @author Martin Entlicher
  */
 @SuppressWarnings("ClassWithMultipleLoggers")
-public class EvaluatorVisitor extends TreePathScanner<Mirror, EvaluationContext> {
+public class EvaluatorVisitor extends ErrorAwareTreePathScanner<Mirror, EvaluationContext> {
 
     private static final Logger loggerMethod = Logger.getLogger("org.netbeans.modules.debugger.jpda.invokeMethod"); // NOI18N
     private static final Logger loggerValue = Logger.getLogger("org.netbeans.modules.debugger.jpda.getValue"); // NOI18N

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/debugger.jpda/test/unit/src/org/netbeans/api/debugger/jpda/JDIWrappersTest.java
----------------------------------------------------------------------
diff --git a/debugger.jpda/test/unit/src/org/netbeans/api/debugger/jpda/JDIWrappersTest.java b/debugger.jpda/test/unit/src/org/netbeans/api/debugger/jpda/JDIWrappersTest.java
index 2e33bae..5f4d6d3 100644
--- a/debugger.jpda/test/unit/src/org/netbeans/api/debugger/jpda/JDIWrappersTest.java
+++ b/debugger.jpda/test/unit/src/org/netbeans/api/debugger/jpda/JDIWrappersTest.java
@@ -30,7 +30,7 @@ import com.sun.source.tree.ParenthesizedTree;
 import com.sun.source.tree.Tree;
 import com.sun.source.tree.TypeCastTree;
 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.List;
 import javax.lang.model.element.Element;
@@ -142,7 +142,7 @@ public class JDIWrappersTest extends NbTestCase {
         return successPtr[0];
     }
 
-    private static class JDICallsScanner extends TreeScanner<Void, Object> {
+    private static class JDICallsScanner extends ErrorAwareTreeScanner<Void, Object> {
 
         private Trees trees;
         private Types types;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/form.binding/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/form.binding/nbproject/project.properties b/form.binding/nbproject/project.properties
index 2b22049..212ca62 100644
--- a/form.binding/nbproject/project.properties
+++ b/form.binding/nbproject/project.properties
@@ -18,3 +18,5 @@
 is.eager=true
 javac.source=1.6
 spec.version.base=0.18.0
+cp.extra=${tools.jar}
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/form.j2ee/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/form.j2ee/nbproject/project.properties b/form.j2ee/nbproject/project.properties
index f4bc62b..a7a5f0d 100644
--- a/form.j2ee/nbproject/project.properties
+++ b/form.j2ee/nbproject/project.properties
@@ -18,3 +18,5 @@
 is.eager=true
 javac.source=1.6
 spec.version.base=0.34.0
+cp.extra=${tools.jar}
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/form.nb/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/form.nb/nbproject/project.properties b/form.nb/nbproject/project.properties
index 982a077..3ee4af6 100644
--- a/form.nb/nbproject/project.properties
+++ b/form.nb/nbproject/project.properties
@@ -18,3 +18,5 @@
 is.eager=true
 javac.source=1.6
 spec.version.base=0.19.0
+cp.extra=${tools.jar}
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/form.refactoring/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/form.refactoring/nbproject/project.properties b/form.refactoring/nbproject/project.properties
index 2b22049..212ca62 100644
--- a/form.refactoring/nbproject/project.properties
+++ b/form.refactoring/nbproject/project.properties
@@ -18,3 +18,5 @@
 is.eager=true
 javac.source=1.6
 spec.version.base=0.18.0
+cp.extra=${tools.jar}
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/form.refactoring/src/org/netbeans/modules/form/refactoring/RADComponentRenameRefactoringSupport.java
----------------------------------------------------------------------
diff --git a/form.refactoring/src/org/netbeans/modules/form/refactoring/RADComponentRenameRefactoringSupport.java b/form.refactoring/src/org/netbeans/modules/form/refactoring/RADComponentRenameRefactoringSupport.java
index 32543b3..3b591b2 100644
--- a/form.refactoring/src/org/netbeans/modules/form/refactoring/RADComponentRenameRefactoringSupport.java
+++ b/form.refactoring/src/org/netbeans/modules/form/refactoring/RADComponentRenameRefactoringSupport.java
@@ -22,7 +22,7 @@ import com.sun.source.tree.ClassTree;
 import com.sun.source.tree.IdentifierTree;
 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;
@@ -106,7 +106,7 @@ public class RADComponentRenameRefactoringSupport implements RenameSupport.Refac
     }
 
     private static class MemberVisitor
-            extends TreePathScanner<Void, Void>
+            extends ErrorAwareTreePathScanner<Void, Void>
             implements CancellableTask<CompilationController>{
         
         private CompilationInfo info;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/hibernate/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/hibernate/nbproject/project.properties b/hibernate/nbproject/project.properties
index 931ad2e..7df6ca7 100644
--- a/hibernate/nbproject/project.properties
+++ b/hibernate/nbproject/project.properties
@@ -37,3 +37,6 @@ test.config.stableBTD.excludes=\
     **/HibernateEnvironmentTest.class,\
     **/HibernateMappingCompletionManagerTest.class,\
     **/HibernateMappingHyperlinkProviderTest.class
+
+cp.extra=${tools.jar}
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/i18n/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/i18n/nbproject/project.properties b/i18n/nbproject/project.properties
index def2291..740881b 100644
--- a/i18n/nbproject/project.properties
+++ b/i18n/nbproject/project.properties
@@ -20,3 +20,5 @@ javadoc.arch=${basedir}/arch.xml
 disable.qa-functional.tests=true
 
 test.config.stableBTD.includes=**/*Test.class
+cp.extra=${tools.jar}
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/ide/launcher/netbeans.conf
----------------------------------------------------------------------
diff --git a/ide/launcher/netbeans.conf b/ide/launcher/netbeans.conf
index e8620d5..5efd53e 100644
--- a/ide/launcher/netbeans.conf
+++ b/ide/launcher/netbeans.conf
@@ -43,7 +43,7 @@ netbeans_default_cachedir="${DEFAULT_CACHEDIR_ROOT}/dev"
 # Concurrent Mark & Sweep garbage collector.
 # (see http://wiki.netbeans.org/FaqGCPauses)
 #
-netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-Dnetbeans.logger.console=true -J-ea -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dplugin.manager.check.updates=false -J-Dnetbeans.extbrowser.manual_chrome_plugin_install=yes -J--add-opens=java.base/java.net=ALL-UNNAMED -J--add-opens=java.base/java.lang.ref=ALL-UNNAMED -J--add-opens=java.base/java.lang=ALL-UNNAMED -J--add-opens=java.base/java.security=ALL-UNNAMED -J--add-opens=java.base/java.util=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.text=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing=ALL-UNNAMED -J--add-opens=java.desktop/java.awt=ALL-UNNAMED -J--add-opens=java.desktop/java.awt.event=ALL-UNNAMED -J--add-opens=java.prefs/java.util.prefs=ALL-UNNAMED -J--add-opens=jdk.jshell/jdk.jshell=ALL-UNNAMED  -J--add-modules=java.activat
 ion,jdk.jshell -J--add-exports=java.desktop/sun.awt=ALL-UNNAMED -J--add-exports=java.desktop/java.awt.peer=ALL-UNNAMED -J--add-exports=java.desktop/com.sun.beans.editors=ALL-UNNAMED -J--add-exports=java.desktop/sun.swing=ALL-UNNAMED -J--add-exports=java.desktop/sun.awt.im=ALL-UNNAMED -J--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED -J--add-exports=java.management/sun.management=ALL-UNNAMED -J--add-exports=java.base/sun.reflect.annotation=ALL-UNNAMED -J-XX:+IgnoreUnrecognizedVMOptions"
+netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-Dnetbeans.logger.console=true -J-ea -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dplugin.manager.check.updates=false -J-Dnetbeans.extbrowser.manual_chrome_plugin_install=yes -J--add-opens=java.base/java.net=ALL-UNNAMED -J--add-opens=java.base/java.lang.ref=ALL-UNNAMED -J--add-opens=java.base/java.lang=ALL-UNNAMED -J--add-opens=java.base/java.security=ALL-UNNAMED -J--add-opens=java.base/java.util=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.text=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing=ALL-UNNAMED -J--add-opens=java.desktop/java.awt=ALL-UNNAMED -J--add-opens=java.desktop/java.awt.event=ALL-UNNAMED -J--add-opens=java.prefs/java.util.prefs=ALL-UNNAMED -J--add-opens=jdk.jshell/jdk.jshell=ALL-UNNAMED  -J--add-modules=java.activat
 ion,jdk.jshell -J--add-exports=java.desktop/sun.awt=ALL-UNNAMED -J--add-exports=java.desktop/java.awt.peer=ALL-UNNAMED -J--add-exports=java.desktop/com.sun.beans.editors=ALL-UNNAMED -J--add-exports=java.desktop/sun.swing=ALL-UNNAMED -J--add-exports=java.desktop/sun.awt.im=ALL-UNNAMED -J--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED -J--add-exports=java.management/sun.management=ALL-UNNAMED -J--add-exports=java.base/sun.reflect.annotation=ALL-UNNAMED -J--add-exports=jdk.javadoc/com.sun.tools.javadoc.main=ALL-UNNAMED -J-XX:+IgnoreUnrecognizedVMOptions"
 
 # Default location of JDK:
 # (set by installer or commented out if launcher should decide)

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/j2ee.core.utilities/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/j2ee.core.utilities/nbproject/project.properties b/j2ee.core.utilities/nbproject/project.properties
index cf40f29..80f3dbc 100644
--- a/j2ee.core.utilities/nbproject/project.properties
+++ b/j2ee.core.utilities/nbproject/project.properties
@@ -23,3 +23,6 @@ is.autoload=true
 test.config.stableBTD.includes=**/*Test.class
 test.config.stableBTD.excludes=\
     **/SourceGroupsTest.class
+
+cp.extra=${tools.jar}
+requires.nb.javac=true

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ModuleClassPaths.java
----------------------------------------------------------------------
diff --git a/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ModuleClassPaths.java b/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ModuleClassPaths.java
index 31cb876..f3c5de9 100644
--- a/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ModuleClassPaths.java
+++ b/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ModuleClassPaths.java
@@ -20,7 +20,7 @@ package org.netbeans.modules.java.api.common.classpath;
 
 import com.sun.source.tree.ModuleTree;
 import com.sun.source.tree.RequiresTree;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
@@ -1249,7 +1249,7 @@ final class ModuleClassPaths {
                 }
                 if (moduleTree != null) {
                     //Add dependencies for non resolvable modules.
-                    moduleTree.accept(new TreeScanner<Void, Void>() {
+                    moduleTree.accept(new ErrorAwareTreeScanner<Void, Void>() {
                                 @Override
                                 public Void visitRequires(RequiresTree node, Void p) {
                                     final String moduleName = node.getModuleName().toString();

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.api.common/src/org/netbeans/modules/java/api/common/impl/DefaultProjectModulesModifier.java
----------------------------------------------------------------------
diff --git a/java.api.common/src/org/netbeans/modules/java/api/common/impl/DefaultProjectModulesModifier.java b/java.api.common/src/org/netbeans/modules/java/api/common/impl/DefaultProjectModulesModifier.java
index 395a1b9..c6537c8 100644
--- a/java.api.common/src/org/netbeans/modules/java/api/common/impl/DefaultProjectModulesModifier.java
+++ b/java.api.common/src/org/netbeans/modules/java/api/common/impl/DefaultProjectModulesModifier.java
@@ -22,7 +22,7 @@ import com.sun.source.tree.CompilationUnitTree;
 import com.sun.source.tree.DirectiveTree;
 import com.sun.source.tree.ModuleTree;
 import com.sun.source.tree.RequiresTree;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 import java.io.IOException;
 import java.net.URL;
 import java.util.ArrayList;
@@ -190,7 +190,7 @@ public class DefaultProjectModulesModifier implements ProjectModulesModifier {
             final Set<String> knownModules = new HashSet<>();
             final ModuleTree[] module = new ModuleTree[1];
             final RequiresTree[] lastRequires = new RequiresTree[1];
-            cu.accept(new TreeScanner<Void, Void>() {
+            cu.accept(new ErrorAwareTreeScanner<Void, Void>() {
                         @Override
                         public Void visitModule(ModuleTree m, Void p) {
                             module[0] = m;
@@ -259,7 +259,7 @@ public class DefaultProjectModulesModifier implements ProjectModulesModifier {
                     final Set<DirectiveTree> toRemove = new HashSet<>();
                     final ModuleTree[] module = new ModuleTree[1];
                     cu.accept(
-                            new TreeScanner<Void, Set<DirectiveTree>>() {
+                            new ErrorAwareTreeScanner<Void, Set<DirectiveTree>>() {
                                 @Override
                                 public Void visitModule(final ModuleTree node, Set<DirectiveTree> param) {
                                     module[0] = node;
@@ -339,7 +339,7 @@ public class DefaultProjectModulesModifier implements ProjectModulesModifier {
         return resultMap;
     }
     
-    private static class S extends TreeScanner implements Task<CompilationController> {
+    private static class S extends ErrorAwareTreeScanner implements Task<CompilationController> {
         final Map<URL, Collection<ClassPath>> resultMap;
         final ClassPath g;
         final Map<String, URL> modLocations;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.api.common/src/org/netbeans/modules/java/api/common/impl/TemplateModuleDeclarator.java
----------------------------------------------------------------------
diff --git a/java.api.common/src/org/netbeans/modules/java/api/common/impl/TemplateModuleDeclarator.java b/java.api.common/src/org/netbeans/modules/java/api/common/impl/TemplateModuleDeclarator.java
index 0b41f94..d9b57db 100644
--- a/java.api.common/src/org/netbeans/modules/java/api/common/impl/TemplateModuleDeclarator.java
+++ b/java.api.common/src/org/netbeans/modules/java/api/common/impl/TemplateModuleDeclarator.java
@@ -23,7 +23,7 @@ import com.sun.source.tree.MemberSelectTree;
 import com.sun.source.tree.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.Arrays;
@@ -200,7 +200,7 @@ public final class TemplateModuleDeclarator implements CreateFromTemplateDecorat
         }
     }
    
-    private static class Scanner extends TreePathScanner<Boolean, Boolean> {
+    private static class Scanner extends ErrorAwareTreePathScanner<Boolean, Boolean> {
         private final CompilationInfo info;
         private final Set<String> unresolved;
         

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.completion/src/org/netbeans/modules/java/completion/BaseTask.java
----------------------------------------------------------------------
diff --git a/java.completion/src/org/netbeans/modules/java/completion/BaseTask.java b/java.completion/src/org/netbeans/modules/java/completion/BaseTask.java
index d3c84f1..7224a4d 100644
--- a/java.completion/src/org/netbeans/modules/java/completion/BaseTask.java
+++ b/java.completion/src/org/netbeans/modules/java/completion/BaseTask.java
@@ -37,7 +37,7 @@ import javax.tools.Diagnostic;
 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 javax.lang.model.element.Name;
 
 import org.netbeans.api.java.lexer.JavaTokenId;
@@ -546,7 +546,7 @@ abstract class BaseTask extends UserTask {
         return sb.toString();
     }
 
-    private static class SourcePositionsImpl extends TreeScanner<Void, Tree> implements SourcePositions {
+    private static class SourcePositionsImpl extends ErrorAwareTreeScanner<Void, Tree> implements SourcePositions {
 
         private final Tree root;
         private final SourcePositions original;
@@ -593,6 +593,7 @@ abstract class BaseTask extends UserTask {
             }
             return null;
         }
+
     }
 
     private static boolean isCamelCasePrefix(String prefix) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java
----------------------------------------------------------------------
diff --git a/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java b/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java
index 3cef602..234e0b3 100644
--- a/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java
+++ b/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java
@@ -45,6 +45,7 @@ import org.netbeans.api.java.source.*;
 import org.netbeans.api.java.source.JavaSource.Phase;
 import org.netbeans.api.java.source.ClassIndex;
 import org.netbeans.api.java.source.ClassIndex.Symbols;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import org.netbeans.api.java.source.support.ReferencesCount;
 import org.netbeans.api.lexer.TokenSequence;
 import org.netbeans.modules.parsing.api.Source;
@@ -5626,7 +5627,7 @@ public final class JavaCompletionTask<T> extends BaseTask {
                             if (element == trees.getElement(new TreePath(path, instTree.getExpression()))) {
                                 TypeMirror tm = trees.getTypeMirror(new TreePath(path, instTree.getType()));
                                 if (tm != null && tu.isCastable(original, tm)) {
-                                    Boolean used = new TreePathScanner<Boolean, Element>() {
+                                    Boolean used = new ErrorAwareTreePathScanner<Boolean, Element>() {
                                         @Override
                                         public Boolean reduce(Boolean r1, Boolean r2) {
                                             return r1 == Boolean.TRUE ? r1 : r2;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.completion/test/unit/src/org/netbeans/modules/java/completion/CompletionTestBase.java
----------------------------------------------------------------------
diff --git a/java.completion/test/unit/src/org/netbeans/modules/java/completion/CompletionTestBase.java b/java.completion/test/unit/src/org/netbeans/modules/java/completion/CompletionTestBase.java
index 95e7b1a..20f56b5 100644
--- a/java.completion/test/unit/src/org/netbeans/modules/java/completion/CompletionTestBase.java
+++ b/java.completion/test/unit/src/org/netbeans/modules/java/completion/CompletionTestBase.java
@@ -54,7 +54,7 @@ import org.netbeans.api.lexer.Language;
 import org.netbeans.core.startup.Main;
 import org.netbeans.junit.NbTestCase;
 import org.netbeans.modules.java.JavaDataLoader;
-import org.netbeans.modules.java.source.TreeLoader;
+//import org.netbeans.modules.java.source.TreeLoader;
 import org.netbeans.modules.java.source.indexing.TransactionContext;
 import org.netbeans.modules.java.source.usages.BinaryAnalyser;
 import org.netbeans.modules.java.source.usages.ClassIndexImpl;
@@ -83,7 +83,7 @@ public class CompletionTestBase extends NbTestCase {
     
     static {
         JavaCompletionTaskBasicTest.class.getClassLoader().setDefaultAssertionStatus(true);
-        TreeLoader.DISABLE_ARTIFICAL_PARAMETER_NAMES = true;
+        SourceUtilsTestUtil2.disableArtificalParameterNames();
     }
 
     static final int FINISH_OUTTIME = 5 * 60 * 1000;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.debug/src/org/netbeans/modules/java/debug/TreeNavigatorProviderImpl.java
----------------------------------------------------------------------
diff --git a/java.debug/src/org/netbeans/modules/java/debug/TreeNavigatorProviderImpl.java b/java.debug/src/org/netbeans/modules/java/debug/TreeNavigatorProviderImpl.java
index 5bf7390..06add7c 100644
--- a/java.debug/src/org/netbeans/modules/java/debug/TreeNavigatorProviderImpl.java
+++ b/java.debug/src/org/netbeans/modules/java/debug/TreeNavigatorProviderImpl.java
@@ -23,7 +23,7 @@ import com.sun.source.tree.Tree;
 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 org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.beans.PropertyChangeEvent;
@@ -228,7 +228,7 @@ public class TreeNavigatorProviderImpl implements NavigatorPanel {
             }
         }
 
-        class PathFinder extends TreePathScanner<Void,Void> {
+        class PathFinder extends ErrorAwareTreePathScanner<Void,Void> {
             private int pos;
             private SourcePositions sourcePositions;
 

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.editor.base/src/org/netbeans/modules/java/editor/base/imports/UnusedImports.java
----------------------------------------------------------------------
diff --git a/java.editor.base/src/org/netbeans/modules/java/editor/base/imports/UnusedImports.java b/java.editor.base/src/org/netbeans/modules/java/editor/base/imports/UnusedImports.java
index ecef052..6d5080d 100644
--- a/java.editor.base/src/org/netbeans/modules/java/editor/base/imports/UnusedImports.java
+++ b/java.editor.base/src/org/netbeans/modules/java/editor/base/imports/UnusedImports.java
@@ -28,7 +28,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.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -192,7 +192,7 @@ public class UnusedImports {
         private boolean parseErrorInImport(ImportTree imp) {
             if (isStar(imp)) return false;
             final StringBuilder fqn = new StringBuilder();
-            new TreeScanner<Void, Void>() {
+            new ErrorAwareTreeScanner<Void, Void>() {
                 @Override
                 public Void visitMemberSelect(MemberSelectTree node, Void p) {
                     super.visitMemberSelect(node, p);

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.editor.base/src/org/netbeans/modules/java/editor/base/javadoc/JavadocImports.java
----------------------------------------------------------------------
diff --git a/java.editor.base/src/org/netbeans/modules/java/editor/base/javadoc/JavadocImports.java b/java.editor.base/src/org/netbeans/modules/java/editor/base/javadoc/JavadocImports.java
index befb17b..c0b9c8c 100644
--- a/java.editor.base/src/org/netbeans/modules/java/editor/base/javadoc/JavadocImports.java
+++ b/java.editor.base/src/org/netbeans/modules/java/editor/base/javadoc/JavadocImports.java
@@ -36,7 +36,7 @@ import com.sun.source.util.DocTreePath;
 import com.sun.source.util.DocTreePathScanner;
 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.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -98,7 +98,7 @@ public final class JavadocImports {
         
         new DocTreePathScanner<Void, Void>() {
             @Override public Void visitReference(ReferenceTree node, Void p) {
-                new TreePathScanner<Void, Void>() {
+                new ErrorAwareTreePathScanner<Void, Void>() {
                     @Override public Void visitIdentifier(IdentifierTree node, Void p) {
                         Element el = trees.getElement(getCurrentPath());
                         
@@ -143,7 +143,7 @@ public final class JavadocImports {
         
         new DocTreePathScanner<Void, Void>() {
             @Override public Void visitReference(ReferenceTree node, Void p) {
-                new TreePathScanner<Void, Void>() {
+                new ErrorAwareTreePathScanner<Void, Void>() {
                     @Override public Void visitIdentifier(IdentifierTree node, Void p) {
                         if (toFind.equals(trees.getElement(getCurrentPath()))) {
                             handleUsage((int) trees.getSourcePositions().getStartPosition(javac.getCompilationUnit(), node));
@@ -269,7 +269,7 @@ public final class JavadocImports {
                     result[0] = trees.getElement(getCurrentPath());
                     return null;
                 }
-                new TreePathScanner<Void, Void>() {
+                new ErrorAwareTreePathScanner<Void, Void>() {
                     @Override public Void visitIdentifier(IdentifierTree node, Void p) {
                         if (   positions.getStartPosition(javac.getCompilationUnit(), node) <= offset
                             && positions.getEndPosition(javac.getCompilationUnit(), node) >= offset) {
@@ -350,7 +350,7 @@ public final class JavadocImports {
                     handleUsage(offset);
                     return null;
                 }
-                new TreePathScanner<Void, Void>() {
+                new ErrorAwareTreePathScanner<Void, Void>() {
                     @Override public Void visitIdentifier(IdentifierTree node, Void p) {
                         if (   positions.getStartPosition(javac.getCompilationUnit(), node) <= offset
                             && positions.getEndPosition(javac.getCompilationUnit(), node) >= offset) {
@@ -509,7 +509,7 @@ public final class JavadocImports {
         return javadoc;
     }
 
-    private static final class UnresolvedImportScanner extends TreePathScanner<Void, Void> {
+    private static final class UnresolvedImportScanner extends ErrorAwareTreePathScanner<Void, Void> {
         
         private final CompilationInfo javac;
         private Set<String> unresolved = new HashSet<String>();
@@ -544,7 +544,7 @@ public final class JavadocImports {
             
             new DocTreePathScanner<Void, Void>() {
                 @Override public Void visitReference(ReferenceTree node, Void p) {
-                    new TreePathScanner<Void, Void>() {
+                    new ErrorAwareTreePathScanner<Void, Void>() {
                         @Override public Void visitIdentifier(IdentifierTree node, Void p) {
                             Element el = trees.getElement(getCurrentPath());
                             

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/MarkOccurrencesHighlighterBase.java
----------------------------------------------------------------------
diff --git a/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/MarkOccurrencesHighlighterBase.java b/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/MarkOccurrencesHighlighterBase.java
index a331dcd..5951c5b 100644
--- a/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/MarkOccurrencesHighlighterBase.java
+++ b/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/MarkOccurrencesHighlighterBase.java
@@ -37,7 +37,7 @@ import com.sun.source.tree.TryTree;
 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 org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -555,7 +555,7 @@ public abstract class MarkOccurrencesHighlighterBase extends JavaParserResultTas
         final List<int[]> result = new ArrayList<int[]>();
         if (labeledStatement.getLeaf().getKind() == Kind.LABELED_STATEMENT) {
             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/java.editor.base/test/unit/src/org/netbeans/modules/java/editor/base/semantic/UnusedImportsTest.java
----------------------------------------------------------------------
diff --git a/java.editor.base/test/unit/src/org/netbeans/modules/java/editor/base/semantic/UnusedImportsTest.java b/java.editor.base/test/unit/src/org/netbeans/modules/java/editor/base/semantic/UnusedImportsTest.java
index cb779ce..76c498a 100644
--- a/java.editor.base/test/unit/src/org/netbeans/modules/java/editor/base/semantic/UnusedImportsTest.java
+++ b/java.editor.base/test/unit/src/org/netbeans/modules/java/editor/base/semantic/UnusedImportsTest.java
@@ -40,7 +40,7 @@ import org.netbeans.api.lexer.Language;
 import org.netbeans.core.startup.Main;
 import org.netbeans.junit.NbTestCase;
 import org.netbeans.modules.java.editor.base.imports.UnusedImports;
-import org.netbeans.modules.java.source.TreeLoader;
+//import org.netbeans.modules.java.source.TreeLoader;
 import org.netbeans.modules.parsing.impl.indexing.CacheFolder;
 import org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater;
 import org.netbeans.spi.java.classpath.support.ClassPathSupport;
@@ -335,7 +335,7 @@ public class UnusedImportsTest extends NbTestCase {
 
     private void performUnusedImportsTest(String... golden) throws Exception {
         CompilationInfo ci = SourceUtilsTestUtil.getCompilationInfo(JavaSource.forFileObject(src.getFileObject("test/Main.java")), Phase.RESOLVED);
-        TreeLoader.DISABLE_CONFINEMENT_TEST = true;
+//        TreeLoader.DISABLE_CONFINEMENT_TEST = true;
         Document doc = ci.getSnapshot().getSource().getDocument(true);
         doc.putProperty(Language.class, JavaTokenId.language());
         List<TreePathHandle> unused = UnusedImports.computeUnusedImports(ci);

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.editor/src/org/netbeans/modules/editor/java/GoToSupport.java
----------------------------------------------------------------------
diff --git a/java.editor/src/org/netbeans/modules/editor/java/GoToSupport.java b/java.editor/src/org/netbeans/modules/editor/java/GoToSupport.java
index 45f3543..b5e8915 100644
--- a/java.editor/src/org/netbeans/modules/editor/java/GoToSupport.java
+++ b/java.editor/src/org/netbeans/modules/editor/java/GoToSupport.java
@@ -38,7 +38,7 @@ import com.sun.source.tree.Tree.Kind;
 import com.sun.source.tree.TypeParameterTree;
 import com.sun.source.tree.VariableTree;
 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.Toolkit;
 import java.awt.event.KeyEvent;
@@ -706,7 +706,7 @@ public class GoToSupport {
     private static TreePath getPath(final CompilationInfo info, Element el) {
         final Element toFind = info.getElementUtilities().isSynthetic(el) ? el.getEnclosingElement() : el;
 
-        class S extends TreePathScanner<Void, Void> {
+        class S extends ErrorAwareTreePathScanner<Void, Void> {
             private TreePath found;
             @Override
             public Void scan(Tree tree, Void p) {
@@ -760,7 +760,7 @@ public class GoToSupport {
         return search.found;
     }
 
-    private static final class FindSuperConstructorCall extends TreePathScanner<TreePath, Void> {
+    private static final class FindSuperConstructorCall extends ErrorAwareTreePathScanner<TreePath, Void> {
         
         @Override
         public TreePath visitMethodInvocation(MethodInvocationTree tree, Void v) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.editor/src/org/netbeans/modules/editor/java/JavaCodeTemplateProcessor.java
----------------------------------------------------------------------
diff --git a/java.editor/src/org/netbeans/modules/editor/java/JavaCodeTemplateProcessor.java b/java.editor/src/org/netbeans/modules/editor/java/JavaCodeTemplateProcessor.java
index 86e15e3..90565c2 100644
--- a/java.editor/src/org/netbeans/modules/editor/java/JavaCodeTemplateProcessor.java
+++ b/java.editor/src/org/netbeans/modules/editor/java/JavaCodeTemplateProcessor.java
@@ -34,6 +34,7 @@ import javax.swing.text.Document;
 import javax.swing.text.JTextComponent;
 
 import org.netbeans.api.java.source.*;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import org.netbeans.api.java.source.ui.ElementHeaders;
 import org.netbeans.api.progress.ProgressUtils;
 import org.netbeans.lib.editor.codetemplates.spi.*;
@@ -245,7 +246,7 @@ public class JavaCodeTemplateProcessor implements CodeTemplateProcessor {
                                 final SourcePositions sp = trees.getSourcePositions();
                                 final Map<VariableElement, VariableTree> vars = new HashMap<>();
                                 final LinkedList<VariableTree> varList = new LinkedList<>();
-                                TreePathScanner scanner = new TreePathScanner() {
+                                ErrorAwareTreePathScanner scanner = new ErrorAwareTreePathScanner() {
                                     private int cnt = 0;
                                     @Override
                                     public Object visitIdentifier(IdentifierTree node, Object p) {

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.editor/src/org/netbeans/modules/editor/java/Utilities.java
----------------------------------------------------------------------
diff --git a/java.editor/src/org/netbeans/modules/editor/java/Utilities.java b/java.editor/src/org/netbeans/modules/editor/java/Utilities.java
index 65ea358..eadf642 100644
--- a/java.editor/src/org/netbeans/modules/editor/java/Utilities.java
+++ b/java.editor/src/org/netbeans/modules/editor/java/Utilities.java
@@ -39,9 +39,9 @@ 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.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import com.sun.source.util.Trees;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
 
 import java.awt.Color;
 import java.util.*;
@@ -467,7 +467,7 @@ public final class Utilities {
     public static Set<Element> getUsedElements(final CompilationInfo info) {
         final Set<Element> ret = new HashSet<>();
         final Trees trees = info.getTrees();
-        new TreePathScanner<Void, Void>() {
+        new ErrorAwareTreePathScanner<Void, Void>() {
 
             @Override
             public Void visitIdentifier(IdentifierTree node, Void p) {
@@ -516,7 +516,7 @@ public final class Utilities {
     
     public static boolean containErrors(Tree tree) {
         final AtomicBoolean containsErrors = new AtomicBoolean();
-        new TreeScanner<Void, Void>() {
+        new ErrorAwareTreeScanner<Void, Void>() {
             @Override
             public Void visitErroneous(ErroneousTree node, Void p) {
                 containsErrors.set(true);

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.editor/src/org/netbeans/modules/java/editor/codegen/EqualsHashCodeGenerator.java
----------------------------------------------------------------------
diff --git a/java.editor/src/org/netbeans/modules/java/editor/codegen/EqualsHashCodeGenerator.java b/java.editor/src/org/netbeans/modules/java/editor/codegen/EqualsHashCodeGenerator.java
index 75d8a12..a223d7a 100644
--- a/java.editor/src/org/netbeans/modules/java/editor/codegen/EqualsHashCodeGenerator.java
+++ b/java.editor/src/org/netbeans/modules/java/editor/codegen/EqualsHashCodeGenerator.java
@@ -36,7 +36,7 @@ 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 org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import com.sun.source.util.Trees;
 import java.awt.Dialog;
 import java.beans.PropertyChangeEvent;
@@ -182,7 +182,7 @@ public class EqualsHashCodeGenerator implements CodeGenerator {
     /** Checks whether a field is used inside given methods.
      */
     private static boolean isUsed(CompilationInfo cc, VariableElement field, ExecutableElement... methods) {
-        class Used extends TreePathScanner<Void, VariableElement> {
+        class Used extends ErrorAwareTreePathScanner<Void, VariableElement> {
             boolean found;
             
             @Override

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.editor/src/org/netbeans/modules/java/editor/fold/ResourceStringFoldProvider.java
----------------------------------------------------------------------
diff --git a/java.editor/src/org/netbeans/modules/java/editor/fold/ResourceStringFoldProvider.java b/java.editor/src/org/netbeans/modules/java/editor/fold/ResourceStringFoldProvider.java
index 0421281..2b90599 100644
--- a/java.editor/src/org/netbeans/modules/java/editor/fold/ResourceStringFoldProvider.java
+++ b/java.editor/src/org/netbeans/modules/java/editor/fold/ResourceStringFoldProvider.java
@@ -28,7 +28,7 @@ import com.sun.source.tree.Tree;
 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 org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -177,7 +177,7 @@ public class ResourceStringFoldProvider extends ParsingFoldSupport{
     }
     
 
-    private static class V extends TreePathScanner<Void, Void> {
+    private static class V extends ErrorAwareTreePathScanner<Void, Void> {
         private final FileObject                  anchor;
         private final Proc                         proc;
         private final CompilationInfo info;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.editor/src/org/netbeans/modules/java/editor/imports/ClipboardHandler.java
----------------------------------------------------------------------
diff --git a/java.editor/src/org/netbeans/modules/java/editor/imports/ClipboardHandler.java b/java.editor/src/org/netbeans/modules/java/editor/imports/ClipboardHandler.java
index 77be50f..a0555f4 100644
--- a/java.editor/src/org/netbeans/modules/java/editor/imports/ClipboardHandler.java
+++ b/java.editor/src/org/netbeans/modules/java/editor/imports/ClipboardHandler.java
@@ -29,7 +29,7 @@ import com.sun.source.tree.Tree;
 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 org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
 import java.awt.Dialog;
 import java.awt.datatransfer.Clipboard;
 import java.awt.datatransfer.DataFlavor;
@@ -427,7 +427,7 @@ public class ClipboardHandler {
                         @Override public void run(final CompilationController parameter) throws Exception {
                             parameter.toPhase(JavaSource.Phase.RESOLVED);
 
-                            new TreePathScanner<Void, Void>() {
+                            new ErrorAwareTreePathScanner<Void, Void>() {
                                 private final Set<Element> declaredInCopiedText = new HashSet<>();
                                 @Override public Void visitIdentifier(IdentifierTree node, Void p) {
                                     int s = (int) parameter.getTrees().getSourcePositions().getStartPosition(parameter.getCompilationUnit(), node);

http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.editor/src/org/netbeans/modules/java/editor/imports/JavaFixAllImports.java
----------------------------------------------------------------------
diff --git a/java.editor/src/org/netbeans/modules/java/editor/imports/JavaFixAllImports.java b/java.editor/src/org/netbeans/modules/java/editor/imports/JavaFixAllImports.java
index fe4e464..dc1e150 100644
--- a/java.editor/src/org/netbeans/modules/java/editor/imports/JavaFixAllImports.java
+++ b/java.editor/src/org/netbeans/modules/java/editor/imports/JavaFixAllImports.java
@@ -24,7 +24,7 @@ import com.sun.source.tree.ImportTree;
 import com.sun.source.tree.MemberSelectTree;
 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.Dialog;
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
@@ -172,7 +172,7 @@ public class JavaFixAllImports {
         return v.getImports();
     }
 
-    private static class ImportVisitor extends TreePathScanner {
+    private static class ImportVisitor extends ErrorAwareTreePathScanner {
         private CompilationInfo info;
         private String currentPackage;
         private List<TreePathHandle> imports;