cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
tjcemc
Level 4

How to debug/trouble shoot a NullPointer at install time?

Is there a way to turn trace mode on to get more log information at install time? During the install of my product, I get several NullPointer exceptions in Macrovision Installshield classes - not mine. Other than seeing the stack trace of the NullPointerException in the installer.log, there is no way of detecting what is wrong. The difficult thing here is that is does not happen every time and only happens occassionally. Either way, when it does happen, it is in Macrovision Installshield code.

Is there a debug/trace flag that I can start my installer with?

Here are a couple stack traces that I see (which also cause my installer to stop):

Install, com.installshield.wizard.platform.win32.Win32PPKRegistryServiceImpl, err, java.lang.NullPointerException
STACK_TRACE: 20
java.lang.NullPointerException
at com.installshield.product.service.registry.VPDDef.pack(Unknown Source)
at com.installshield.product.service.registry.VPDDef.getId(Unknown Source)
at com.installshield.product.service.registry.VPDDef.saveParents(Unknown Source)
at com.installshield.product.service.registry.VPDDef.saveParents(Unknown Source)
at com.installshield.product.service.registry.VPDDef.saveSoftwareObjectCache(Unknown Source)
at com.installshield.product.service.registry.PureJavaRegistryServiceImpl.writeVPD(Unknown Source)
at com.installshield.product.service.registry.PureJavaRegistryServiceImpl.finalizeRegistry(Unknown Source)



STACK_TRACE: 21
java.lang.NullPointerException
at com.installshield.product.service.registry.PureJavaRegistryServiceImpl.getSoftwareObjectKeysWithParent(Unknown Source)
at com.installshield.product.service.registry.PureJavaRegistryServiceImpl.updateSoftwareObjectKeyVersion(Unknown Source)
at com.installshield.product.service.registry.PureJavaRegistryServiceImpl.updateSoftwareObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.installshield.wizard.service.LocalImplementorProxy.invoke(Unknown Source)
at com.installshield.wizard.service.AbstractService.invokeImpl(Unknown Source)
Labels (1)
0 Kudos
(5) Replies
HolgerSteudle
Level 2

Same problem here,
Installer runs fine on X Systems and on one i get this error. Anybody got
an idea or hint where to look? Seems to me like the Product data registry
of Installshield is corrputed on the system?

Best regards
Holger
0 Kudos
Gaurav
Level 3

I'm rather new to Installshield Multiplatform myself 🙂 and thereby i'm spending a lot of time studying it. Have you tried clearing the system, by removing the VPD! Also, are these some errors or just warnings!
0 Kudos
enanrum
Level 9

When you say, “This does not happen every time!” do you mean on re-installs - installing another product after another or uninstalling?

I'm just guessing here but you need to be careful about copying one project to another and using the same UUID’s - this is how the VPD tables store the info using these UUID’s! But the issue's I had was on un-installing!

What are you doing with Win32 to be using 'Win32PPKRegistryServiceImpl'? I had similar errors when running a windows registry update because I had an error in my reg file and the default 'Install Failure Option' was cancel and rollback the installer: try to change the component to Continue and see if whatever you were trying to do failed and then see why!! Make sure your not trying to run Windows stuff on non-window platforms! Is this a multiplatform build? Meaning your build will run on several platforms! Are you using 'Build Categories' or 'Platforms' properties in the Advaced Properties of components to make sure your not running windows actions on non-windows machines!

Other issues could be the obvious ones that I'm sure you've checked like making sure your using the correct JVM's for the platform! Are you searching for a JVM or Bundling one?

Try running the installer in log mode with the '-is:log log.txt', set the undocumented Environment variable ismpVV = 1, (at least I've never seen it), this will allow more messaging to the log!

If you do not know the VPD tables get created in the C:\Program Files\Common Files\InstallShield\Universal\common\Gen1\... - I would try moving the Gen1 to Gen1_bak and try rerunning! If on non-windows the VPD will get created in the home directory of the installee: /home/me/InstallShield/Universal/common/Gen1. I have no idea where it goes if installing as root!!!

I recommend changing the VPD Location in the Gen Info->Adv Prop to your company Name -> this will change the location to:

C:\Program Files\Common Files\InstallShield\Universal\YourCompany

Hope some of this info helps yahs!

Let us know know if any of these suggestions helped as it could help many others!

Regards,
Tom
0 Kudos
Gaurav
Level 3

Tom, I've another query, the product that I'm working on supports both Windows 32 bit and 64 bit. Is there a mean to write our own PPK for Windows 64 bit, further we need to demarcate between AMD (AMD64) and Intel (IA64). Can you suggest how to go about it.

thanks for the great reply,
0 Kudos
enanrum
Level 9

There is support for the launchers on these architectures in the Releases -> Bulild Config -> Distributions. Just create different launchers for each implementation and use the correct bundled JVM for that architecture!

Tom
0 Kudos