Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Buckminster » Bundle.jar fails: Basedir xxx.jar is not a directory.(Build fails when developing feature patches while having the original feature in the target platform.)
Bundle.jar fails: Basedir xxx.jar is not a directory. [message #1450581] Wed, 22 October 2014 16:00 Go to next message
Tobias Bertelsen is currently offline Tobias BertelsenFriend
Messages: 25
Registered: October 2011
Junior Member
Hi there.

Can someone help me with fixing this problem? I am getting this following error during my build (headless).

org.eclipse.core.runtime.CoreException: Basedir C:\path\to\target\platform\plugins\org.eclipse.equinox.simpleconfigurator_1.0.301.v20120828-033635.jar is not a directory


I am pretty sure it has something to do with the fact that we are modifying the simpleconfigurator bundle and applying it using a feature patch. Our setup has this structure:

Our.product
  - our.product.feature
    - *org.eclipse.runtime
      - *org.eclipse.equinox.simpleconfigurator_1.0.301.v20120828-033635
      ...
    - our.eclipse.runtime.patch
      - org.eclipse.equinox.simpleconfigurator_1.0.302.qualifier
  ...

* = is in the target platform. Everything else are projects in the workspace.

We do not use Buckminster for materialization. The target platform is defined in a .target file and is based on folders.

When the build runs it fails on the action org.eclipse.equinox.simpleconfigurator:osgi.bundle$1.0.301.v20120828-033635#bundle.jar. I have attached a debugger to see whats goint on.
As far as I can see, the dependencies between the attributes of the feature, feature patch and plugins, are resolved correctly acording to the structure shown above.
The action is an ant actor, with the following field values:

actorName                 "ant"
actorProperties           {buildFileId=buckminster.pdetasks, targets=recreate.jar}
always                    false
assignConsoleSupport      true
cspec                     org.eclipse.equinox.simpleconfigurator:osgi.bundle$1.0.301.v20120828-033635 
documentation             null
filter                    null
name                      "bundle.jar"
prerequisites             org.eclipse.equinox.simpleconfigurator:osgi.bundle$1.0.301.v20120828-033635#action.requirements 
productAlias              "action.output"
productBase               ${buckminster.output}/
productFileCount          -1
products                  [org.eclipse.equinox.simpleconfigurator_1.0.301.v20120828-033635.jar]
properties                {}
publ                      true
upToDatePolicy            DEFAULT


I can see that basedir for the ant script is set in the ant actor with this statement props.put("basedir", ctx.getComponentLocation().toOSString());, which does not seem to play well with jars from the target platform.

I hope some of you are able to help Smile

Thanks
Tobias



The entire stacktrace from the log is here:


!ENTRY org.eclipse.buckminster.core 1 293 2014-10-22 16:53:56.999
!MESSAGE [start org.eclipse.equinox.simpleconfigurator:osgi.bundle$1.0.301.v20120828-033635#bundle.jar]
INFO:  [start org.eclipse.equinox.simpleconfigurator:osgi.bundle$1.0.301.v20120828-033635#bundle.jar]
[ant] Buildfile: C:\path\to\dobsheadless\configuration\org.eclipse.osgi\bundles\39\1\.cp\org\eclipse\buckminster\pde\antscr
ipts\build.xml

!ENTRY org.eclipse.buckminster.core 4 293 2014-10-22 16:54:40.066
!MESSAGE org.eclipse.core.runtime.CoreException: Basedir C:\path\to\target\platform\plugins\org.eclipse.equinox.simpleconfigurator_1.0.301.v20120828-0336
35.jar is not a directory
!STACK 1
org.eclipse.core.runtime.CoreException: Basedir C:\path\to\target\platform\plugins\org.eclipse.equinox.simpleconfigurator_1.0.301.v20120828-033635.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:195)
        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.core.commands.Perform.internalRun(Perform.java:108)
        at org.eclipse.buckminster.core.commands.WorkspaceCommand.run(WorkspaceCommand.java:91)
        at org.eclipse.buckminster.cmdline.AbstractCommand.basicRun(AbstractCommand.java:200)
        at org.eclipse.buckminster.cmdline.Headless.run(Headless.java:343)
        at org.eclipse.buckminster.cmdline.Headless.run(Headless.java:284)
        at org.eclipse.buckminster.cmdline.Headless.start(Headless.java:358)
        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:354)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
Caused by: Basedir C:\path\to\target\platform\plugins\org.eclipse.equinox.simpleconfigurator_1.0.301.v20120828-033635.jar is not a directory
        at org.apache.tools.ant.Project.setBaseDir(Project.java:848)
        at org.apache.tools.ant.Project.setBasedir(Project.java:829)
        at org.apache.tools.ant.helper.ProjectHelper2$ProjectHandler.onStartElement(ProjectHelper2.java:841)
        at org.apache.tools.ant.helper.ProjectHelper2$RootHandler.startElement(ProjectHelper2.java:600)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:379)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:605)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3138)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:880)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:648)
        at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:307)
        at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:178)
        at org.eclipse.ant.internal.core.ant.InternalAntRunner.parseBuildFile(InternalAntRunner.java:350)
        at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:642)
        at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:498)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.eclipse.buckminster.ant.AntRunner.run(AntRunner.java:318)
        ... 24 more


Edit: Added materialization description

[Updated on: Wed, 22 October 2014 16:03]

Report message to a moderator

Re: Bundle.jar fails: Basedir xxx.jar is not a directory. [message #1453873 is a reply to message #1450581] Mon, 27 October 2014 16:37 Go to previous messageGo to next message
Tobias Bertelsen is currently offline Tobias BertelsenFriend
Messages: 25
Registered: October 2011
Junior Member
I am pretty sure I have found the bug and a fix for this. I'll create a better description in a bug this Friday, since I'm out of time right now and I need to do some more testing.

In short it originates in EclipsePlatformReaderType.getBestPlugin():

  • 'activeMap' is initialized any with the content from PluginRegistry.getAllModels(), whose documentation states
    If a workspace plug-in/fragment has the same ID as a target plug-in, the target counterpart is skipped and not included.
  • 'activeMap' will thus not contain the target platform plugin.
  • This leads to to the corrupted CSpec through a long series of events.
  • To fix this, 'activeMap' must be initialized with PluginRegistry.getWorkspaceModels() and PluginRegistry.getExternalModels()
Re: Bundle.jar fails: Basedir xxx.jar is not a directory. [message #1457416 is a reply to message #1453873] Fri, 31 October 2014 09:52 Go to previous message
Tobias Bertelsen is currently offline Tobias BertelsenFriend
Messages: 25
Registered: October 2011
Junior Member
I have created a bug and attached a patch with the fix:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=449437
Previous Topic:How can I run buckminster on 64bit eclipse?
Next Topic:java.lang.IllegalStateException: Preference node "file:" has been removed.
Goto Forum:
  


Current Time: Sat Aug 18 10:12:43 GMT 2018

Powered by FUDForum. Page generated in 0.02053 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top