Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-user] Weird error when using p2-installable-unit

> Looks like your build has multiple os/ws/arch configured and resolution
> fails when trying to resolve for win32/win32/x86 combo. Here is the
> relevant log message (from right above the error ;-) )

Couldn't see the forrest for trees.

> [INFO] Cannot complete the request.  Generating details.
> [INFO] {org.osgi.framework.executionenvironment=OSGi/Minimum-1.0,OSGi/Minimum-1.1, osgi.ws=win32, osgi.arch=x86, osgi.os=win32, org.eclipse.update.install.features=true, org.osgi.framework.system.packages=}
> [ERROR] Cannot resolve project dependencies:
> [ERROR]   You requested to install 'bundle org.eclipse.jdt.launching.macosx 3.2.100.v20110509' but it could not be found
> 
> 
> Try adding the following to your test project pom.xml (insert <version>,
> if you don't have corresponding <pluginManagement>).
> 
> 
>  <build>
>    <plugins>
>      <plugin>
>        <groupId>org.eclipse.tycho</groupId>
>        <artifactId>target-platform-configuration</artifactId>
>        <configuration>
>          <environments combine.self="override">
>          </environments>
>        </configuration>
>      </plugin>
>    </plugins>
>  </build>
When I do that I get:

!ENTRY org.eclipse.osgi 4 0 2011-11-29 12:47:59.109
!MESSAGE An error occurred while automatically activating bundle org.eclipse.ui.workbench (147).
!STACK 0
org.osgi.framework.BundleException: The activator org.eclipse.ui.internal.WorkbenchPlugin for bundle org.eclipse.ui.workbench is invalid
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:171)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
…
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
        at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
        at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
        at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
        at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
        at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:191)
        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:344)
        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:622)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Caused by: java.lang.NoClassDefFoundError: org/eclipse/swt/SWTError
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
        at java.lang.Class.getConstructor0(Class.java:2699)
        at java.lang.Class.newInstance0(Class.java:326)
        at java.lang.Class.newInstance(Class.java:308)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:166)
        ... 34 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.SWTError
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        ... 40 more

If I actually go and physically remove the other target platforms in my parent:

 <plugin>
                                <groupId>org.eclipse.tycho</groupId>
                                <artifactId>target-platform-configuration</artifactId>
                                <version>${tychoVersion}</version>
                                <configuration>
                                        <resolver>p2</resolver>
                                        <ignoreTychoRepositories>true</ignoreTychoRepositories>
                                        <environments>
                                                <environment>
                                                        <os>macosx</os>
                                                        <ws>cocoa</ws>
                                                        <arch>x86</arch>
                                                </environment>
                                        </environments>
                                </configuration>
                        </plugin>


Then it works!

That is just weird because we got other stuff that is os specific.

/max



> 
> 
> This should tell Tycho to only resolve test project's dependencies for
> the current os/ws/arch. If this helps, please open a bugreport, Tycho
> should only resolve test runtime for the current system's os/ws/arch.
> 
> --
> Regards,
> Igor
> 
> 
> On 11-11-28 7:45 PM, Max Rydahl Andersen wrote:
>>> You should see way more logs
>> 
>> Yeah, I got it now.
>> 
>>> For p2 you should see entire resolver data flow, separately for each os/ws/arch combo enabled in target resolver configuration
>>> * Available IUs: shows all installable units visible to the project
>> 
>> Yes, launching.macosx is listed here
>>> * Root IUs: shows project installable unit(s)
>> 
>> 
>> Yes, launching.macosx is listed here
>> 
>>> * Extra IUs: shows installable units generated from<dependency/>
>>> elements
>> 
>> 
>> Yes, launching.macosx is listed here
>> 
>>> * Slice: shows installable units "reachable" from the root and extra IUs
>> 
>> its not listed here and then I get the error about it being non resolvable with no explanation ;(
>> 
>> I've taken the liberty to attach my raw log file for the output in case you can spot anything out of the ordinary.
>> 
>> Note, i've got rid of the object team feature problem so now i'm just trying to grok why it won't install this plugin ;(
>> 
>> I also tried the trick about only enabling it conditionally in a profile but when I did that it never gets attempted to be installed (which surprises me)
>> 
>> 
>> 
>> 
>> 
>> 
>>> * Resolved IUs: shows IUs after resolving all conflicts and duplicates
>>> 
>>> 
>>> For equinox
>>> * Resolved OSGi state: resolved OSGi state, i.e. RESOLVED lines you see
>>> 
>>> --
>>> Regards,
>>> Igor
>>> 
>>> On 11-11-28 10:32 AM, Max Rydahl Andersen wrote:
>>>>>>> Running the build with -X -Dtycho.debug.resolver=<artifactId>    will
>>>>>>> provide detailed information about dependency resolution, starting with
>>>>>>> all installable units visible to the project.
>>>>>> 
>>>>>> Okey, I'll try see what that will give me.
>>>>>> 
>>>>>> I looked in the code and I couldn't find a place where tycho.debug.resolver was used for anything beyond a boolean flag.
>>>>>> Where is the artifactid taken into account ?
>>>>>> 
>>>>> 
>>>>> DebugUtils checks for project artifactId
>>>>> 
>>>>> http://git.eclipse.org/c/tycho/org.eclipse.tycho.git/tree/tycho-core/src/main/java/org/eclipse/tycho/core/osgitools/DebugUtils.java
>>>> 
>>>> 
>>>> Ah gothca!
>>>> 
>>>> Thought you mean tycho.debug.resolver=<pluginid>   so I had tycho.debug.resolver=org.eclipse.jdt.launching.macosx and saw no diff output.
>>>> 
>>>> With tycho.debug.resolver=<my project artifactid>   I get a lot of RESOLVED: lines - I assume that is what you referenced to?
>>>> 
>>>> /max
>>>> http://about.me/maxandersen
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> tycho-user mailing list
>>>> tycho-user@xxxxxxxxxxx
>>>> https://dev.eclipse.org/mailman/listinfo/tycho-user
>>> _______________________________________________
>>> tycho-user mailing list
>>> tycho-user@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/tycho-user
>> 
>> /max
>> http://about.me/maxandersen
>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> tycho-user mailing list
>> tycho-user@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/tycho-user
> _______________________________________________
> tycho-user mailing list
> tycho-user@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/tycho-user

/max
http://about.me/maxandersen





Back to the top