BWAgent can't start because of 'java.util.zip.ZipException: zip file is empty'

BWAgent can't start because of 'java.util.zip.ZipException: zip file is empty'

book

Article ID: KB0078474

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks BW 6.x

Description

A jar file gets corrupted after a restart of the bwagent not allowing the bwagent to start and throwing an exception like the following in the log:
 
java.lang.InternalError: java.util.zip.ZipException: zip file is empty
	at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:1040) ~[na:1.8.0_144]
	at sun.misc.URLClassPath.getResource(URLClassPath.java:239) ~[na:1.8.0_144]
	at java.net.URLClassLoader$1.run(URLClassLoader.java:365) ~[na:1.8.0_144]
	at java.net.URLClassLoader$1.run(URLClassLoader.java:362) ~[na:1.8.0_144]
	at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_144]
	at java.net.URLClassLoader.findClass(URLClassLoader.java:361) ~[na:1.8.0_144]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_144]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:411) ~[na:1.8.0_144]
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_144]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_144]
	at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:215) ~[na:1.8.0_144]
	at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206) ~[na:1.8.0_144]
	at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_144]
	at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206) ~[na:1.8.0_144]
	at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187) ~[na:1.8.0_144]
	at sun.security.jca.ProviderList.getProvider(ProviderList.java:233) ~[na:1.8.0_144]
	at sun.security.jca.ProviderList.getService(ProviderList.java:331) ~[na:1.8.0_144]
	at sun.security.jca.GetInstance.getInstance(GetInstance.java:157) ~[na:1.8.0_144]
	at javax.net.ssl.SSLContext.getInstance(SSLContext.java:156) ~[na:1.8.0_144]
	at org.eclipse.jetty.util.ssl.SslContextFactory.doStart(SslContextFactory.java:255) ~[jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903]
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) ~[jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903]
	at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:81) ~[jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903]
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) ~[jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903]
	at com.tibco.tea.transport.http.TeaCommunicationController.<init>(TeaCommunicationController.java:91) [agent-2.1.0-HF2.jar:2.1.0-HF2]
	at com.tibco.tea.agent.internal.server.TeaAgentRequestMessageProcessor.<init>(TeaAgentRequestMessageProcessor.java:30) [agent-2.1.0-HF2.jar:2.1.0-HF2]
	at com.tibco.tea.agent.server.TeaAgentServer.<init>(TeaAgentServer.java:276) [agent-2.1.0-HF2.jar:2.1.0-HF2]
	at com.tibco.tea.agent.server.TeaAgentServer.<init>(TeaAgentServer.java:256) [agent-2.1.0-HF2.jar:2.1.0-HF2]
	at com.tibco.tea.agent.server.TeaAgentServer.<init>(TeaAgentServer.java:250) [agent-2.1.0-HF2.jar:2.1.0-HF2]
	at com.tibco.bw.tea.agent.BWTeaAgentLauncher.setupBWAgent(BWTeaAgentLauncher.java:426) [com.tibco.bw.thor.admin.tea.agent_1.4.804.001.jar:na]
	at com.tibco.bw.tea.agent.BWTeaAgentLauncher.startTEAAgent(BWTeaAgentLauncher.java:154) [com.tibco.bw.thor.admin.tea.agent_1.4.804.001.jar:na]
	at com.tibco.bw.thor.admin.agent.commands.BW6AdminAgentLifecycleCommand.doExecute(BW6AdminAgentLifecycleCommand.java:526) [com.tibco.bw.thor.admin.agent_1.4.804.001.jar:na]
	at com.tibco.bw.thor.management.cli.commands.AbstractCommand.execute(AbstractCommand.java:62) [com.tibco.bw.thor.management.cli_1.4.500.002.jar:na]
	at org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35) [org.apache.karaf.shell.console-2.3.1.jar:na]
	at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:474) [org.apache.karaf.shell.console-2.3.1.jar:na]
	at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:400) [org.apache.karaf.shell.console-2.3.1.jar:na]
	at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) [org.apache.karaf.shell.console-2.3.1.jar:na]
	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) [org.apache.karaf.shell.console-2.3.1.jar:na]
	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) [org.apache.karaf.shell.console-2.3.1.jar:na]
	at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89) [org.apache.karaf.shell.console-2.3.1.jar:na]
	at com.tibco.bw.thor.management.cli.commands.AbstractMain.o00000(AbstractMain.java:482) [com.tibco.bw.thor.management.cli_1.4.500.002.jar:na]
	at com.tibco.bw.thor.management.cli.commands.AbstractMain.o00000(AbstractMain.java:451) [com.tibco.bw.thor.management.cli_1.4.500.002.jar:na]
	at com.tibco.bw.thor.management.cli.commands.AbstractMain.mainLoop(AbstractMain.java:179) [com.tibco.bw.thor.management.cli_1.4.500.002.jar:na]
	at com.tibco.bw.thor.admin.agent.Main.main(Main.java:40) [com.tibco.bw.thor.admin.agent_1.4.804.001.jar:na]
Caused by: java.util.zip.ZipException: zip file is empty
	at java.util.zip.ZipFile.open(Native Method) ~[na:1.8.0_144]
	at java.util.zip.ZipFile.<init>(ZipFile.java:225) ~[na:1.8.0_144]
	at java.util.zip.ZipFile.<init>(ZipFile.java:155) ~[na:1.8.0_144]
	at java.util.jar.JarFile.<init>(JarFile.java:166) ~[na:1.8.0_144]
	at java.util.jar.JarFile.<init>(JarFile.java:103) ~[na:1.8.0_144]
	at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:930) ~[na:1.8.0_144]
	at sun.misc.URLClassPath$JarLoader.access$800(URLClassPath.java:791) ~[na:1.8.0_144]
	at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:876) ~[na:1.8.0_144]
	at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:869) ~[na:1.8.0_144]
	at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_144]
	at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:868) ~[na:1.8.0_144]
	at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:1038) ~[na:1.8.0_144]
	... 42 common frames omitted

Issue/Introduction

The bwagent can't start because an exception says 'zip file is empty'

Resolution

The error "java.util.zip.ZipException: zip file is empty" indicates that a library used by bwagent is corrupted and has zero size. 

In this case with above error stacktrace the corrupted jar file was <TIB_HOME>/tibcojre64/lib/ext/sunec.jar but you can explore the tibcojre64 folder but even with the same symptoms, it could be a different JAR corrupted. 

On Linux systems, you may use command below to find each JAR and its size within TIBCO_HOME. More sophisticated command can be built by advanced bash users.

cd <TIBCO_HOME>
find -name *.jar | xargs ls -l

To resolve this issue replace the corrupted jar with the same file from a backup or working environment (having same BW /O.S version).