[izpack-users] Custom Actions, NPE when running installer, ca.listenerName == null

Scott Plante splante at insightsys.com
Wed Mar 7 18:31:00 CET 2007


Sorry, nevermind. I didn't realize the name of the listener had to match 
the name of the class, excluding the package.
Scott

Scott Plante wrote:
> Hi,
>  I tried to create my first custom action. I think I followed the 
> instructions in the build:
> file://$IZPACK_HOME/doc/izpack/xhtml/node9.html#SECTION00931000000000000000 
>
> although I wasn't clear about the instruction to create an antcall 
> target="compile.listener.simple" since there is no such target in the 
> build.xml file. Also, it's not clear where in the build.xml to add 
> said antcall. I figured this might be outdated doc, since below in the 
> example, it shows to change the lines around the "CUSTOM ACTION test 
> START" comment, which I did.
>
>  I'm successfully creating my bin/customAction/ZyInstallListener.jar 
> file and the installer gets created without any obvious errors, 
> however when I run the installer I get an immediate stack trace.
>
> java.lang.NullPointerException
>        at java.lang.Class.forName0(Native Method)
>        at java.lang.Class.forName(Class.java:164)
>        at 
> com.izforge.izpack.installer.InstallerBase.loadCustomData(InstallerBase.java:356) 
>
>        at 
> com.izforge.izpack.installer.InstallerBase.loadInstallData(InstallerBase.java:218) 
>
>        at 
> com.izforge.izpack.installer.GUIInstaller.<init>(GUIInstaller.java:110)
>        at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>        at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
>
>        at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
>
>        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>        at java.lang.Class.newInstance0(Class.java:350)
>        at java.lang.Class.newInstance(Class.java:303)
>        at com.izforge.izpack.installer.Installer.main(Installer.java:62)
>
>  I've traced this problem down to this code in 
> src/lib/com/izforge/izpack/installer/InstallerBase.java:
>                case CustomData.INSTALLER_LISTENER:
>                   Class clazz = Class.forName(ca.listenerName);
>                    if (clazz == null)
>                        throw new InstallerException("Custom action "
>                            + ca.listenerName + " not bound!");
>                    out[ca.type].add(clazz.newInstance());
>                    break;
>
> The 'ca' comes out the "/customData" serialized object. I added a 
> debug line and ca.listenerName is null.
>
> Does anyone have any advice?
>
> Thanks,
>




More information about the izpack-users mailing list