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
} else if ((parentStatement != null) && (parentStatement.getParent() instanceof Block)) {
			parentBlock = (Block) parentStatement.getParent();
			int statementIndex = parentBlock.statements().indexOf(parentStatement);
			insertIndex = statementIndex;
			if (expression.getParent() instanceof Assignment) {
				Assignment assignment = (Assignment) expression.getParent();
				if (assignment.getLeftHandSide() == expression)
					insertIndex = statementIndex + 1;
			}
			if (expression.getParent() instanceof VariableDeclarationFragment) {
				VariableDeclarationFragment vdf = (VariableDeclarationFragment) expression.getParent();
				if (vdf.getName() == expression)
					insertIndex = statementIndex + 1;
			}
		} else {
			return false;
		}
		
		AST ast = expression.getAST();
		ASTRewrite rewrite = ASTRewrite.create(ast);
		
		String debugTitle = "[" + methodDeclaration.getName().getIdentifier() + "] value of " + expression + ": "; 
		InfixExpression outExpression = ast.newInfixExpression();
		outExpression.setOperator(InfixExpression.Operator.PLUS);
		StringLiteral debugTitleLiteral = ast.newStringLiteral();
		debugTitleLiteral.setLiteralValue(debugTitle);
		outExpression.setLeftOperand(debugTitleLiteral);
		Expression parenthesizedExpression;
		if (expression instanceof ParenthesizedExpression) {
			parenthesizedExpression = (ParenthesizedExpression) rewrite.createCopyTarget(expression);