| Summary: | PDE headless product build NPE when used with multi-os spec Bundle-NativeCode. | ||
|---|---|---|---|
| Product: | [Eclipse Project] PDE | Reporter: | Tim Cook <cook> |
| Component: | Build | Assignee: | pde-build-inbox <pde-build-inbox> |
| Status: | CLOSED DUPLICATE | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | aleksander.bandelj, curtis.windatt.public |
| Version: | 4.4 | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows 8 | ||
| Whiteboard: | |||
*** This bug has been marked as a duplicate of bug 435407 *** |
In 4.4M5 a headless product build throws the following NPE when used with Bundle-NativeCode. A change to NativeCodeSpecificationImpl.isSatisfiedBy() isn't accounting for osName (line 88) becoming null when the config specification is "configs=win32,win32,x86" and you have multiple osname's in the Bundle-NativeCode. This is due to platformOS returning null (line 73) because platformProps only contains "{org.osgi.framework.processor=x86, org.osgi.framework.os.name=win32, osgi.os=win32, osgi.arch=x86, osgi.ws=win32}" and "Linux" is missing due to the config specification. Bundle-NativeCode: native/linux/x86/libAjni.so; osname=Linux; processor=x86, native/linux/x86_64/libAjni.so; osname=Linux; processor=x86-64, native/windows/x86/hxAjni.dll; osname=Win32; processor=x86, native/windows/x86_64/hxAjni.dll; osname=Win32; processor=x86-64, native/windows/x86/hxAjni.dll; osname=Windows 8; processor=x86, native/windows/x86_64/hxAjni.dll; osname=Windows 8; processor=x86-64 Caused by: java.lang.NullPointerException at org.eclipse.osgi.internal.resolver.NativeCodeSpecificationImpl.isSatisfiedBy(NativeCodeSpecificationImpl.java:88) at org.eclipse.osgi.internal.module.ResolverImpl.isResolvable(ResolverImpl.java:285) at org.eclipse.osgi.internal.module.ResolverImpl.resolveBundles(ResolverImpl.java:639) at org.eclipse.osgi.internal.module.ResolverImpl.resolve(ResolverImpl.java:477) at org.eclipse.osgi.internal.resolver.StateImpl.resolve(StateImpl.java:545) at org.eclipse.osgi.internal.resolver.StateImpl.resolve(StateImpl.java:605) at org.eclipse.pde.internal.build.site.PDEState.resolveState(PDEState.java:482) at org.eclipse.pde.internal.build.site.BuildTimeSite.getRegistry(BuildTimeSite.java:155) at org.eclipse.pde.internal.build.AbstractScriptGenerator.findFile(AbstractScriptGenerator.java:472) at org.eclipse.pde.internal.build.AbstractScriptGenerator.loadProduct(AbstractScriptGenerator.java:439) at org.eclipse.pde.internal.build.AbstractScriptGenerator.loadProduct(AbstractScriptGenerator.java:432) at org.eclipse.pde.internal.build.FeatureGenerator.initialize(FeatureGenerator.java:284) at org.eclipse.pde.internal.build.FeatureGenerator.generate(FeatureGenerator.java:137) at org.eclipse.pde.internal.build.tasks.FeatureGeneratorTask.run(FeatureGeneratorTask.java:55) at org.eclipse.pde.internal.build.tasks.FeatureGeneratorTask.execute(FeatureGeneratorTask.java:37) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)