Community
Participate
Working Groups
Build Identifier: Version: 3.7.0 Build id: I20110613-1736 When a Dynamic Web Project expanded in Project Explorer is deleted, various exception may be logged, that have common line in stack trace: at org.eclipse.jst.jee.ui.internal.navigator.JEE5ContentProvider.getCachedContentProvider(JEE5ContentProvider.java:92) The issue may be not 100% reproducible as it depends on concurrent threads that delete project and refresh Project Explorer; manipulating threads in debugger, it is possible to ensure the failure. I attach two exceptions: 1) java.lang.IllegalStateException: The project <P/Test> is not accessible. at org.eclipse.jst.jee.model.internal.JEE5ModelProvider.getModelResource(JEE5ModelProvider.java:148) - it is most probable; 2) java.lang.NullPointerException at org.eclipse.jst.jee.ui.internal.navigator.JEE5ContentProvider.getCachedModelProvider(JEE5ContentProvider.java:76) - I have seen it just once. Method JEE5ContentProvider.getCachedContentProvider() looks for a AbstractGroupProvider in groupContentProviders for the project. If project is expanded in Project Explorer, the group content provider is usually found, excepting when the map is accessed after PRE_DELETE event that removes the group content provider for the project. When the group content provider is found, IllegalStateException is caught without logging. When the group content provider is not found, because PRE_DELETE event already removed it from the cache, IllegalStateException is not caught, instead project is tested by isAccessible(). The following succession leads to the failure: 1) User requests deletion of a project; 2) Refresh of Project Explorer starts Web25ContentProvider; 3) PRE_DELETE event clears JEE5ContentProvider.groupContentProviders; 4) In JEE5ContentProvider.getCachedContentProvider(), test project.isAccessible() returns true and getNewContentProviderInstance() is called; 5) Deletion of the project is completed; 6) In JEE5ModelProvider.getModelResource() test project.isAccessible() returns false and IllegalStateException is thrown. Reproducible: Always Steps to Reproduce: 1. Create Dynamic Web Project 2. Expand it in Project Explorer 3. Delete project - check "Delete project contents on disk"
Created attachment 210762 [details] IllegalStateException
Created attachment 210763 [details] NullPointerException
this looks like a duplicate of https://bugs.eclipse.org/bugs/show_bug.cgi?id=369259 can you try it with a newer version.
It might be a duplicate, but in fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=369259 , class LoadingJeeDDJob is modified, and there is no such class in my stack trace. My version is certainly outdated because it does not include class LoadingJeeDDJob, so the question is, whether JEE5ModelProvider.getModelResource, which throws IllegalStateException when project becomes inaccessible, is always called through LoadingJeeDDJob in the new version, or not?
For visualizing in the DD tree yes it is called through LoadingJeeDDJob. This is a part of new feature where the tree is loaded in separate job.
Slava, I cannot reproduce this behavior with latest indigo or juno versions of eclipse. If you are still able to please provide up to date stacktrace or step by step scenario to reproduce. @Roberto If you don't mind I can take this one on my name?
(In reply to comment #6) > Slava, I cannot reproduce this behavior with latest indigo or juno versions of > eclipse. If you are still able to please provide up to date stacktrace or step > by step scenario to reproduce. > > @Roberto If you don't mind I can take this one on my name? I do not mind Dimitar. Thank you for the help. Assigning to you.
I cannot reproduce this problem in Juno.
Reporter cannot reproduce the problem in Juno