Bug 28115 - Ubiquitous resource in the JavaModel
Summary: Ubiquitous resource in the JavaModel
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.1   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: 2.1 M4   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-12-11 11:59 EST by Philipe Mulet CLA
Modified: 2002-12-18 04:36 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philipe Mulet CLA 2002-12-11 11:59:43 EST
Build 20021210

Same setup as bug 28114. Observe that the folder 'src/service' is shown both as 
a non-java resource and a nested source folder.

I would expect only seeing it as a source folder.
Comment 1 Jerome Lanneluc CLA 2002-12-12 07:21:21 EST
Changed PackageFragmentRootInfo.computeFolderNonJavaResources() to not included 
excluded folders that correspond to another package fragment root.

Changed DeltaProcessor to not traverse the delta in the context of the outer 
root, but in the context of the inner root.
Comment 2 Philipe Mulet CLA 2002-12-12 08:44:32 EST
Still doesn't work perfectly.

P
+- src
|   +- client / Sub.java
+- src/service

Add subfolder 'service' under 'src/service'

It ends up being a non-java rsc under 'src' pkg fragment root !?!

Note: the exclusion pattern for src folder 'src' is "service" (not "service/").
Comment 3 Philipe Mulet CLA 2002-12-12 08:50:57 EST
When using "service/" instead, it works ok.
Comment 4 Philipe Mulet CLA 2002-12-12 08:51:31 EST
Should verify whether "service" should implicitly be treated as "service/" by 
the Ant fileset rules.
Comment 5 Philipe Mulet CLA 2002-12-12 08:58:02 EST
Also, if excluding "service" (no trailing /), when closing/reopening the 
IProject, everything is fine again (src/service/service is properly rooted as 
an empty pkg under pkg root src/service).
Comment 6 Philipe Mulet CLA 2002-12-12 09:09:30 EST
Extra issue using "service" exclusion filter:

- create subfolder src/service/service (check it gets added under src/service)
- move src/service/Super.java into subfolder, notice that src/service/serice is 
no longer a ghost package
- move Super.java back to src/service
- src/service/service is now ghosted again
- try to delete the subfolder src/service/service
- the subfolder icon becomes a red square
- selecting it:
!ENTRY org.eclipse.jdt.ui 4 10001 Dec 12, 2002 15:25:38.992
!MESSAGE Internal Error
!STACK 1
Java Model Exception: Java Model Status [service [in src/service [in Crap]] 
does not exist.]
        at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException
(JavaElement.java:488)
        at org.eclipse.jdt.internal.core.PackageFragment.openWhenClosed
(PackageFragment.java:313)
        at org.eclipse.jdt.internal.core.JavaElement.openHierarchy
(JavaElement.java:509)
        at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:296)
        at org.eclipse.jdt.internal.core.JavaElement.getChildren
(JavaElement.java:252)
        at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType
(JavaElement.java:261)
        at org.eclipse.jdt.internal.core.PackageFragment.getCompilationUnits
(PackageFragment.java:190)
        at org.eclipse.jdt.ui.actions.OrganizeImportsAction.isEnabled
(OrganizeImportsAction.java:213)
        at org.eclipse.jdt.ui.actions.OrganizeImportsAction.selectionChanged
(OrganizeImportsAction.java:148)
        at 
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged
(SelectionDispatchAction.java:181)
        at org.eclipse.jdt.ui.actions.SelectionDispatchAction.selectionChanged
(SelectionDispatchAction.java:176)
        at org.eclipse.jface.viewers.Viewer.fireSelectionChanged
(Viewer.java:148)
        at org.eclipse.jface.viewers.StructuredViewer.updateSelection
(StructuredViewer.java:1151)
        at org.eclipse.jface.viewers.StructuredViewer.handleSelect
(StructuredViewer.java:540)
        at org.eclipse.jface.viewers.StructuredViewer$1.widgetSelected
(StructuredViewer.java:564)
        at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent
(OpenStrategy.java:172)
        at org.eclipse.jface.util.OpenStrategy.access$3(OpenStrategy.java:167)
        at org.eclipse.jface.util.OpenStrategy$1.handleEvent
(OpenStrategy.java:302)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:825)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1692)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1410)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1403)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:1386)
        at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:845)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:462)
        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:324)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:247)
        at org.eclipse.core.launcher.Main.run(Main.java:703)
        at org.eclipse.core.launcher.Main.main(Main.java:539)
Comment 7 Jerome Lanneluc CLA 2002-12-12 13:10:20 EST
Ant treats 'service' differently than 'service/'. For example, when copying a 
directory, it wil still copy the contents of 'service' in the first case, but 
not on the second case.

Changed JavaConvention.validateClasspath to reject a source entry if its 
exclusion filter doesn't exclude the nested entry AND its children (i.e. if it 
doesn't have a training slash)
Comment 8 David Audel CLA 2002-12-18 04:36:46 EST
Verified.