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

Upgrade from 2008 - uninstaller problem

Hi

We have just upgraded from the 2008 Enterprise edition to 2010. One feature we were looking forward to is the ability to customise the uninstall process for each product feature/component. In our 2008 project, there are various Execute Command actions in the Pre-Uninstall section eg "taskkill /im xyztray.exe /f" but we need to only run various commands depending on what feature is being uninstalled.

So, in 2010, we want to move these actions to the Uninstall panel so they can be assigned to features/components. We created a new Category at the very top of the Uninstall tree. If we copy the exact command which worked in 2008 and add it to the new uninstall category in the migrated 2010 version of the project, the command just does not run when doing an uninstall. We can add a Message Dialog (assigned to the same component/feature) and that pops up just fine.

We can copy the execute command action to the Pre-Uninstall panel in the 2010 version and it runs fine there too (but it cannot be assigned to a feature/component).

So, any clues as to why an Execute Command action will run when added to the Pre-Uninstall panel but will not run when placed in a new category on the Uninstall panel (the category is 1st in the tree)? A Message Dialog displays just fine.
Labels (1)
0 Kudos
(8) Replies
jijujacob27
Level 6

Hi ibooth,

We tried out the scenario that you detailed in your post below.

"Create a project in IA 2008 and then migrate the project and then copy the Execute Command in Pre Uninstall phase to a top level category in Uninstall phase in IA 2010"

This works fine for us here. Can you re-verify the same or provide us with a IA 2008 project on which we can simulate the scenario.

Thanks,
0 Kudos
ibooth
Level 3

jijujacob27 wrote:
Hi ibooth,

We tried out the scenario that you detailed in your post below.

"Create a project in IA 2008 and then migrate the project and then copy the Execute Command in Pre Uninstall phase to a top level category in Uninstall phase in IA 2010"

This works fine for us here. Can you re-verify the same or provide us with a IA 2008 project on which we can simulate the scenario.

Thanks,


Hi, thanks very much for looking into it. I have tried a few things and I just cannot get it to work. A small test project with a few features/components works fine. So I figure it has to be related to something with the 2008 project and how it was upgraded? I can provide you with the iap_xml files for both projects, but not the files to be installed. Would that be sufficient? I have made a few unrelated changes to the 2010 project since it was upgraded. Also, the uninstall actions are specified twice - once in the Pre-Uninstall panel (where they run ok) and once in an Uninstall category where they don't seem to run. If the iap_xml files are of any help, please let me know the best way to get them to you.

On another note, with the 2010 project, when do an install and the we try and Add Features, it runs fine until it gets to the stage where shortcuts are created and we get this error in the console:

Installer: No 'sea_loc' in working directory, could not define $EXTRACTOR_EXECUTABLE$

Loading externalized properties

Exception in thread "installer" java.lang.NoClassDefFoundError: ZeroGyi
at com.zerog.ia.installer.actions.CreateShortcut.a(DashoA10*..)
at com.zerog.ia.installer.actions.CreateShortcut.a(DashoA10*..)
at com.zerog.ia.installer.actions.CreateShortcut.installSelf(DashoA10*..)
at com.zerog.ia.installer.InstallablePiece.install(DashoA10*..)
at com.zerog.ia.installer.actions.InstallDirectory.install(DashoA10*..)
at com.zerog.ia.installer.InstallablePiece.install(DashoA10*..)
at com.zerog.ia.installer.GhostDirectory.install(DashoA10*..)
at com.zerog.ia.installer.InstallablePiece.install(DashoA10*..)
at com.zerog.ia.installer.Installer.install(DashoA10*..)
at com.zerog.ia.installer.actions.InstallProgressAction.n(DashoA10*..)
at com.zerog.ia.installer.actions.ProgressPanelAction$1.run(DashoA10*..)

Caused by: java.lang.ClassNotFoundException: ZeroGyi
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 11 more

Any clues?

Thanks again for any help.
0 Kudos
ibooth
Level 3

jijujacob27 wrote:
Hi ibooth,

We tried out the scenario that you detailed in your post below.

"Create a project in IA 2008 and then migrate the project and then copy the Execute Command in Pre Uninstall phase to a top level category in Uninstall phase in IA 2010"

This works fine for us here. Can you re-verify the same or provide us with a IA 2008 project on which we can simulate the scenario.

Thanks,


Hi,

I found the problem which I do think is a bug in IA. I had to look inside the iap_xml file and found that even though the actions were shown in the GUI as being in a new category in the Uninstall panel, the xml definition of the action element contained this bit:


false


As you can see, the xml is wrong. I had to manually change the value to true and it worked. The action was cut and pasted from another place in the project (PreUninstall phase I think) and so it looks like the paste operation did not correctly mark the action as now being part of the Uninstall phase.

Luckily I have found a way around the issue. But I assume this is something that should be fixed in the product?

I am still having the issue in the previous post when trying to add a new feature. Any ideas on that one?
0 Kudos
ibooth
Level 3

ibooth wrote:
Hi,

