Bug 73347 NPE in AdvancedQuickAssistProcessor.getInverseConditionProposals
I20040901 + plug-in export, J9 JXE Got this in log several times a day. No steps. !ENTRY org.eclipse.jdt.ui 4 10001 Sep 06, 2004 18:46:20.502 !MESSAGE Internal Error !STACK 0 java.lang.NullPointerException at org.eclipse.jdt.internal.ui.text.correction.AdvancedQuickAssistProcessor.getInverseConditionProposals(Unknown Source) at org.eclipse.jdt.internal.ui.text.correction.AdvancedQuickAssistProcessor.hasAssists(Unknown Source) at org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.hasAssists(Unknown Source) at org.eclipse.jdt.internal.ui.text.correction.QuickAssistLightBulbUpdater.calculateLightBulb(Unknown Source) at org.eclipse.jdt.internal.ui.text.correction.QuickAssistLightBulbUpdater.doSelectionChanged(Unknown Source) at org.eclipse.jdt.internal.ui.text.correction.QuickAssistLightBulbUpdater.access$0(Unknown Source) at org.eclipse.jdt.internal.ui.text.correction.QuickAssistLightBulbUpdater$1.selectionChanged(Unknown Source) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.calculateASTandInform(Unknown Source) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$3.run(Unknown Source) at org.eclipse.core.internal.jobs.Worker.run(Unknown Source)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/AdvancedQuickAssistProcessor.java
ASTRewriteCorrectionProposal proposal = new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(),
				rewrite, 1, image);
		resultingCollections.add(proposal);
		return true;
	}
	private static ArrayList getUnwrappedStatements(Statement body) {
		ArrayList statements = new ArrayList();
		if (body instanceof Block) {
			for (Iterator I = ((Block) body).statements().iterator(); I.hasNext();) {
				Statement statement = (Statement) I.next();
				statements.add(statement);
			}
		} else {
			statements.add(body);
		}
		return statements;
	}
	private boolean getInverseConditionProposals(IInvocationContext context, ASTNode covering,
			Collection resultingCollections) {
		ArrayList coveredNodes = getFullyCoveredNodes(context);
		if (coveredNodes.isEmpty()) {
			return false;
		}
		
		final AST ast = covering.getAST();
		final ASTRewrite rewrite = ASTRewrite.create(ast);
		
		final ArrayList changedNodes = new ArrayList();
		for (Iterator I = coveredNodes.iterator(); I.hasNext();) {
			ASTNode covered = (ASTNode) I.next();