ServiceMix
  1. ServiceMix
  2. SM-1217

Deployment fails with ZipException

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.2.2
    • Fix Version/s: 3.2.2, 3.3
    • Component/s: servicemix-core
    • Labels:
      None
    • Environment:

      Windows, Java 5, SM 3.2.2-SNAPSHOT

      Description

      Deployment fails to a running instance of ServiceMix. It appears as if SM is trying to unzip a file before it is completely copied in place.

      [ServiceMix output]

      Starting Apache ServiceMix ESB: 3.2.2-SNAPSHOT

      Loading Apache ServiceMix from servicemix.xml on the CLASSPATH
      INFO - ConnectorServerFactoryBean - JMX connector available at: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
      INFO - JBIContainer - ServiceMix 3.2.2-SNAPSHOT JBI Container (ServiceMix) is starting
      INFO - JBIContainer - For help or more informations please see: http://incubator.apache.org/servicemix/
      INFO - ComponentMBeanImpl - Initializing component: #SubscriptionManager#
      INFO - jetty - Logging to org.apache.servicemix.http.jetty.JCLLogger@af17c7 via org.apache.servicemix.http.jetty.JCLLogger
      INFO - DeploymentService - Restoring service assemblies
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-bean to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-bean
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-camel to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-camel
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-cxf-bc to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-cxf-bc
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-cxf-se to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-cxf-se
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-drools to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-drools
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-eip to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-eip
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-file to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-file
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-ftp to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-ftp
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-http to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-http
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-jms to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-jms
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-jsr181 to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-jsr181
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-lwcontainer to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-lwcontainer
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-quartz to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-quartz
      1 name = quartz.properties
      INFO - SimpleThreadPool - Job execution threads will use class loader of thread: main
      INFO - QuartzScheduler - Quartz Scheduler v.1.5.2 created.
      INFO - RAMJobStore - RAMJobStore initialized.
      INFO - StdSchedulerFactory - Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
      INFO - StdSchedulerFactory - Quartz scheduler version: 1.5.2
      INFO - QuartzScheduler - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-saxon to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-saxon
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-script to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-script
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-truezip to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-truezip
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-wsn2005 to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-wsn2005
      INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-xmpp to Started
      INFO - ComponentMBeanImpl - Initializing component: servicemix-xmpp
      INFO - JBIContainer - ServiceMix JBI Container (ServiceMix) started
      INFO - JDBCAdapterFactory - Database driver recognized: [apache_derby_embedded_jdbc_driver]
      INFO - LogTask - Logging system reconfigured using file: file:/C:/sm-eclipse/workspace/ServiceMix/apache-servicemix-3.2.2-SNAPSHOT/conf/log4j.xml
      INFO - AutoDeploymentService - Directory: hotdeploy: Archive changed: processing sitews-sa-1.0.zip ...
      WARN - AutoDeploymentService - Directory: hotdeploy: Automatic install of C:\sm-eclipse\workspace\ServiceMix\apache-servicemix-3.2.2-SNAPSHOT\hotdeploy\sitews-sa-1.0.zip failed
      javax.jbi.management.DeploymentException: <?xml version="1.0" encoding="UTF-8"?>
      <jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message" version="1.0">
      <jbi-task-result>
      <frmwk-task-result>
      <frmwk-task-result-details>
      <task-result-details>
      <task-id>deploy</task-id>
      <task-result>FAILED</task-result>
      <message-type>ERROR</message-type>
      <task-status-msg>
      <msg-loc-info>
      <loc-token/>
      <loc-message>Unable to unpack archive: C:\sm-eclipse\workspace\ServiceMix\apache-servicemix-3.2.2-SNAPSHOT\hotdeploy\sitews-sa-1.0.zip</loc-message>
      </msg-loc-info>
      </task-status-msg>
      <exception-info>
      <nesting-level>1</nesting-level>
      <loc-token/>
      <loc-message>java.util.zip.ZipException: The process cannot access the file because it is being used by another process</loc-message>
      <stack-trace><![CDATA[javax.jbi.management.DeploymentException: java.util.zip.ZipException: The process cannot access the file because it is being used by another process

      at org.apache.servicemix.jbi.framework.AutoDeploymentService.unpackLocation(AutoDeploymentService.java:595)

      at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:228)

      at org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:647)

      at org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:60)

      at org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:611)

      at java.util.TimerThread.mainLoop(Timer.java:512)

      at java.util.TimerThread.run(Timer.java:462)

      Caused by: java.util.zip.ZipException: The process cannot access the file because it is being used by another process

      at java.util.zip.ZipFile.open(Native Method)

      at java.util.zip.ZipFile.<init>(ZipFile.java:203)

      at java.util.zip.ZipFile.<init>(ZipFile.java:234)

      at org.apache.servicemix.jbi.util.FileUtil.archiveContainsEntry(FileUtil.java:174)

      at org.apache.servicemix.jbi.framework.AutoDeploymentService.unpackLocation(AutoDeploymentService.java:587)

      ... 6 more

      ]]></stack-trace>
      </exception-info>
      </task-result-details>
      </frmwk-task-result-details>
      </frmwk-task-result>
      </jbi-task-result>
      </jbi-task>

      at org.apache.servicemix.jbi.framework.AutoDeploymentService.failure(AutoDeploymentService.java:384)
      at org.apache.servicemix.jbi.framework.AutoDeploymentService.failure(AutoDeploymentService.java:374)
      at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:230)
      at org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:647)
      at org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:60)
      at org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:611)
      at java.util.TimerThread.mainLoop(Timer.java:512)
      at java.util.TimerThread.run(Timer.java:462)

        Issue Links

          Activity

          Hide
          Matt Pavlovich added a comment -

          Looks to be similar issue

          Show
          Matt Pavlovich added a comment - Looks to be similar issue
          Hide
          Bruce Snyder added a comment -

          This is an issue is due to the fact that the copy is not atomic. To work around this issue temporarily, use the move command instead as it is atomic.

          Show
          Bruce Snyder added a comment - This is an issue is due to the fact that the copy is not atomic. To work around this issue temporarily, use the move command instead as it is atomic.
          Hide
          Chris Custine added a comment -

          Added routine to check for growing files (slow copy or remote upload), and quick opening of Zip file to make sure it is available.

          Show
          Chris Custine added a comment - Added routine to check for growing files (slow copy or remote upload), and quick opening of Zip file to make sure it is available.

            People

            • Assignee:
              Chris Custine
              Reporter:
              Matt Pavlovich
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development