Problems importing and exporting custom plugins using Plugin Studio

  • 3623503
  • 26-Mar-2008
  • 26-Apr-2012


Novell iManager 2.7


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.


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 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.


Reported to Engineering

Additional 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( com.novell.admin.ns.nds.jclient.NDSNamespaceImpl.doesExist( com.novell.emframe.fw.util.RBSObjectInstaller.createTheRBSModuleContainer( com.novell.emframe.fw.util.RBSObjectInstaller.install( com.novell.emframe.fw.util.RBSObjectInstaller.install( com.novell.emframe.fw.MTaskWrapper.processRequestImpl(

Problem 3:

at\n at com.novell.nps.gadgetManager.BaseGadgetInstance.processRequest(\n
at com.novell.nps.gadgetManager.GadgetManager.delegateToGadget(\n
at com.novell.nps.gadgetManager.LaunchService.onDelegateAction(\n
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(\n
at sun.reflect.DelegatingMethodAccessorImpl.invoke(\n
at java.lang.reflect.Method.invoke(\nat com.novell.nps.gadgetManager.BaseGadgetInstance.handleAction(\n
at com.novell.nps.gadgetManager.GadgetManager.processInstanceRequest(\n
at com.novell.nps.gadgetManager.GadgetManager.processServiceRequest(\n
at com.novell.nps.PortalServlet.handleFrameService(\n
at com.novell.nps.PortalServlet.processRequest