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

just realized that we put -d32 to ensure it uses 32bit jam for testing, but maybe the platform configuration
sees we are running 64bit and resolves against that ?

/max

On Nov 29, 2011, at 19:50, Igor Fedorenko wrote:

> Can you attach -X -Dtycho.debug.resolver=<artufactId> log for the SWT failure?
> 
> --
> Regards,
> Igor
> 
> On 11-11-29 1:47 PM, Max Rydahl Andersen wrote:
>> 
>> every attempt I do on this causes SWT errors for me when running the tests.
>> 
>> I'm lost :(
>> 
>> /max
>> 
>> On Nov 29, 2011, at 17:26, Igor Fedorenko wrote:
>> 
>>> <environments combine.self="override">  workaround works for the small
>>> example project I setup (see attached).
>>> 
>>> For the proper solution I've opened
>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=365090
>>> 
>>> --
>>> Regards,
>>> Igor
>>> 
>>> On 11-11-29 6:51 AM, Max Rydahl Andersen wrote:
>>>>> 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
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> tycho-user mailing list
>>>> tycho-user@xxxxxxxxxxx
>>>> https://dev.eclipse.org/mailman/listinfo/tycho-user
>>> <multienv.zip>_______________________________________________
>>> 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