Showing results for 
Show  only  | Search instead for 
Did you mean: 
Level 3

CustomCodeAction with Dependencies on Signed Jar - Maintenance mode errors

Hi there,

For an installer I have created for Windows I am experiencing an error which only seems to occur running custom code action during maintenance/repair mode. It seems this same custom code runs fine when used during the install process but crashes and freezes when it's used as a step during maintenance/repair mode.

The custom code is run from a jar (unsigned) and has dependencies upon two singed jars which I have specified in the IA's 'execute custom code' GUI dependencies panel.

The stack trace I see in the debug output log is:

Exception in thread "Thread-21" java.lang.NullPointerException
at Source)
at com.zerog.ia.installer.AAMgr.b(DashoA10*..)
at ZeroGd.a(DashoA10*..)
at com.zerog.ia.installer.actions.CustomAction.getVisualNameSelf(DashoA10*..)
at com.zerog.ia.installer.InstallablePiece.getLogDescription(DashoA10*..)
at com.zerog.ia.installer.IAStatus.(DashoA10*..)
at com.zerog.ia.installer.IAStatus.(DashoA10*..)

Any pointers as to why this maybe occurring?

Many thanks
Labels (1)
0 Kudos
(3) Replies
Level 4

We had the same problem when doing a modify. The only solution available to us was to unsign the jars which were the dependencies. Still looking for a real solution to the problem....
0 Kudos
Level 20

I think this is an old feature request for IA to support signed jars. It looks like it hasn't been implemented yet.
0 Kudos
Level 3

Well the published feature list and help info for IA 2011 is slightly misleading then. The feature list mentions " "Signed" Installations - Installers now have the ability to have custom code archives or their dependencies as signed JARS...". They don't explicitly mention "repair-mode" support, but the term 'installer' should apply to all runtime modes of an installer.

Our workaround was to use the 'Execute Command' action to invoke our required functionality by exposing it via a public static main method. Less straightforward given you then have to manually build a command line string, setting classpath and main args strings which then have to be parsed, but it's the only alternative we've found.
0 Kudos