Fix 486203: NPE in IntelliJ since 1.8.7
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java
index 2f82ac2..4f9cd46 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java
@@ -232,9 +232,9 @@
@Override
public boolean doesNotCompleteNormally() {
Constant cst = this.condition.constant;
- boolean isConditionTrue = cst != Constant.NotAConstant && cst.booleanValue() == true;
+ boolean isConditionTrue = cst == null || cst != Constant.NotAConstant && cst.booleanValue() == true;
cst = this.condition.optimizedBooleanConstant();
- boolean isConditionOptimizedTrue = cst != Constant.NotAConstant && cst.booleanValue() == true;
+ boolean isConditionOptimizedTrue = cst == null ? true : cst != Constant.NotAConstant && cst.booleanValue() == true;
if (isConditionTrue || isConditionOptimizedTrue)
return this.action == null || !this.action.breaksOut(null);
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/WhileStatement.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/WhileStatement.java
index ce709c9..07cd801 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/WhileStatement.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/WhileStatement.java
@@ -291,9 +291,9 @@
@Override
public boolean doesNotCompleteNormally() {
Constant cst = this.condition.constant;
- boolean isConditionTrue = cst != Constant.NotAConstant && cst.booleanValue() == true;
+ boolean isConditionTrue = cst == null || cst != Constant.NotAConstant && cst.booleanValue() == true;
cst = this.condition.optimizedBooleanConstant();
- boolean isConditionOptimizedTrue = cst != Constant.NotAConstant && cst.booleanValue() == true;
+ boolean isConditionOptimizedTrue = cst == null ? true : cst != Constant.NotAConstant && cst.booleanValue() == true;
return (isConditionTrue || isConditionOptimizedTrue) && (this.action == null || !this.action.breaksOut(null));
}