[419181] IllegalArgumentException after opening a JSP file.
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
index 2b98ea2..7160e59 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
@@ -124,7 +124,7 @@
* @see #writeRanges(ObjectOutput, HashMap)
* @see #readRanges(ObjectInput)
*/
- private static final long serialVersionUID = 2L;
+ private static final long serialVersionUID = 3L;
/** for debugging */
private static final boolean DEBUG = Boolean.valueOf(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspjavamapping")).booleanValue(); //$NON-NLS-1$
@@ -329,6 +329,9 @@
*/
private boolean fCodeTranslated;
+ /** The model path as it was persisted */
+ private IPath fSavedModelPath = null;
+
/**
* A structure for holding a region collection marker and list of variable
* information. The region can be used later for positioning validation
@@ -3080,7 +3083,8 @@
* @return
*/
private boolean isTypeFound(String rawTypeValue, List errorTypeNames) {
- IFile file = getFile();
+ // If the translation is being loaded from disk, the model and structured document may not have been intiailized yet
+ IFile file = getStructuredDocument() != null ? getFile() : (fSavedModelPath != null ? ResourcesPlugin.getWorkspace().getRoot().getFile(fSavedModelPath) : null);
if (file == null)
return true;
@@ -3316,6 +3320,8 @@
writeRanges(out, this.fUserELRanges);
writeRanges(out, this.fIndirectRanges);
writeString(out, this.fELTranslatorID);
+ final IPath modelPath = getModelPath();
+ writeString(out, modelPath != null && modelPath.segmentCount() > 1 ? modelPath.toString() : null );
}
/**
@@ -3367,7 +3373,11 @@
this.fUserELRanges = readRanges(in);
this.fIndirectRanges = readRanges(in);
this.fELTranslatorID = readString(in);
-
+
+ final String path = readString(in);
+ if (path != null && path.trim().length() > 0) {
+ fSavedModelPath = new Path(path);
+ }
//build result
this.buildResult(false);
}