Menu

#297 Copy for access to handle zip files with duplicate entries

open
nobody
Access (5)
2
2013-05-15
2013-05-15
No

It is possible for zip files and other such files to contain multiple files with the same name and output location. When trying to Copy for Access such a file the following sort of error occurs:

au.gov.naa.digipres.xena.kernel.XenaException: org.xml.sax.SAXException: Problem exporting archive entry imap.jar
org.xml.sax.SAXException: Problem exporting archive entry META-INF/MANIFEST.MF
java.util.zip.ZipException: duplicate entry: META-INF/MANIFEST.MF
at au.gov.naa.digipres.xena.core.Xena.export(Xena.java:946)
at au.gov.naa.digipres.dpr.task.CopyForAccessTask.exportAipContents(CopyForAccessTask.java:489)
at au.gov.naa.digipres.dpr.task.CopyForAccessTask.performCopy(CopyForAccessTask.java:368)
at au.gov.naa.digipres.dpr.ui.task.CopyForAccessActions$PerformCopyActionProvider.doAction(CopyForAccessActions.java:509)
at au.gov.naa.digipres.dpr.util.Command.actionPerformed(Command.java:94)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6389)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3268)
at java.awt.Component.processEvent(Component.java:6154)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Component.dispatchEventImpl(Component.java:4750)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
at java.awt.Container.dispatchEventImpl(Container.java:2089)
at java.awt.Window.dispatchEventImpl(Window.java:2518)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
at java.awt.EventQueue.access$400(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.awt.EventQueue$2.run(EventQueue.java:629)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$3.run(EventQueue.java:645)
at java.awt.EventQueue$3.run(EventQueue.java:643)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:642)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Caused by: org.xml.sax.SAXException: Problem exporting archive entry imap.jar
org.xml.sax.SAXException: Problem exporting archive entry META-INF/MANIFEST.MF
java.util.zip.ZipException: duplicate entry: META-INF/MANIFEST.MF
at au.gov.naa.digipres.xena.plugin.archive.ArchiveDeNormaliser.startElement(ArchiveDeNormaliser.java:166)
at org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:551)
at au.gov.naa.digipres.xena.plugin.naa.NaaSignedAipUnwrapFilter.startElement(NaaSignedAipUnwrapFilter.java:42)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at au.gov.naa.digipres.xena.kernel.normalise.NormaliserManager.export(NormaliserManager.java:1666)
at au.gov.naa.digipres.xena.kernel.normalise.NormaliserManager.export(NormaliserManager.java:1420)
at au.gov.naa.digipres.xena.kernel.normalise.NormaliserManager.export(NormaliserManager.java:1391)
at au.gov.naa.digipres.xena.core.Xena.export(Xena.java:940)
... 41 more
Caused by: org.xml.sax.SAXException: Problem exporting archive entry META-INF/MANIFEST.MF
java.util.zip.ZipException: duplicate entry: META-INF/MANIFEST.MF
at au.gov.naa.digipres.xena.plugin.archive.ArchiveDeNormaliser.startElement(ArchiveDeNormaliser.java:166)
at org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:551)
at au.gov.naa.digipres.xena.plugin.naa.NaaSignedAipUnwrapFilter.startElement(NaaSignedAipUnwrapFilter.java:42)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at au.gov.naa.digipres.xena.kernel.normalise.NormaliserManager.export(NormaliserManager.java:1666)
at au.gov.naa.digipres.xena.kernel.normalise.NormaliserManager.export(NormaliserManager.java:1420)
at au.gov.naa.digipres.xena.kernel.normalise.NormaliserManager.export(NormaliserManager.java:1391)
at au.gov.naa.digipres.xena.plugin.archive.ArchiveDeNormaliser.startElement(ArchiveDeNormaliser.java:119)
... 57 more
Caused by: java.util.zip.ZipException: duplicate entry: META-INF/MANIFEST.MF
at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:192)
at au.gov.naa.digipres.xena.plugin.archive.ArchiveDeNormaliser.startElement(ArchiveDeNormaliser.java:151)
... 73 more

With tools such as unzip this situation is handled by prompting the user if they wish to overwrite or rename each subsequent file to be extracted which would clash with an existing file. It would be desirable for DPR to do the same.

Discussion

  • Terry O'Neill

    Terry O'Neill - 2013-05-16

    Simple zip containing two files with the same name (a.txt) but different content

     
  • Terry O'Neill

    Terry O'Neill - 2013-05-16

    Ant build file for generating zip files containing files with the same name

     

Log in to post a comment.

MongoDB Logo MongoDB