diff options
author | nitind | 2007-04-19 04:31:52 +0000 |
---|---|---|
committer | nitind | 2007-04-19 04:31:52 +0000 |
commit | baa4d2d33dcc49b945331bd32ff5d3ea2be10725 (patch) | |
tree | a3e7b4702485f71e8bebce47fe96ceeba0be9e38 /bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java | |
parent | 6b99f1338ca5035a156d3a4e2dae2cb6086f0d22 (diff) | |
download | webtools.sourceediting-baa4d2d33dcc49b945331bd32ff5d3ea2be10725.tar.gz webtools.sourceediting-baa4d2d33dcc49b945331bd32ff5d3ea2be10725.tar.xz webtools.sourceediting-baa4d2d33dcc49b945331bd32ff5d3ea2be10725.zip |
[nobug] add extra safeties for out of workspace paths
Diffstat (limited to 'bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java')
-rw-r--r-- | bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java index 4b10fb14de..b0e9e33085 100644 --- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java +++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java @@ -799,8 +799,8 @@ public final class TaglibIndex { return rootPath; } // try to handle out-of-workspace paths - IPath root = path; - while (root != null && !root.isRoot()) + IPath root = path.makeAbsolute(); + while (root.segmentCount() > 0 && !root.isRoot()) root = root.removeLastSegments(1); if (root == null) root = path; @@ -849,9 +849,11 @@ public final class TaglibIndex { baseResource = files[0]; } if (baseResource != null) { - project = baseResource.getProject(); - ProjectDescription description = createDescription(project); - resolved = description.resolve(basePath, reference); + project = ResourcesPlugin.getWorkspace().getRoot().getProject(baseIPath.segment(0)); + if (project.isAccessible()) { + ProjectDescription description = createDescription(project); + resolved = description.resolve(basePath, reference); + } } return resolved; |