Bug 308476

Summary: Test ClasspathTests#testBug308150 fails on all platforms
Product: [Eclipse Project] JDT Reporter: Jay Arthanareeswaran <jarthana>
Component: CoreAssignee: Jay Arthanareeswaran <jarthana>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: amj87.iitr, daniel_megert
Version: 3.6   
Target Milestone: 3.6 M7   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Jay Arthanareeswaran CLA 2010-04-08 09:47:14 EDT
The following exception trace is found:

'/Users/ibmemployee/buildtest/N20100407-2000/eclipse-testing/test-eclipse' is not a valid location for linked resources.
Java Model Exception: Core Exception [code 77] '/Users/ibmemployee/buildtest/N20100407-2000/eclipse-testing/test-eclipse' is not a valid location for linked resources.
at org.eclipse.jdt.internal.core.ExternalFolderChange.updateExternalFoldersIfNecessary(ExternalFolderChange.java:49)
at org.eclipse.jdt.internal.core.ChangeClasspathOperation.classpathChanged(ChangeClasspathOperation.java:62)
at org.eclipse.jdt.internal.core.SetClasspathOperation.executeOperation(SetClasspathOperation.java:74)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:793)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3020)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2982)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3035)
at org.eclipse.jdt.core.tests.model.AbstractJavaModelTests.addClasspathEntry(AbstractJavaModelTests.java:379)
at org.eclipse.jdt.core.tests.model.AbstractJavaModelTests.addLibraryEntry(AbstractJavaModelTests.java:481)
at org.eclipse.jdt.core.tests.model.AbstractJavaModelTests.addLibraryEntry(AbstractJavaModelTests.java:462)
at org.eclipse.jdt.core.tests.model.AbstractJavaModelTests.addLibraryEntry(AbstractJavaModelTests.java:447)
at org.eclipse.jdt.core.tests.model.AbstractJavaModelTests.addExternalLibrary(AbstractJavaModelTests.java:402)
at org.eclipse.jdt.core.tests.model.ClasspathTests.testBug308150(ClasspathTests.java:6667)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$Suite.runTest(SuiteOfTestCases.java:100)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$Suite.superRun(SuiteOfTestCases.java:84)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$1.protect(SuiteOfTestCases.java:72)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$Suite.run(SuiteOfTestCases.java:81)
at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java:376)
at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java:209)
at org.eclipse.test.CoreTestApplication.runTests(CoreTestApplication.java:35)
at org.eclipse.test.CoreTestApplication.run(CoreTestApplication.java:31)
at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:587)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:198)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
at org.eclipse.core.launcher.Main.main(Main.java:34)
Caused by: org.eclipse.core.internal.resources.ResourceException: '/Users/ibmemployee/buildtest/N20100407-2000/eclipse-testing/test-eclipse' is not a valid location for linked resources.
at org.eclipse.core.internal.resources.Resource.assertLinkRequirements(Resource.java:166)
at org.eclipse.core.internal.resources.Resource.createLink(Resource.java:655)
at org.eclipse.core.internal.resources.Resource.createLink(Resource.java:629)
at org.eclipse.jdt.internal.core.ExternalFoldersManager.createLinkFolder(ExternalFoldersManager.java:113)
at org.eclipse.jdt.internal.core.ExternalFolderChange.updateExternalFoldersIfNecessary(ExternalFolderChange.java:47)
at org.eclipse.jdt.internal.core.ChangeClasspathOperation.classpathChanged(ChangeClasspathOperation.java:62)
at org.eclipse.jdt.internal.core.SetClasspathOperation.executeOperation(SetClasspathOperation.java:74)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:793)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3020)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2982)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3035)
at org.eclipse.jdt.core.tests.model.AbstractJavaModelTests.addClasspathEntry(AbstractJavaModelTests.java:379)
at org.eclipse.jdt.core.tests.model.AbstractJavaModelTests.addLibraryEntry(AbstractJavaModelTests.java:481)
at org.eclipse.jdt.core.tests.model.AbstractJavaModelTests.addLibraryEntry(AbstractJavaModelTests.java:462)
at org.eclipse.jdt.core.tests.model.AbstractJavaModelTests.addLibraryEntry(AbstractJavaModelTests.java:447)
at org.eclipse.jdt.core.tests.model.AbstractJavaModelTests.addExternalLibrary(AbstractJavaModelTests.java:402)
at org.eclipse.jdt.core.tests.model.ClasspathTests.testBug308150(ClasspathTests.java:6667)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$Suite.runTest(SuiteOfTestCases.java:100)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$Suite.superRun(SuiteOfTestCases.java:84)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$1.protect(SuiteOfTestCases.java:72)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$Suite.run(SuiteOfTestCases.java:81)
at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java:376)
at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java:209)
at org.eclipse.test.CoreTestApplication.runTests(CoreTestApplication.java:35)
at org.eclipse.test.CoreTestApplication.run(CoreTestApplication.java:31)
at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:587)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:198)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
at org.eclipse.core.launcher.Main.main(Main.java:34)
Comment 1 Jay Arthanareeswaran CLA 2010-04-08 10:15:29 EDT
It appears that the "../.." used in the manifest of the external classpath entry is causing the problem. It's an expected error if the path being used is not valid, such as the workspace root etc. Since there is no guarantee about the levels of nesting for the external folder, this particular test for external classpath entry better be removed.
Comment 2 Jay Arthanareeswaran CLA 2010-04-08 10:47:17 EDT
Released the fix in HEAD for 3.6M7
Comment 3 Ayushman Jain CLA 2010-04-26 04:06:00 EDT
Verified for 3.6M7 through code inspection
Comment 4 Jay Arthanareeswaran CLA 2010-04-26 13:40:46 EDT
Verified.