[109953] NPE's during JSP reconcile/validation
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationUtil.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationUtil.java
index 4bdb485..d652586 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationUtil.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationUtil.java
@@ -49,15 +49,18 @@
if (translatedChildTextEdit != null)
((MultiTextEdit) translatedTextEdit).addChild(translatedChildTextEdit);
}
- } else if (textEdit instanceof ReplaceEdit) {
+ }
+ else if (textEdit instanceof ReplaceEdit) {
if (jspOffset == -1)
return null;
if (!getTranslation().javaSpansMultipleJspPartitions(javaOffset, length))
translatedTextEdit = new ReplaceEdit(jspOffset, length, ((ReplaceEdit) textEdit).getText());
- } else if (textEdit instanceof InsertEdit) {
+ }
+ else if (textEdit instanceof InsertEdit) {
translatedTextEdit = new InsertEdit(jspOffset, ((InsertEdit) textEdit).getText());
- } else if (textEdit instanceof DeleteEdit) {
+ }
+ else if (textEdit instanceof DeleteEdit) {
translatedTextEdit = new DeleteEdit(jspOffset, length);
TextEdit[] children = ((DeleteEdit) textEdit).getChildren();
for (int i = 0; i < children.length; i++) {
@@ -65,20 +68,25 @@
if (translatedChildTextEdit != null)
((DeleteEdit) translatedTextEdit).addChild(translatedChildTextEdit);
}
- } else if (textEdit instanceof CopySourceEdit) {
+ }
+ else if (textEdit instanceof CopySourceEdit) {
translatedTextEdit = new CopySourceEdit(jspOffset, length);
((CopySourceEdit) translatedTextEdit).setTargetEdit(((CopySourceEdit) textEdit).getTargetEdit());
((CopySourceEdit) translatedTextEdit).setSourceModifier(((CopySourceEdit) textEdit).getSourceModifier());
- } else if (textEdit instanceof CopyTargetEdit) {
+ }
+ else if (textEdit instanceof CopyTargetEdit) {
translatedTextEdit = new CopyTargetEdit(jspOffset);
((CopyTargetEdit) textEdit).getSourceEdit().setTargetEdit((CopyTargetEdit) translatedTextEdit);
- } else if (textEdit instanceof MoveSourceEdit) {
+ }
+ else if (textEdit instanceof MoveSourceEdit) {
translatedTextEdit = new MoveSourceEdit(jspOffset, length);
((MoveSourceEdit) translatedTextEdit).setTargetEdit(((MoveSourceEdit) textEdit).getTargetEdit());
- } else if (textEdit instanceof MoveTargetEdit) {
+ }
+ else if (textEdit instanceof MoveTargetEdit) {
translatedTextEdit = new MoveTargetEdit(jspOffset);
((MoveTargetEdit) textEdit).getSourceEdit().setTargetEdit((MoveTargetEdit) translatedTextEdit);
- } else {
+ }
+ else {
System.out.println("Need to translate " + textEdit); //$NON-NLS-1$
}
@@ -94,8 +102,11 @@
JSPTranslationAdapter translationAdapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
if (translationAdapter != null)
fTranslation = translationAdapter.getJSPTranslation();
- } finally {
- xmlModel.releaseFromRead();
+ }
+ finally {
+ if (xmlModel != null) {
+ xmlModel.releaseFromRead();
+ }
}
}
diff --git a/bundles/org.eclipse.jst.jsp.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.jsp.ui/META-INF/MANIFEST.MF
index 83de2e5..eaaa4ce 100644
--- a/bundles/org.eclipse.jst.jsp.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.jsp.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jst.jsp.ui; singleton:=true
-Bundle-Version: 0.7.0
+Bundle-Version: 0.7.1
Bundle-Activator: org.eclipse.jst.jsp.ui.internal.JSPUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/reconcile/ReconcileStepForJspTranslation.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/reconcile/ReconcileStepForJspTranslation.java
index fe96814..17bd844 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/reconcile/ReconcileStepForJspTranslation.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/reconcile/ReconcileStepForJspTranslation.java
@@ -71,22 +71,31 @@
*/
protected IReconcileResult[] reconcileModel(DirtyRegion dirtyRegion, IRegion subRegion) {
- if(DEBUG)
- System.out.println("[trace reconciler] > translating JSP in JSP TRANSLATE step"); //$NON-NLS-1$
- if (isCanceled() || dirtyRegion == null)
- return EMPTY_RECONCILE_RESULT_SET;
+ if (DEBUG) {
+ System.out.println("[trace reconciler] > translating JSP in JSP TRANSLATE step"); //$NON-NLS-1$
+ }
- // create java model for java reconcile
- JSPTranslationAdapter adapter = getJSPTranslationAdapter();
- fJSPTranslation = adapter.getJSPTranslation();
- fModel = new JSPTranslationWrapper(fJSPTranslation);
+ IReconcileResult[] result = EMPTY_RECONCILE_RESULT_SET;
- if(DEBUG)
- System.out.println("[trace reconciler] > JSP TRANSLATE step done"); //$NON-NLS-1$
-
- //return EMPTY_RECONCILE_RESULT_SET;
- return adaptELProblems();
+ if (!(isCanceled() || dirtyRegion == null)) {
+
+ // create java model for java reconcile
+ JSPTranslationAdapter adapter = getJSPTranslationAdapter();
+
+ if (adapter != null) {
+
+ fJSPTranslation = adapter.getJSPTranslation();
+ fModel = new JSPTranslationWrapper(fJSPTranslation);
+
+ result = adaptELProblems();
+ }
+ }
+ if (DEBUG) {
+ System.out.println("[trace reconciler] > JSP TRANSLATE step done"); //$NON-NLS-1$
+ }
+
+ return result;
}
private IReconcileResult[] adaptELProblems() {