I followed the steps in the DS 1.4 Dev Guide in Chapter 3.3 to create an extension based on a project I have successfully tested by running the eclipse application in DS. The component file is created successfully, and it looks exactly like a functional component I built in 1.3. However, when I try to install the extension in DS, I get an error message:
I get an exception in the error console:
Unknown category 'null' referenced by connector 'SampleProcopFeature.feature.group' declared in jar:file:/C:/eclipse/ds_sdk/features/ProcopSample2.zip!/
Which turns up very little on Google, but seems to indicate a problem with the category.xml. Here is my category definition:
Here is the full stack trace:
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException: while trying to invoke the method java.lang.String.contains(java.lang.CharSequence) of a null object loaded from local variable 'categoryId')
at org.eclipse.swt.SWT.error(SWT.java:4397)
at org.eclipse.swt.SWT.error(SWT.java:4312)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:138)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4145)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3762)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:826)
at org.eclipse.jface.window.Window.open(Window.java:802)
at com.sap.ip.bi.zen.ui.internal.util.SdkHelper.installExtension(SdkHelper.java:126)
at com.sap.ip.bi.zen.ui.internal.util.SdkHelper.showInstallExtensionDialog(SdkHelper.java:95)
at com.sap.ip.bi.zen.ui.backendspecific.BackendSpecificUiHandlerAdapter$1.widgetSelected(BackendSpecificUiHandlerAdapter.java:111)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at com.sap.ip.bi.zen.ui.internal.application.ZenApplication.start(ZenApplication.java:37)
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)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Caused by: java.lang.NullPointerException: while trying to invoke the method java.lang.String.contains(java.lang.CharSequence) of a null object loaded from local variable 'categoryId'
at com.sap.ip.bi.zen.ui.internal.util.SdkHelper$2.select(SdkHelper.java:112)
at org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogViewer.doFilter(CatalogViewer.java:426)
at org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogViewer$Filter.select(CatalogViewer.java:123)
at org.eclipse.jface.viewers.ViewerFilter.filter(ViewerFilter.java:51)
at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:921)
at org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(StructuredViewer.java:1067)
at org.eclipse.equinox.internal.p2.ui.discovery.util.ControlListViewer.refreshAll(ControlListViewer.java:470)
at org.eclipse.equinox.internal.p2.ui.discovery.util.ControlListViewer.inputChanged(ControlListViewer.java:354)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
at org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogViewer.catalogUpdated(CatalogViewer.java:242)
at org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogViewer.updateCatalog(CatalogViewer.java:591)
at org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogPage$2.run(CatalogPage.java:78)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
... 34 more
Would appreciate any insights as I'm scratching my head on this one...