Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 79221 Details for
Bug 204652
"Open Type": ClassCastException in conjunction with a class folder
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Proposed fix and regression test
204652.txt (text/plain), 5.00 KB, created by
Jerome Lanneluc
on 2007-09-26 12:51:06 EDT
(
hide
)
Description:
Proposed fix and regression test
Filename:
MIME Type:
Creator:
Jerome Lanneluc
Created:
2007-09-26 12:51:06 EDT
Size:
5.00 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core.tests.model >Index: src/org/eclipse/jdt/core/tests/model/ClassFileTests.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ClassFileTests.java,v >retrieving revision 1.29 >diff -u -r1.29 ClassFileTests.java >--- src/org/eclipse/jdt/core/tests/model/ClassFileTests.java 20 Mar 2007 11:18:53 -0000 1.29 >+++ src/org/eclipse/jdt/core/tests/model/ClassFileTests.java 26 Sep 2007 16:43:22 -0000 >@@ -12,6 +12,7 @@ > > import java.io.IOException; > >+import org.eclipse.core.resources.IFolder; > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IPath; > import org.eclipse.core.runtime.IProgressMonitor; >@@ -451,6 +452,38 @@ > } > > /* >+ * Ensures that if a root folder (that has a jar like name) is opened, and then a Jar package fragment root created on this root folder, >+ * then attempting to open a class file in this folder doesn't throw a ClassCastException >+ * (regression test for bug 204652 "Open Type": ClassCastException in conjunction with a class folder) >+ */ >+public void testJarLikeRootFolder() throws CoreException { >+ try { >+ IJavaProject p = createJavaProject("P1", new String[0], new String[] {"/P1/classFolder.jar"}, ""); >+ IFolder folder = createFolder("/P1/classFolder.jar/p"); >+ createFile("/P1/classFolder.jar/X.class", "p"); >+ >+ // populate cache with a valid package fragment root and a valid package fragment >+ IPackageFragment validPkg = p.getPackageFragmentRoot(folder.getParent()).getPackageFragment("p"); >+ validPkg.open(null); >+ >+ // create an invalid package fragment root and an invalid package fragment >+ IPackageFragment invalidPkg = p.getPackageFragmentRoot("/P1/classFolder.jar").getPackageFragment("p"); >+ >+ // ensure that the class fille cannot be opened with a valid excepption >+ IClassFile openable = invalidPkg.getClassFile("X.class"); >+ JavaModelException expected = null; >+ try { >+ openable.open(null); >+ } catch (JavaModelException e) { >+ expected = e; >+ } >+ assertExceptionEquals("Unexpected exception", "classFolder.jar [in P1] does not exist", expected); >+ } finally { >+ deleteProject("P1"); >+ } >+} >+ >+/* > * Ensures that the parameter names of a binary method with source attached are correct. > */ > public void testParameterNames01() throws CoreException { >#P org.eclipse.jdt.core >Index: model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java,v >retrieving revision 1.125 >diff -u -r1.125 PackageFragmentRoot.java >--- model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java 21 Sep 2007 13:16:47 -0000 1.125 >+++ model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java 26 Sep 2007 16:43:23 -0000 >@@ -324,7 +324,7 @@ > if (!(o instanceof PackageFragmentRoot)) > return false; > PackageFragmentRoot other = (PackageFragmentRoot) o; >- return this.resource.equals(other.resource) && >+ return getResource().equals(other.getResource()) && > this.parent.equals(other.parent); > } > >@@ -441,8 +441,9 @@ > } > } > public String getElementName() { >- if (this.resource instanceof IFolder) >- return ((IFolder) this.resource).getName(); >+ IResource res = getResource(); >+ if (res instanceof IFolder) >+ return ((IFolder) res).getName(); > return ""; //$NON-NLS-1$ > } > /** >@@ -703,7 +704,7 @@ > } > > public int hashCode() { >- return this.resource.hashCode(); >+ return getResource().hashCode(); > } > > /** >Index: model/org/eclipse/jdt/internal/core/ClassFile.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ClassFile.java,v >retrieving revision 1.136 >diff -u -r1.136 ClassFile.java >--- model/org/eclipse/jdt/internal/core/ClassFile.java 21 Sep 2007 13:16:47 -0000 1.136 >+++ model/org/eclipse/jdt/internal/core/ClassFile.java 26 Sep 2007 16:43:23 -0000 >@@ -18,6 +18,7 @@ > > import org.eclipse.core.resources.IContainer; > import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IFolder; > import org.eclipse.core.resources.IResource; > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IPath; >@@ -791,8 +792,14 @@ > IStatus status = validateClassFile(); > if (!status.isOK()) > return status; >- if (underlyingResource != null && !underlyingResource.isAccessible()) >- return newDoesNotExistStatus(); >+ if (underlyingResource != null) { >+ if (!underlyingResource.isAccessible()) >+ return newDoesNotExistStatus(); >+ PackageFragmentRoot root; >+ if ((underlyingResource instanceof IFolder) && (root = getPackageFragmentRoot()).isArchive()) { // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=204652 >+ return root.newDoesNotExistStatus(); >+ } >+ } > return JavaModelStatus.VERIFIED_OK; > } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 204652
:
79189
|
79211
| 79221 |
79284
|
79376