Community
Participate
Working Groups
Hi, I tried to generate Code that reproduces this Failure, but could not find one. The simplification of what my Code Structure is: interface test2I extends testI<test2I>{ test2I hello2(); } interface testI<T> { } abstract class test2<T extends testI> implements testI<T>{ protected Set <T> in=new LinkedHashSet<T>(); } public class test extends test2<test2I> implements test2I{ /** * @see test2I#hello2() */ public test2I hello2() { for (test2I test:in){ System.out.println(test); } return null; } } Note: This code doesn't cause the Error. It just represents the Structure. If I take out the forEach loop, the Error no longer exists. The Stacktrace is: java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.codegen.CodeStream.generateConstant(CodeStream.java:1385) at org.eclipse.jdt.internal.compiler.ast.SingleNameReference.generateCode(SingleNameReference.java:304) at org.eclipse.jdt.internal.compiler.ast.MessageSend.generateCode(MessageSend.java:75) at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.generateCode(LocalDeclaration.java:103) at org.eclipse.jdt.internal.compiler.ast.ForStatement.generateCode(ForStatement.java:180) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.generateCode(AbstractMethodDeclaration.java:214) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.generateCode(AbstractMethodDeclaration.java:161) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclaration.java:555) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclaration.java:609) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.generateCode(CompilationUnitDeclaration.java:180) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:570) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:176) at org.eclipse.jdt.internal.core.CompilationUnit.buildStructure(CompilationUnit.java:146) 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.CompilationUnit.makeConsistent(CompilationUnit.java:971) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:58) 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:1097) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:88) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:129) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:96) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75) at org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:315) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204)
This code does Cause the error if you put them into the according Compilation Units.
Seems to be fixed with latest nightly. 200407110010
I think this is very closly related: And caused by Set<FrameWithEvents> channel = channels.get(0); for (Iterator<FrameWithEvents> iter = channel.iterator(); iter.hasNext();) { Set<FrameWithEvents> element; element = (Set<FrameWithEvents>) iter.next(); } !ENTRY org.eclipse.jdt.core 4 4 Jul 13, 2004 02:29:50.12 !MESSAGE Exception occurred during problem detection: !STACK 0 java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.ast.CastExpression.checkCastTypesCompatibility(CastExpression.java:188) at org.eclipse.jdt.internal.compiler.ast.CastExpression.resolveType(CastExpression.java:522) at org.eclipse.jdt.internal.compiler.ast.Assignment.resolveType(Assignment.java:157) at org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:449) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.ForStatement.resolve(ForStatement.java:297) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:395) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:134) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:373) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:920) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:969) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:280) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:564) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:175) at org.eclipse.jdt.internal.core.CompilationUnit.buildStructure(CompilationUnit.java:148) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:183) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:543) at org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent(CompilationUnit.java:974) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:58) 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:1100) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:88) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:129) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:96) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75) at org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:315) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204)
Reproduced with latest scenario. Was missing a null check when cast from class to interface. Added regression test GenericTypeTest#test252. Fixed.