I am still having the issue in the previous post when trying to add a new feature. Any ideas on that one?


To recap, when using the Add Feature button, it gets to the shortcut creation step and fails:

Exception in thread "installer" java.lang.NoClassDefFoundError: ZeroGyi
at com.zerog.ia.installer.actions.CreateShortcut.a(DashoA10*..)
...
Caused by: java.lang.ClassNotFoundException: ZeroGyi
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
... 11 more

I found the reason but do not know how to fix it.

The missing class (ZeroGyi) is in the IAClasses.zip file. When doing an install for the first time, this file is unpacked by IA to the temp directory and is included in the classpath of the installer. However, the InstData directory under the _PRODUCT_installation directory created as part of the install does not have this file - it only contains Execute.zip and Resource1.zip. So when the "Change Product Installation" is invoked, the classpath does not have IAClasses.zip in it and the add feature operation fails.

Any idea why IAClasses.zip is not copied across as part of an install if it is required by the Add Feature step later on?
0 Kudos
jijujacob27
Level 6

Hi,

Thanks for letting us know on those two issues. We also appreciate the amount of investigation that you have done on this item.

There were three issues in your post.
Issue #1: Cutting and pasting an action from some other phase to Uninstall phase does not mark the belongsToUninstallPhase flag as true, which is necessary for the item to be successful in Uninstall phase.

Solution: The workaround that you suggested will definitely work. On our end, we will fix this issue for the next release.

Issue #2:] There is a java.lang.NoClassDefFoundError thrown in the Add Features mode, if we try to create a shortcut.
Solution: There are no workarounds. We realize that this is a very important bug and hence will fix this on priority. The release vehicle for this fix will be communicated by Flexera Product Management.
Additional Notes: The IAClasses.zip is not placed in the uninstaller class path, instead it is the uninstaller.jar which is placed on the classpath. uninstaller.jar is a ripped down version of the IAClasses.zip.

Issue #3: Create a project in IA 2008 and then migrate the project and then copy the Execute Command in Pre Uninstall phase to a top level category in Uninstall phase in IA 2010
Notes: Please provide us this project as an attachment to this post. (When you reply , you get an advanced option > Manage Attachments)

Thanks,
0 Kudos
ibooth
Level 3

jijujacob27 wrote:
Hi,

Thanks for letting us know on those two issues. We also appreciate the amount of investigation that you have done on this item.

There were three issues in your post.
Issue #1: Cutting and pasting an action from some other phase to Uninstall phase does not mark the belongsToUninstallPhase flag as true, which is necessary for the item to be successful in Uninstall phase.

Solution: The workaround that you suggested will definitely work. On our end, we will fix this issue for the next release.

Issue #2:] There is a java.lang.NoClassDefFoundError thrown in the Add Features mode, if we try to create a shortcut.
Solution: There are no workarounds. We realize that this is a very important bug and hence will fix this on priority. The release vehicle for this fix will be communicated by Flexera Product Management.
Additional Notes: The IAClasses.zip is not placed in the uninstaller class path, instead it is the uninstaller.jar which is placed on the classpath. uninstaller.jar is a ripped down version of the IAClasses.zip.

Issue #3: Create a project in IA 2008 and then migrate the project and then copy the Execute Command in Pre Uninstall phase to a top level category in Uninstall phase in IA 2010
Notes: Please provide us this project as an attachment to this post. (When you reply , you get an advanced option > Manage Attachments)

Thanks,


Hi,

Thanks for looking into these issues.

I have discovered a workaround to issue #2. I include the IAClasses.zip from the InstallAnywhere distribution as a file in our project and copy this file to the "_$PRODUCT_NAME$_installation" directory as part of the install process. ie where uninstaller.jar is located. NB The IAClasses.zip is not copied across by InstallAnywhere so I have to include it manually in our project. I also modify the "Change $PRODUCT_NAME$ Installation.lax" file to include the IAClasses.zip in the classpath. Again, I have included this modification automatically by adding an action as part of the install process. Using this approach solves the problem and I'll use it until an official fix comes out.

Issue #3 above is really just a duplicate of Issue #1 I think. It wasn't the migration from a 2008 project that was the issue but a copy and paste of an action from some other phase to the uninstall phase. So I think Issue #3 can be closed.

I assume that I since I have registered our IA 2010 product, we will receive an email when there are official fixes for these issues available?

Thanks,
Ian
0 Kudos
chirags
Level 3

Hi Ian,

Thanks for your feedback and raising this issue. This issue has been identified as a severe issue and we will deliver a hotfix to fix this along with few other issues. We tentatively plan to release this hotfix before end of this month.

The IAclasses.zip file is not a redistributable file that can be included with your installation so unfortunately you will have to wait till the hotfix is available.

Thanks
0 Kudos
pv7721
Level 20

Chirag, there are 2 IAClasses.zip in any IA installation, one being a stripped down version of the other. It is essential to run custom code within your installer, so it has to be redistributable along the installers we create, isn't it so? Thanks!
0 Kudos