Issue1070

classification
Title: Standalone crashes with ZipException
Type: crash Severity: normal
Components: Installer Versions: 2.5alpha1
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: otmarhumbel Nosy List: ReneLeonhardt, fwierzbicki, gdoutch, otmarhumbel
Priority: Keywords:

Created on 2008-07-16.06:15:39 by ReneLeonhardt, last changed 2008-09-13.16:54:50 by fwierzbicki.

Files
File name Uploaded Description Edit Remove
remove_duplicates_from_zip.py ReneLeonhardt, 2008-09-07.17:47:58 List and remove duplicate entries from ZIP/JAR archive
Messages
msg3332 (view) Author: (ReneLeonhardt) Date: 2008-07-16.06:15:38
WinXP SP2 german, Java 1.6.0_07-b06

java -jar jython_installer-2.5a1.jar -s -d jython25.s -t standalone

...
150 %
Das standalone jython-complete.jar File wird erstellt ...
org.python.util.install.InstallerException: Problem beim Zugriff auf das
jar File
  at org.python.util.install.JarInstaller.inflate(JarInstaller.java:156)
  at
org.python.util.install.ConsoleInstaller.install(ConsoleInstaller.java:58)
  at
org.python.util.install.Installation.internalMain(Installation.java:322)
  at org.python.util.install.Installation.main(Installation.java:41)
Caused by: java.util.zip.ZipException: duplicate entry:
org/python/core/PyArray.class
  at java.util.zip.ZipOutputStream.putNextEntry(Unknown Source)
  at java.util.jar.JarOutputStream.putNextEntry(Unknown Source)
  at
org.python.util.install.StandalonePackager.addJarFile(StandalonePackager.java:92)
  at org.python.util.install.JarInstaller.inflate(JarInstaller.java:143)
  ... 3 more
msg3336 (view) Author: Gareth Doutch (gdoutch) Date: 2008-07-16.11:44:04
I have also seen this on winXP and win2K.
msg3340 (view) Author: Gareth Doutch (gdoutch) Date: 2008-07-16.21:43:18
Also seen on ubuntu linux 8.04
msg3484 (view) Author: (ReneLeonhardt) Date: 2008-09-07.17:47:58
The problem still exists in 2.5a2.

I wrote a small python script to remove the 55 duplicates files from
jython_installer-2.5a2\jython-complete.jar:
org/python/core/PyArray.class
org/python/core/PyBaseException.class
org/python/core/PyBaseString.class
org/python/core/PyBoolean.class
org/python/core/PyBuiltinFunction.class
org/python/core/PyCell.class
org/python/core/PyClassMethod.class
org/python/core/PyClassMethodDescr.class
org/python/core/PyComplex.class
org/python/core/PyDataDescr.class
org/python/core/PyDictProxy.class
org/python/core/PyDictionary.class
org/python/core/PyEllipsis.class
org/python/core/PyEnumerate.class
org/python/core/PyFile.class
org/python/core/PyFloat.class
org/python/core/PyFrozenSet.class
org/python/core/PyFunction.class
org/python/core/PyInteger.class
org/python/core/PyList.class
org/python/core/PyLong.class
org/python/core/PyMethod.class
org/python/core/PyMethodDescr.class
org/python/core/PyModule.class
org/python/core/PyNone.class
org/python/core/PyObject.class
org/python/core/PyProperty.class
org/python/core/PySet.class
org/python/core/PySlice.class
org/python/core/PySlot.class
org/python/core/PyStaticMethod.class
org/python/core/PyString.class
org/python/core/PySuper.class
org/python/core/PyTuple.class
org/python/core/PyType.class
org/python/core/PyUnicode.class
org/python/core/PyXRange.class
org/python/modules/PyTeeIterator.class
org/python/modules/_codecs$EncodingMap.class
org/python/modules/_collections/PyDefaultDict.class
org/python/modules/_collections/PyDeque.class
org/python/modules/_csv/PyDialect.class
org/python/modules/_csv/PyReader.class
org/python/modules/_csv/PyWriter.class
org/python/modules/_functools/PyPartial.class
org/python/modules/_hashlib$Hash.class
org/python/modules/_weakref/CallableProxyType.class
org/python/modules/_weakref/ProxyType.class
org/python/modules/_weakref/ReferenceType.class
org/python/modules/operator$PyAttrGetter.class
org/python/modules/operator$PyItemGetter.class
org/python/modules/random/PyRandom.class
org/python/modules/thread/PyLocal.class
org/python/modules/time/PyTimeTuple.class
org/python/modules/zipimport/zipimporter.class

Afterwards I could at least start the "real" installation process which
immediately ended with an Exception:

Exception in thread "main" java.lang.NoClassDefFoundError:
org/python/util/install/Installation
Caused by: java.lang.ClassNotFoundException:
org.python.util.install.Installation

The org.python.util directory even has no subfolders.
msg3491 (view) Author: Oti Humbel (otmarhumbel) Date: 2008-09-08.16:40:24
it sounds like jython-complete.jar has duplicate entries, or the
installer for standalone mode wants to insert an already present entry.

Regarding http://bugs.jython.org/msg3484: If jython-complete.jar is
changed, you have to jar it into the installer jar again, and run the
installer from there.
msg3494 (view) Author: (ReneLeonhardt) Date: 2008-09-09.05:16:35
As I already wrote, just extract jython-complete.jar from
jython_installer-2.5a2.jar and look into it, you will find the 55 listed
duplicates.

The ClassNotFoundException occured after I reintegrated the
duplicate-free jython-complete.jar into the installer again.

Real testing can only start after you would provide an installer without
duplicates like in issue1077.
msg3495 (view) Author: Oti Humbel (otmarhumbel) Date: 2008-09-09.05:41:18
Yes, the goal is to have a duplicate free jython-complete.jar.
I am working on that.
Sorry to have misunderstood you.
msg3499 (view) Author: (ReneLeonhardt) Date: 2008-09-11.05:26:10
Standalone installation works again with jython_installer-2.5a3.jar,
thank you very much!

Please update the Versions select box in the issue tracker to include
alpha 2 and 3.
msg3507 (view) Author: Frank Wierzbicki (fwierzbicki) Date: 2008-09-13.16:54:50
Fixed as of alpha3
History
Date User Action Args
2008-09-13 16:54:50fwierzbickisetstatus: open -> closed
nosy: + fwierzbicki
resolution: fixed
messages: + msg3507
2008-09-11 05:26:11ReneLeonhardtsetmessages: + msg3499
2008-09-09 05:41:18otmarhumbelsetmessages: + msg3495
2008-09-09 05:16:36ReneLeonhardtsetmessages: + msg3494
2008-09-08 16:40:24otmarhumbelsetassignee: otmarhumbel
messages: + msg3491
nosy: + otmarhumbel
2008-09-07 17:47:59ReneLeonhardtsetfiles: + remove_duplicates_from_zip.py
messages: + msg3484
2008-07-16 21:43:18gdoutchsetmessages: + msg3340
2008-07-16 11:44:04gdoutchsetnosy: + gdoutch
messages: + msg3336
2008-07-16 06:15:39ReneLeonhardtcreate