Community
Participate
Working Groups
Build ID: I20080617-2000 Steps To Reproduce: The error is hard to reproduce as there is no definite way to do so. Sometimes changing project settings works as expected, sometimes it doesn't. More information: The problem occurs when changing project settings. Adding a new folder to a project sometimes fails and an Eclipse restart is required. When adding dependent projects or appending a JAR-File to the project settings sometimes requires two or more tries until it finally succeeds. I haven't found any way to reproduce the problem. The error message doesn't supply any useful hint where to look for the problem, except the information that there is something with a linked resource. But the problem occurs also on a workspace that just contains one project without using any linked resources. I just use the ClearCase SCM Adapter as an additional plugin, but even a vanilla Eclipse installation produces the error. The error message is: Cannot create linked resource '/.org.eclipse.jdt.core.external.folders/.link0'. The parent resource is not accessible. No stack trace is available. SessionData: eclipse.buildId=I20080617-2000 java.version=1.6.0_07 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE Framework arguments: -showlocation Command-line arguments: -os win32 -ws win32 -arch x86 -data D:\VE Stuff\Workspaces\Workspace2 -showlocation Any hint where to look for further information on this problem would be appreciated as it really annoying to reconfigure a project again and again.
hi sebastian, the problem usually occurs when you change the project settings and there is a new build or just changing without rebuilding? on mtj we track the project resources to know when to rebuild and generate a temporary jad/jar file. we already notice some problems (also hard to reproduce problems) associated to classpaths in the build process. :) gep
Hi and thanks for your quick response. Unfortunately I had JavaScript disabled when entering this bug report, so BugZilla had automatically assinged it to MTJ, but it is a JDT related problem. Was already wondering why a Motorola mail domain was informed :) Will try to reassign it to JDT, but I think you have to change the assignee then? Sorry, my fault. For the new assignee: After some more digging in the error logs i was able to find some stack traces. org.eclipse.core.internal.resources.ResourceException: Cannot create linked resource '/.org.eclipse.jdt.core.external.folders/.link0'. The parent resource is not accessible. at org.eclipse.core.internal.resources.Resource.assertLinkRequirements(Resource.java:160) at org.eclipse.core.internal.resources.Resource.createLink(Resource.java:592) at org.eclipse.core.internal.resources.Resource.createLink(Resource.java:574) at org.eclipse.jdt.internal.core.ExternalFoldersManager.createLinkFolder(ExternalFoldersManager.java:111) at org.eclipse.jdt.internal.core.ExternalFolderChange.updateExternalFoldersIfNecessary(ExternalFolderChange.java:47) at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:1956) at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:410) at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:288) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:282) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:148) at org.eclipse.core.internal.resources.Workspace.broadcastBuildEvent(Workspace.java:297) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:136) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) org.eclipse.core.internal.resources.ResourceException: The project description file (.project) for '.org.eclipse.jdt.core.external.folders' is missing. This file contains important information about the project. The project will not function properly until this file is restored. at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:669) at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:797) at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:702) at org.eclipse.core.internal.resources.Project.open(Project.java:872) at org.eclipse.core.internal.resources.Project.open(Project.java:911) at org.eclipse.jdt.internal.core.ExternalFoldersManager.createExternalFoldersProject(ExternalFoldersManager.java:176) at org.eclipse.jdt.internal.core.ExternalFoldersManager.createLinkFolder(ExternalFoldersManager.java:108) at org.eclipse.jdt.internal.core.ExternalFolderChange.updateExternalFoldersIfNecessary(ExternalFolderChange.java:47) at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:1956) at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:410) at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:288) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:282) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:148) at org.eclipse.core.internal.resources.Workspace.broadcastBuildEvent(Workspace.java:297) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:136) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) And a mysterious message that occurs every second: Problem occurred in auto-refresh native code: 5. Additionally this message occured: Problems occurred when invoking code from plug-in: "org.eclipse.core.resources": java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) at java.util.HashMap$KeyIterator.next(HashMap.java:828) at java.util.AbstractCollection.toArray(AbstractCollection.java:124) at com.ibm.rational.clearcase.ccrefresh.CcRefreshProviderService.visit(CcRefreshProviderService.java:185) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:68) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:48) at com.ibm.rational.clearcase.ccrefresh.CcRefreshProviderService.resourceChanged(CcRefreshProviderService.java:132) at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:288) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:282) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:148) at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:313) at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1022) at org.eclipse.core.internal.resources.Resource.delete(Resource.java:731) at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.cleanOutputFolders(BatchImageBuilder.java:114) at org.eclipse.jdt.internal.core.builder.JavaBuilder.clean(JavaBuilder.java:291) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:635) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:253) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:309) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:341) at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:330) at org.eclipse.ui.internal.ide.dialogs.CleanDialog.doClean(CleanDialog.java:299) at org.eclipse.ui.internal.ide.dialogs.CleanDialog$1.runInWorkspace(CleanDialog.java:147) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) This seems to be a ClearCase plugin related problem, but may be a cause? (Remember, the error occurs also without the CC plugin installed)
assignment was wrong :) gustavo
Move to Platform/Resources
(In reply to comment #2) > Will try to reassign it to JDT... > > org.eclipse.core.internal.resources.ResourceException: Cannot create linked > resource '/.org.eclipse.jdt.core.external.folders/.link0'. The parent resource > is not accessible. > at > org.eclipse.core.internal.resources.Resource.assertLinkRequirements(Resource.java:160) > at > org.eclipse.core.internal.resources.Resource.createLink(Resource.java:592) > at > org.eclipse.core.internal.resources.Resource.createLink(Resource.java:574) > at > org.eclipse.jdt.internal.core.ExternalFoldersManager.createLinkFolder(ExternalFoldersManager.java:111) > at > org.eclipse.jdt.internal.core.ExternalFolderChange.updateExternalFoldersIfNecessary(ExternalFolderChange.java:47) > at > org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:1956) > at > org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:410) > at > org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:288) > at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) > at Right, core.resources entries are at the end of the stacktrace, however this seems to be jdt.core issue related to external class folders introduced in 3.4. Probably Jerome should comment on it. > And a mysterious message that occurs every second: Problem occurred in > auto-refresh native code: 5. > > Additionally this message occured: Problems occurred when invoking code from > plug-in: "org.eclipse.core.resources": > > java.util.ConcurrentModificationException > at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) > at java.util.HashMap$KeyIterator.next(HashMap.java:828) > at java.util.AbstractCollection.toArray(AbstractCollection.java:124) > at com.ibm.rational.clearcase.ccrefresh.CcRefreshProviderService.visit(CcRefreshProviderService.java:185) The second exception is a problem in the clearcase plug-in.
The .metadata was tampered with. In particular the .project file for the external project was deleted. The crash happens in the crash recovery code where the .project file was just recreated on the line above. There is nothing more we can do. Won't fix.
*** Bug 237767 has been marked as a duplicate of this bug. ***
Actually, I was able to reproduce following those steps: 1. Start a new workspace on "d:\temp\test" 2. Create a Java project "Test" 3. Add an external class folder to the build path of "Test" (e.g. "d:\temp\lib") 4. Shutdown 5. Rename "d:\temp\test" to "d:\temp\test2" 6. Start Eclipse on this new workspace Observe: You get the stack traces reported in comment 2 in the .log Reopening to fix for 3.5M3
Created attachment 113364 [details] Proposed fix Note that there is no regression test as one cannot move the workspace in tests.
Fix released for 3.5M3
On the restart (step 6), I got: The project description file (.project) for '.org.eclipse.jdt.core.external.folders' is missing. This file contains important information about the project. The project will not function properly until this file is restored. org.eclipse.core.internal.resources.ResourceException: The project description file (.project) for '.org.eclipse.jdt.core.external.folders' is missing. This file contains important information about the project. The project will not function properly until this file is restored. at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:687) at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:797) at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:777) at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:663) at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1326) at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:1953) at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:1716) at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:376) at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:804) at java.security.AccessController.doPrivileged(Native Method) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:798) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:779) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:272) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400) at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:427) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:192) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:372) at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:445) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:401) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:389) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:86) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:114) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) 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:370) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at org.eclipse.equinox.launcher.Main.run(Main.java:1236) at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
(In reply to comment #11) This is a different stack trace than the one from comment 2. JDT/Core was involved in the stack trace from comment 2. The stack trace from comment 11 doesn't involve JDT/Core. Please open a separate bug agains Platform/Resources.
(In reply to comment #8) > Actually, I was able to reproduce following those steps: > 1. Start a new workspace on "d:\temp\test" > 2. Create a Java project "Test" > 3. Add an external class folder to the build path of "Test" (e.g. > "d:\temp\lib") > 4. Shutdown > 5. Rename "d:\temp\test" to "d:\temp\test2" > 6. Start Eclipse on this new workspace > Observe: You get the stack traces reported in comment 2 in the .log Actually, one step was missing to reproduce: 7. Add another external class folder to the build path of "Test" (e.g. "d:\temp\lib2") Observe: You get an error dialog saying "Cannot create linked resource"
Verified for 3.5M3 using I20081028-2000 build. The bug is fixed because the error dialog does not appear but the behavior is still not perfect (see bug 252571)
Is there any workaround, like cleaning some files/folders in .metadata?
You might try to delete ".metadata\.plugins\org.eclipse.jdt.core\.org.eclipse.jdt.core.external.folders" before restarting your workspace. Please report whether this works for you.
Unfortunately this does not help. I also tried to delete the folder ".metadata\.plugins\org.eclipse.jdt.core" completely with no luck.
(In reply to comment #17) > Unfortunately this does not help. I also tried to delete the folder > ".metadata\.plugins\org.eclipse.jdt.core" completely with no luck. So sorry, but I don't see any other workaround. In 3.4, it is not possible to move workspaces that contain projects with external folders.