Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 322705 - Starting action causes core exception as swt motif sparc jar file is not a directory
Summary: Starting action causes core exception as swt motif sparc jar file is not a di...
Status: RESOLVED WORKSFORME
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Buckminster (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows Vista
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: buckminster.core-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-14 09:06 EDT by Axel Guckelsberger CLA
Modified: 2019-02-25 14:39 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Axel Guckelsberger CLA 2010-08-14 09:06:26 EDT
Build Identifier: I20100608-0911

Starting any action leads to the exception stated below. My target platform contains launchers from the Eclipse update site as Helios do not contain them all.

org.eclipse.core.runtime.CoreException: Basedir C:\Users\...\workspace\.metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins\org.eclipse.swt.motif.solaris.sparc_3.6.0.v3650b.jar is not a directory
 at org.eclipse.buckminster.ant.AntRunner.handleInvocationTargetException(AntRunner.java:167)
 at org.eclipse.buckminster.ant.AntRunner.run(AntRunner.java:322)
 at org.eclipse.buckminster.ant.actor.AntActor.internalPerform(AntActor.java:254)
 at org.eclipse.buckminster.core.actor.AbstractActor.perform(AbstractActor.java:186)
 at org.eclipse.buckminster.core.internal.actor.PerformManager$DirectActionInvocation.execute(PerformManager.java:143)
 at org.eclipse.buckminster.core.internal.actor.PerformManager.internalPerform(PerformManager.java:454)
 at org.eclipse.buckminster.core.internal.actor.PerformManager.perform(PerformManager.java:293)
 at org.eclipse.buckminster.core.internal.actor.PerformManager.perform(PerformManager.java:305)
 at org.eclipse.buckminster.ui.InvokeAction$ActionJob.runInWorkspace(InvokeAction.java:81)
 at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
 at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: Basedir C:\Users\...\workspace\.metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins\org.eclipse.swt.motif.solaris.sparc_3.6.0.v3650b.jar is not a directory
 at org.apache.tools.ant.Project.setBaseDir(Project.java:823)
 at org.apache.tools.ant.Project.setBasedir(Project.java:804)
 at org.apache.tools.ant.helper.ProjectHelper2$ProjectHandler.onStartElement(ProjectHelper2.java:712)
 at org.apache.tools.ant.helper.ProjectHelper2$RootHandler.startElement(ProjectHelper2.java:501)
 at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
 at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
 at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(Unknown Source)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
 at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
 at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
 at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
 at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
 at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
 at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
 at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:209)
 at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:140)
 at org.eclipse.ant.internal.core.ant.InternalAntRunner.parseBuildFile(InternalAntRunner.java:347)
 at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:633)
 at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:495)
 at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.eclipse.buckminster.ant.AntRunner.run(AntRunner.java:318)
 ... 9 more


Reproducible: Always
Comment 1 Thomas Hallgren CLA 2010-08-14 18:06:07 EDT
I don't understand why an ant-script would make an attempt to set the sparc plugin as its basedir. Can you provide an example that reproduces this error?
Comment 2 Axel Guckelsberger CLA 2010-08-16 06:20:32 EDT
Trying to investigate this problem in detail.

First I went to org.apache.tools.ant.helper.ProjectHelper2$AntHandler. There it says starting in line 711:
            if (project.getProperty("basedir") != null) {
                project.setBasedir(project.getProperty("basedir"));

After I did not cope with continueing this path I then rethought the whole problem.

I wonder about why this plugin is affected by the Buckminster actions at all.
For example if I use "buckminster.clean" it processes all my own bundles in the workspace, and afterwards it starts with this o.e.swt.motif.solaris.sparc plugin.

Like this:

[start org.eclipse.swt.motif.solaris.sparc:osgi.bundle$3.6.0.v3650b#buckminster.clean]
[ant] Buildfile: C:\Users\GuiteMedia\Desktop\eclipse\configuration\org.eclipse.osgi\bundles\788\1\.cp\org\eclipse\buckminster\pde\antscripts\build.xml
org.eclipse.core.runtime.CoreException: Basedir C:\Users\GuiteMedia\Desktop\MOST-workspace\.metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins\org.eclipse.swt.motif.solaris.sparc_3.6.0.v3650b.jar is not a directory
Basedir C:\Users\GuiteMedia\Desktop\MOST-workspace\.metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins\org.eclipse.swt.motif.solaris.sparc_3.6.0.v3650b.jar is not a directory


Shouldn't those actions only be applied on bundles in the workspace?

Regards
Axel
Comment 3 Thomas Hallgren CLA 2010-08-16 07:14:54 EDT
(In reply to comment #2)
> Shouldn't those actions only be applied on bundles in the workspace?
> 
Yes, but there is one exception. Some bundles in the TP are unpacked into directories. P2 does this as part of the provisioning in order to "install" the bundle into a runnable form. Consequently, when Buckminster is tasked with delivering this bundle, it needs to create a jar from that directory. This leaves some debris that needs to be cleaned up.

Is the bundle present in your TP? If it is, is it in the form of a jar or a directory?
Comment 4 Axel Guckelsberger CLA 2010-08-16 07:52:37 EDT
(In reply to comment #3)
> This leaves some debris that needs to be cleaned up.
> 
> Is the bundle present in your TP? If it is, is it in the form of a jar or a
> directory?

In the directory C:\Users\...\workspace\.metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins\ the following two files exist:

org.eclipse.swt.motif.solaris.sparc.source_3.6.0.v3650b.jar
org.eclipse.swt.motif.solaris.sparc_3.6.0.v3650b.jar

Looks like all the other platforms, too.
There are no equally named directories (only for equinox launchers, not for swt).
Comment 5 Thomas Hallgren CLA 2010-08-16 08:04:09 EDT
Funny then, that Buckminster should consider it to be unpacked. It could be explained by a bogus entry in the feature that requires it (missing unpack="false" or a present unpack="true")?

What feature is that? The org.eclipse.rcp feature looks correct.
Comment 6 Axel Guckelsberger CLA 2010-08-16 09:52:52 EDT
If I open my site feature in a dependency visualization, uncheck the "Filter Target Platform" checkbox then the o.e.swt.motif.solaris.sparc plugin is only referenced by org.eclipse.swt (yellow connection) and org.eclipse.rcp (green connection).

The only bundle which is red (not resolved) is org.eclipse.equinox.p2.user.ui, but that seems to be another problem (feature is contained in TP as binary as well as source).
Comment 7 Axel Guckelsberger CLA 2010-08-16 10:11:31 EDT
FIXED!

As usually the solution was completely independent of the error message. I renamed my build feature a few weeks ago and somehow there were still some old references in the pde meta data or something.
Found it while playing with the cquery wizard. During materialisation there occured a warning about that the project had not the same name as the .project file.
After I searched for the wrong name it appeared (within the old project) in the package explorer. I removed the whole project and everything worked :-)