TrueZIP
  1. TrueZIP
  2. TRUEZIP-299

CLONE -ArrayIndexOutOfBounds when reading an Extra field

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: TrueZIP 7.6.6
    • Fix Version/s: TrueZIP 7.7.1
    • Component/s: TrueZIP Driver ZIP
    • Labels:
      None
    • Environment:

      BSD

      Description

      2012-10-19 16:25:33.127 ERROR - error occurred while archiving blob. blob will be reprocessed on server restart
      java.lang.ArrayIndexOutOfBoundsException: null
      at java.lang.System.arraycopy(Native Method)
      at net.java.truevfs.comp.zip.DefaultExtraField.readFrom(DefaultExtraField.java:48)
      at net.java.truevfs.comp.zip.ExtraFields.readFrom(ExtraFields.java:166)
      at net.java.truevfs.comp.zip.ZipEntry.setExtraFields(ZipEntry.java:611)
      at net.java.truevfs.comp.zip.ZipEntry.setRawExtraFields(ZipEntry.java:591)
      at net.java.truevfs.comp.zip.AbstractZipFile.recoverLostEntries(AbstractZipFile.java:541)
      at net.java.truevfs.comp.zipdriver.AbstractZipDriver.newInput(AbstractZipDriver.java:320)
      at net.java.truevfs.comp.zipdriver.AbstractZipDriver.newInput(AbstractZipDriver.java:45)
      at net.java.truevfs.kernel.spec.FsArchiveDriver.newInput(FsArchiveDriver.java:196)
      at net.java.truevfs.kernel.impl.TargetArchiveController.liftedTree1$1(TargetArchiveController.scala:148)
      at net.java.truevfs.kernel.impl.TargetArchiveController.mount0(TargetArchiveController.scala:147)
      at net.java.truevfs.kernel.impl.TargetArchiveController.mount(TargetArchiveController.scala:107)
      at net.java.truevfs.kernel.impl.FileSystemArchiveController$ResetFileSystem.autoMount(FileSystemArchiveController.scala:69)
      at net.java.truevfs.kernel.impl.FileSystemArchiveController.autoMount(FileSystemArchiveController.scala:36)
      at net.java.truevfs.kernel.impl.BasicArchiveController.checkAccess(BasicArchiveController.scala:55)
      at net.java.truevfs.kernel.impl.DefaultManager$BackController.net$java$truevfs$kernel$impl$SyncController$$super$checkAccess(DefaultManager.scala:161)
      at net.java.truevfs.kernel.impl.SyncController$$anonfun$checkAccess$1.apply$mcV$sp(SyncController.scala:38)
      at net.java.truevfs.kernel.impl.SyncController$$anonfun$checkAccess$1.apply(SyncController.scala:38)
      at net.java.truevfs.kernel.impl.SyncController$$anonfun$checkAccess$1.apply(SyncController.scala:38)
      at net.java.truevfs.kernel.impl.SyncController$class.net$java$truevfs$kernel$impl$SyncController$$apply(SyncController.scala:119)
      at net.java.truevfs.kernel.impl.SyncController$class.checkAccess(SyncController.scala:38)
      at net.java.truevfs.kernel.impl.DefaultManager$BackController.net$java$truevfs$kernel$impl$LockController$$super$checkAccess(DefaultManager.scala:161)
      at net.java.truevfs.kernel.impl.LockController$$anonfun$checkAccess$1.apply$mcV$sp(LockController.scala:47)
      at net.java.truevfs.kernel.impl.LockController$$anonfun$checkAccess$1.apply(LockController.scala:47)
      at net.java.truevfs.kernel.impl.LockController$$anonfun$checkAccess$1.apply(LockController.scala:47)
      at net.java.truevfs.kernel.impl.LockingStrategy.apply(LockingStrategy.scala:84)
      at net.java.truevfs.kernel.impl.LockController$class.timedReadOrWriteLocked(LockController.scala:103)
      at net.java.truevfs.kernel.impl.LockController$class.checkAccess(LockController.scala:47)
      at net.java.truevfs.kernel.impl.DefaultManager$BackController.checkAccess(DefaultManager.scala:161)
      at net.java.truevfs.kernel.impl.ArchiveControllerAdapter.checkAccess(ArchiveControllerAdapter.scala:22)
      at net.java.truevfs.kernel.spec.FsAccessOptionsController.checkAccess(FsAccessOptionsController.java:83)
      at net.java.truevfs.kernel.spec.FsDecoratingController.checkAccess(FsDecoratingController.java:53)
      at net.java.truevfs.kernel.impl.FalsePositiveArchiveController$$anonfun$checkAccess$1.apply(FalsePositiveArchiveController.scala:74)
      at net.java.truevfs.kernel.impl.FalsePositiveArchiveController$$anonfun$checkAccess$1.apply(FalsePositiveArchiveController.scala:74)
      at net.java.truevfs.kernel.impl.FalsePositiveArchiveController$TryChild$.apply(FalsePositiveArchiveController.scala:195)
      at net.java.truevfs.kernel.impl.FalsePositiveArchiveController.net$java$truevfs$kernel$impl$FalsePositiveArchiveController$$apply(FalsePositiveArchiveController.scala:172)
      at net.java.truevfs.kernel.impl.FalsePositiveArchiveController.checkAccess(FalsePositiveArchiveController.scala:74)
      at net.java.truevfs.ext.pacemaker.AspectController$$anonfun$checkAccess$1.apply$mcV$sp(AspectController.scala:37)
      at net.java.truevfs.ext.pacemaker.AspectController$$anonfun$checkAccess$1.apply(AspectController.scala:37)
      at net.java.truevfs.ext.pacemaker.AspectController$$anonfun$checkAccess$1.apply(AspectController.scala:37)
      at net.java.truevfs.ext.pacemaker.PaceController.apply(PaceController.scala:24)
      at net.java.truevfs.ext.pacemaker.AspectController.checkAccess(AspectController.scala:37)
      at net.java.truevfs.access.TFile.exists(TFile.java:1660)
      at com.stimulus.archiva.store.VolumeStoreV1.insertBlob(VolumeStoreV1.java:344)
      at com.stimulus.archiva.store.BlobStore.insertBlob(BlobStore.java:157)
      at com.stimulus.archiva.archive.ArchiveEngine.archiveBlob(ArchiveEngine.java:286)
      at com.stimulus.archiva.archive.ArchiveEngine.archiveBlob(ArchiveEngine.java:201)
      at com.stimulus.archiva.archive.ArchiveEngine.archiveBlob(ArchiveEngine.java:166)
      at com.stimulus.archiva.receive.ReceiveService.archive(ReceiveService.java:361)
      at com.stimulus.archiva.receive.ReceiveService.route(ReceiveService.java:444)
      at com.stimulus.archiva.receive.ReceiveService.processFileQueueItem(ReceiveService.java:322)
      at com.stimulus.archiva.queue.FileQueue$ProcessQueueConsumer.run(FileQueue.java:208)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:722)

        Activity

        Hide
        Christian Schlichtherle added a comment -

        The cause for this exception is invalid data in the Zip entry extra field.
        This should have been a ZipException instead of an IndexOutOfBoundsExcepion.

        Show
        Christian Schlichtherle added a comment - The cause for this exception is invalid data in the Zip entry extra field. This should have been a ZipException instead of an IndexOutOfBoundsExcepion.
        Hide
        Christian Schlichtherle added a comment -

        The issue is still present if an extra field holds less than four bytes.

        Show
        Christian Schlichtherle added a comment - The issue is still present if an extra field holds less than four bytes.
        Hide
        Christian Schlichtherle added a comment -

        Changeset: 6ee0a5235e66
        Author: Christian Schlichtherle <christian AT schlichtherle DOT de>
        Date: 2012-11-21 12:17
        Message: Fixed.
        Issue #TRUEZIP-299 - CLONE -ArrayIndexOutOfBounds when reading an Extra field

        Show
        Christian Schlichtherle added a comment - Changeset: 6ee0a5235e66 Author: Christian Schlichtherle <christian AT schlichtherle DOT de> Date: 2012-11-21 12:17 Message: Fixed. Issue # TRUEZIP-299 - CLONE -ArrayIndexOutOfBounds when reading an Extra field

          People

          • Assignee:
            Christian Schlichtherle
            Reporter:
            jamieb22
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: