[ 
https://issues.apache.org/jira/browse/IVYDE-237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12932874#action_12932874
 ] 

Nicolas Lalevée commented on IVYDE-237:
---------------------------------------

I have setup a similar fake project: 
http://svn.apache.org/repos/asf/ant/ivy/ivyde/trunk/test/jetty/
http://svn.apache.org/repos/asf/ant/ivy/ivyde/trunk/test/jetty-webapp/

And I have been able to reproduce the issue.

I am not sure when it happened, but I noticed some NPE in the logs, might be 
related. Could you check your logs to see if there is some ivyde stack trace 
too ?

the stack trace I have found:
{noformat}
java.lang.NullPointerException
at 
org.apache.ivyde.eclipse.IvyDERuntimeClasspathEntryResolver.computeDefaultContainerEntries(IvyDERuntimeClasspathEntryResolver.java:91)
at 
org.apache.ivyde.eclipse.IvyDERuntimeClasspathEntryResolver.resolveRuntimeClasspathEntry(IvyDERuntimeClasspathEntryResolver.java:77)
at 
org.eclipse.jdt.internal.launching.RuntimeClasspathEntryResolver.resolveRuntimeClasspathEntry(RuntimeClasspathEntryResolver.java:44)
at 
org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:919)
at 
org.eclipse.jdt.launching.StandardSourcePathProvider.resolveClasspath(StandardSourcePathProvider.java:89)
at 
org.eclipse.jdt.launching.JavaRuntime.resolveSourceLookupPath(JavaRuntime.java:815)
at 
org.eclipse.jdt.launching.sourcelookup.containers.ClasspathContainerSourceContainer.createSourceContainers(ClasspathContainerSourceContainer.java:84)
at 
org.eclipse.debug.core.sourcelookup.containers.CompositeSourceContainer.getSourceContainers(CompositeSourceContainer.java:129)
at 
org.eclipse.debug.internal.ui.sourcelookup.SourceContainerViewer$ContentProvider.getChildren(SourceContainerViewer.java:77)
at 
org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1354)
at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:391)
at 
org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:896)
at 
org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:601)
at 
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:801)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at 
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:778)
at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644)
at 
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:749)
at 
org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand(AbstractTreeViewer.java:1444)
at org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeViewer.java:952)
at 
org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded(AbstractTreeViewer.java:1455)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:132)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
at org.eclipse.swt.widgets.TreeItem.sendExpand(TreeItem.java:1024)
at org.eclipse.swt.widgets.Tree.expandItem_expandChildren(Tree.java:1186)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5183)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220)
at org.eclipse.swt.widgets.Widget.mouseDownSuper(Widget.java:1025)
at org.eclipse.swt.widgets.Tree.mouseDownSuper(Tree.java:1974)
at org.eclipse.swt.widgets.Widget.mouseDown(Widget.java:1021)
at org.eclipse.swt.widgets.Control.mouseDown(Control.java:2258)
at org.eclipse.swt.widgets.Tree.mouseDown(Tree.java:1942)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4976)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220)
at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:1943)
at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2025)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5040)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4582)
at org.eclipse.swt.widgets.Display.applicationProc(Display.java:4659)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
at 
org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:115)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3274)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at 
org.eclipse.debug.ui.sourcelookup.CommonSourceNotFoundEditor.editSourceLookupPath(CommonSourceNotFoundEditor.java:192)
at 
org.eclipse.debug.ui.sourcelookup.CommonSourceNotFoundEditor$1.widgetSelected(CommonSourceNotFoundEditor.java:154)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1187)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3622)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3277)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at 
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at 
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
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 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:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
{noformat}

> Multiple eclipse projects with similar ivy library definitions results in 
> launch config source path collisions
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: IVYDE-237
>                 URL: https://issues.apache.org/jira/browse/IVYDE-237
>             Project: IvyDE
>          Issue Type: Bug
>          Components: launch configuration
>    Affects Versions: 2.0.0.final
>         Environment: Ubuntu 8.10, Eclipse 3.5.2, IvyDE 2.0.0.final
>            Reporter: Phil Clay
>         Attachments: ivyde_source_lookup_1.png, ivyde_source_lookup_2.png, 
> ivyde_source_lookup_3.png, ivyde_source_lookup_4.png, 
> ivyde_source_lookup_5.png
>
>
> I have multiple eclipse projects with very similar project structures.
> Each eclipse project has an one ivy library pointing to an ivy.xml file at 
> the root of each the project.  (i.e. one ivy.xml file per project)
> The projects have various dependencies on each other, going three or four 
> deep.  (e.g. A depends on B, B depends on C, C depends on D, etc).  The ivy 
> library is exported from each project.
> I have "resolve dependencies in workspace" turned on.  It works great, the 
> build time project dependencies are resolved properly.  Love this!  But, I 
> think the same thing applies if I have this turned off.
> The problem happens when creating a launch configuration.  I noticed this 
> when debugging.  I created a launch configuration pointing at project A.  
> When stepping through a debug session, eclipse could not find the sources for 
> project D.  After some further investigation, this is what I found...
> Using the default source lookup path does not include the project D.  More on 
> that later.  
> So, I decided to manually configure the source path.  Here's the process I 
> followed:
> 1. I started by adding project A.  
> 2. Upon adding A, I noticed that two entries appeared in the source lookup 
> path
>     - the project A itself
>     - the ivy library of the project
> 3. Now I add project B
> 4. Upon adding B, I noticed that only one additional entry appeared in the 
> source lookup path
>    - the project B itself
> The ivy library of project B did not appear (even though it is exported)
> Similarly, if I add all the projects in one step, only one ivy library 
> appears.
> So, I believe that since each of the ivy libraries are configured the same 
> way (Essentially pointing to an identically named file in each project), that 
> eclipse or IvyDE is getting confused and only adding one of them to the 
> source lookup path.
> I believe the same is true if I use the default source lookup path (rather 
> than adding projects manually).  When looking at the default source lookup 
> path, I can only see a subset of the depend-on projects. Usually, they only 
> include the dependencies of one project, and nothing transitive.
> I tried to test this theory by renaming the ivy.xml files to 
> ivy-${projectname}.xml.  This makes all of the ivy libraries unique, since 
> the ivy xml file name is included as part of the library definition.  
> However, now if I add multiple projects to the source lookup path, multiple 
> ivy libraries get added, BUT if you try to expand them, you get an error 
> message saying that the ivy-${projectname}.xml file doesn't exist (because it 
> is looking for that xml file in the root of the launch config project, rather 
> than the project from which the library is coming from.
> I can easily reproduce this behavior, so let me know if you need further 
> information

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to