Environment
Novell iManager 2.7
Situation
ERROR:
Min-iManager-Version: Is missing, this is a required field that
must be set in the manifest file.
ERROR: String index out of range: 0
ERROR: Unknown system error
- Unable to import newly created custom plugin using Plugin Studio for iManager 2.7 Workstation and Server versions across all platforms.
ERROR: String index out of range: 0
ERROR: Unknown system error
- Unable to import newly created custom plugin using Plugin Studio for iManager 2.7 Workstation and Server versions across all platforms.
Resolution
There are multiple problems to discuss here and this document
attempts to explain all of them with suitable workarounds as and
when applicable. The problems have been reported to Engineering and
in future versions of iManager 2.7 it should be possible to obtain
the import and export functionality from Plugin Studio without the
need for any of these workarounds.
Problem 1: Missing "Min-iManager-Version" line in the MANIFEST.MF file of the exported npm. This prevents the exported plugins to be re imported to Plugin Studio.
Workaround: Unzip the NPM and add the following line to the MANIFEST.MF file manually and use ZIP utility to create the NPM again. The import should be successful now.
"Min-iManager-Version: 2.6.0"
The new MANIFEST.MF looks like the following:
Module-ID: custom
Implementation-Title: Custom Plugins
Implementation-Description: Custom plugins created using iManager development tools.
Implementation-Version: 1.0.0
Min-iManager-Version: 2.6.0
Problem 2: After changing the manifest.mf file, attempts to import the new plugin cause the "String index out of range: 0" error.
Workaround: None. However, the imported plugin does appear in the plugin list. As noted above, this has been reported as a bug.
Problem 3: On editing the plugin imported above, iManager 2.7 Plugin Studio throws an "Unknown System Error"
Workaround: Unzip the NPM again and re zip it after doing the following changes:
- Rename the "plugins2008xxxxx_xxxx.xml" file to "plugins.xml".
This file is found in the/currentwebapp/portal/modules/custom/plugins/
directory. The "xxxxx" characters are a reference to the date and
time the plugin was created.
- Edit the plugins.xml file from above to remove the reference to date and time the plugin was created.
- Rename the_xxxxxx_xxxxxx.jsp file to.jsp.
This file is found in the/currentwebapp/portal/modules/custom/skins/default/devices/default/
directory. The "xxxxx" characters are a reference to the date and
time the plugin was created.
The editing of the plugin should be successful now after the re zipped NPM has been imported.
Problem 1: Missing "Min-iManager-Version" line in the MANIFEST.MF file of the exported npm. This prevents the exported plugins to be re imported to Plugin Studio.
Workaround: Unzip the NPM and add the following line to the MANIFEST.MF file manually and use ZIP utility to create the NPM again. The import should be successful now.
"Min-iManager-Version: 2.6.0"
The new MANIFEST.MF looks like the following:
Module-ID: custom
Implementation-Title: Custom Plugins
Implementation-Description: Custom plugins created using iManager development tools.
Implementation-Version: 1.0.0
Min-iManager-Version: 2.6.0
Problem 2: After changing the manifest.mf file, attempts to import the new plugin cause the "String index out of range: 0" error.
Workaround: None. However, the imported plugin does appear in the plugin list. As noted above, this has been reported as a bug.
Problem 3: On editing the plugin imported above, iManager 2.7 Plugin Studio throws an "Unknown System Error"
Workaround: Unzip the NPM again and re zip it after doing the following changes:
- Rename the "plugins2008xxxxx_xxxx.xml" file to "plugins.xml".
This file is found in the
- Edit the plugins.xml file from above to remove the reference to date and time the plugin was created.
- Rename the
This file is found in the
The editing of the plugin should be successful now after the re zipped NPM has been imported.
Status
Reported to EngineeringAdditional Information
If iManager 2.7 debug logging has been turned on to include all
errors, warnings and debug messages, the following exceptions will
appear in the debug.html file generated for the different problems
highlighted above:
Problem 1.
02/29/08 [16:21:21.327] FwUtils............2835 === Does this Module Meet Criteria? ===
02/29/08 [16:21:21.327] FwUtils............2839 Module-ID: custom (OK)
02/29/08 [16:21:21.328] FwUtils............2850 Implementation-Title: Custom Plugins (OK)
02/29/08 [16:21:21.328] FwUtils............2866 Implementation-Version: 1.0.0 (OK)
02/29/08 [16:21:21.329] FwUtils............2907 Min-iManager-Version: Is missing, this is a required field that must be set in the manifest file.
02/29/08 [16:21:21.329] FwUtils............2936 Max-iManager-Version: Has not been set. (OK)\
02/29/08 [16:21:21.330] FwUtils............2956 OS Supported: LinuxWorkstation (YES)
02/29/08 [16:21:21.330] FwUtils............2971 --------------------------------------------------------
02/29/08 [16:21:21.330] FwUtils............2972 Discarding: Module DOESN'T Meet Criteria!
Problem 2:
java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.lang.String.charAt(String.java:558) com.novell.admin.ns.nds.jclient.NDSNamespaceImpl.doesExist(NDSNamespaceImpl.java:1631)at com.novell.emframe.fw.util.RBSObjectInstaller.createTheRBSModuleContainer(RBSObjectInstaller.java:121)at com.novell.emframe.fw.util.RBSObjectInstaller.install(RBSObjectInstaller.java:92)at com.novell.emframe.fw.util.RBSObjectInstaller.install(RBSObjectInstaller.java:82)at com.novell.emframe.fw.studio.PluginParams.runRbsInstaller(PluginParams.java:801)at com.novell.emframe.fw.studio.StudioOverview.execute(StudioOverview.java:167)at com.novell.emframe.fw.MTaskWrapper.processRequestImpl(MTaskWrapper.java:136)
Problem 3:
java.lang.NullPointerException\n
at com.novell.emframe.fw.studio.CreateCustomPlugin.stateDoCopy(CreateCustomPlugin.java:255)\n
at com.novell.emframe.fw.studio.CreateCustomPlugin.execute(CreateCustomPlugin.java:156)\n
at com.novell.emframe.dev.Task.execute(Task.java:505)\n at com.novell.nps.gadgetManager.BaseGadgetInstance.processRequest(BaseGadgetInstance.java:849)\n
at com.novell.nps.gadgetManager.GadgetManager.delegateToGadget(GadgetManager.java:4253)\n
at com.novell.nps.gadgetManager.LaunchService.onDelegateAction(LaunchService.java:86)\n
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n
at java.lang.reflect.Method.invoke(Method.java:585)\nat com.novell.nps.gadgetManager.BaseGadgetInstance.handleAction(BaseGadgetInstance.java:2362)\n
at com.novell.nps.gadgetManager.GadgetManager.processInstanceRequest(GadgetManager.java:1606)\n
at com.novell.nps.gadgetManager.GadgetManager.processServiceRequest(GadgetManager.java:1062)\n
at com.novell.nps.PortalServlet.handleFrameService(PortalServlet.java:505)\n
at com.novell.nps.PortalServlet.processRequest
Problem 1.
02/29/08 [16:21:21.327] FwUtils............2835 === Does this Module Meet Criteria? ===
02/29/08 [16:21:21.327] FwUtils............2839 Module-ID: custom (OK)
02/29/08 [16:21:21.328] FwUtils............2850 Implementation-Title: Custom Plugins (OK)
02/29/08 [16:21:21.328] FwUtils............2866 Implementation-Version: 1.0.0 (OK)
02/29/08 [16:21:21.329] FwUtils............2907 Min-iManager-Version: Is missing, this is a required field that must be set in the manifest file.
02/29/08 [16:21:21.329] FwUtils............2936 Max-iManager-Version: Has not been set. (OK)\
02/29/08 [16:21:21.330] FwUtils............2956 OS Supported: LinuxWorkstation (YES)
02/29/08 [16:21:21.330] FwUtils............2971 --------------------------------------------------------
02/29/08 [16:21:21.330] FwUtils............2972 Discarding: Module DOESN'T Meet Criteria!
Problem 2:
java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.lang.String.charAt(String.java:558) com.novell.admin.ns.nds.jclient.NDSNamespaceImpl.doesExist(NDSNamespaceImpl.java:1631)at com.novell.emframe.fw.util.RBSObjectInstaller.createTheRBSModuleContainer(RBSObjectInstaller.java:121)at com.novell.emframe.fw.util.RBSObjectInstaller.install(RBSObjectInstaller.java:92)at com.novell.emframe.fw.util.RBSObjectInstaller.install(RBSObjectInstaller.java:82)at com.novell.emframe.fw.studio.PluginParams.runRbsInstaller(PluginParams.java:801)at com.novell.emframe.fw.studio.StudioOverview.execute(StudioOverview.java:167)at com.novell.emframe.fw.MTaskWrapper.processRequestImpl(MTaskWrapper.java:136)
Problem 3:
java.lang.NullPointerException\n
at com.novell.emframe.fw.studio.CreateCustomPlugin.stateDoCopy(CreateCustomPlugin.java:255)\n
at com.novell.emframe.fw.studio.CreateCustomPlugin.execute(CreateCustomPlugin.java:156)\n
at com.novell.emframe.dev.Task.execute(Task.java:505)\n at com.novell.nps.gadgetManager.BaseGadgetInstance.processRequest(BaseGadgetInstance.java:849)\n
at com.novell.nps.gadgetManager.GadgetManager.delegateToGadget(GadgetManager.java:4253)\n
at com.novell.nps.gadgetManager.LaunchService.onDelegateAction(LaunchService.java:86)\n
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n
at java.lang.reflect.Method.invoke(Method.java:585)\nat com.novell.nps.gadgetManager.BaseGadgetInstance.handleAction(BaseGadgetInstance.java:2362)\n
at com.novell.nps.gadgetManager.GadgetManager.processInstanceRequest(GadgetManager.java:1606)\n
at com.novell.nps.gadgetManager.GadgetManager.processServiceRequest(GadgetManager.java:1062)\n
at com.novell.nps.PortalServlet.handleFrameService(PortalServlet.java:505)\n
at com.novell.nps.PortalServlet.processRequest