Community
Participate
Working Groups
build I20040609-0800 - started eclipse after switching to new build - I had two editors open in the Java perspective - closed one - it took several seconds - CPU was busy for many seconds after that - Ctrl+Break in the console shows only the reconcilers and indexer doing interesting work: "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=5 tid=0x213e3008 nid=0x82c runnable [2232f000..2232fd90] at org.eclipse.jdt.internal.compiler.parser.Parser.initialize(Parser.java:5034) at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:5528) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert(SourceTypeConverter.java:158) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert(SourceTypeConverter.java:266) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert(SourceTypeConverter.java:128) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.buildCompilationUnit(SourceTypeConverter.java:83) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.accept(CompilationUnitProblemFinder.java:100) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:113) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:170) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findOnDemandImport(CompilationUnitScope.java:361) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleTypeImport(CompilationUnitScope.java:419) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports(CompilationUnitScope.java:297) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:347) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:557) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:603) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:166) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:206) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:76) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:739) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1098) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:88) - locked <0x11ee6048> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:156) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.j ava:122) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:104) at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:280) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:166) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x212d0868 nid=0x810 runnable [222ef000..222efd90] at org.eclipse.jdt.internal.compiler.parser.Parser.pushOnIntStack(Parser.java:5901) at org.eclipse.jdt.internal.compiler.parser.Parser.consumeToken(Parser.java:3990) at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:5355) at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:5704) at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:5669) at org.eclipse.jdt.internal.compiler.SourceElementParser.parseCompilationUnit(SourceElementParser.java:1133) at org.eclipse.jdt.internal.core.CompilationUnit.buildStructure(CompilationUnit.java:120) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:183) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:572) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:309) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:295) at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:250) at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType(JavaElement.java:264) at org.eclipse.jdt.internal.core.CompilationUnit.getTypes(CompilationUnit.java:822) at org.eclipse.jdt.internal.core.NameLookup.seekTypesInSourcePackage(NameLookup.java:697) at org.eclipse.jdt.internal.core.NameLookup.seekTypes(NameLookup.java:554) at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:384) at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:355) at org.eclipse.jdt.internal.core.SearchableEnvironment.find(SearchableEnvironment.java:78) at org.eclipse.jdt.internal.core.SearchableEnvironment.findType(SearchableEnvironment.java:158) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:101) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:170) at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:1448) at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype(ClassScope.java:820) at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperclass(ClassScope.java:607) at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy(ClassScope.java:700) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(CompilationUnitScope.java:242) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:177) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:206) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.accept(CompilationUnitProblemFinder.java:110) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:113) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:170) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findOnDemandImport(CompilationUnitScope.java:361) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleTypeImport(CompilationUnitScope.java:419) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports(CompilationUnitScope.java:297) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:347) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:557) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:603) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:166) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:206) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:76) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:739) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1098) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:88) - locked <0x1181e6d8> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:156) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.j ava:122) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:104) at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:280) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:166) "Worker-0" prio=5 tid=0x2104fbd0 nid=0x6c0 waiting on condition [222af000..222afd90] at java.lang.Thread.sleep(Native Method) at org.eclipse.jdt.internal.core.search.processing.JobManager$1$ProgressJob.run(JobManager.java:321) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66) "Java indexing" daemon prio=4 tid=0x20f12d58 nid=0x804 runnable [2226f000..2226fd90] at java.util.zip.Inflater.inflateBytes(Native Method) at java.util.zip.Inflater.inflate(Inflater.java:219) - locked <0x13471820> (a java.util.zip.Inflater) at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:128) at java.io.BufferedInputStream.read1(BufferedInputStream.java:220) at java.io.BufferedInputStream.read(BufferedInputStream.java:277) - locked <0x1024bfe8> (a java.io.BufferedInputStream) at org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAsByteArray(Util.java:260) at org.eclipse.jdt.internal.compiler.util.Util.getZipEntryByteContent(Util.java:384) at org.eclipse.jdt.internal.core.search.indexing.AddJarFileToIndex.execute(AddJarFileToIndex.java:171) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:367) at java.lang.Thread.run(Thread.java:534)
We tell the reconciler to stop by setting the cancel flag on the progress monitor.
Just to clarify what I meant is we set the flag on ICompilationUnit.reconcile(...).
Cancel was not honoured neither during reconciling, nor during becomeWorkingCopy. Changed CompilationUnitProblemFinder to use a CancelableNameEnvironment and a CancelableProblemFactory. Added regression test ReconcilerTests#testCancel and WorkingCopyOwnerTests#testBecomeWorkingCopy4
Verified for 3.1M3 with build I200411040100