Reputation: 4955
I am getting the below error sporadically in my J2EE container. That is some time the container is getting up , without any problem , and some time the container is not coming up ,because of this error , have any one seen this error before...? what may be the cause ..? does it involves any class loader/security problem ..?
java.lang.VerifyError: (class: com/rsa/authagent/authapi/realmstat/AUTHav, method: a signature: (Lcom/rsa/authagent/authapi/authmsg/AUTHa0;)V) catch_type not a subclass of Throwable
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2259)
at java.lang.Class.getDeclaredField(Class.java:1852)
at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1582)
at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52)
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:408)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:400)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:297)
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:531)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at com.rsa.authagent.authapi.realmstat.AUTHi.j(Unknown Source)
at com.rsa.authagent.authapi.realmstat.AUTHi.<init>(Unknown Source)
at com.rsa.authagent.authapi.realmstat.AUTHh.<init>(Unknown Source)
at com.rsa.authagent.authapi.realmstat.AUTHg.<init>(Unknown Source)
at com.rsa.authagent.authapi.AuthSessionFactory.a(Unknown Source)
at com.rsa.authagent.authapi.AuthSessionFactory.<init>(Unknown Source)
at com.rsa.authagent.authapi.AuthSessionFactory.getInstance(Unknown Source)
at netx.esf.authentication.rsa.service.RsaAuthenticationServiceImpl.instantiateRsaAPI(RsaAuthenticationServiceImpl.java:1050)
at netx.esf.authentication.rsa.service.RsaAuthenticationServiceImpl.start(RsaAuthenticationServiceImpl.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at arch.service.beans.RepBasedServiceBean.onMessage(RepBasedServiceBean.java:108)
at arch.service.beans.RepBasedServiceImpl.onMessage(RepBasedServiceImpl.java:202)
at arch.service.beans.RepBasedServiceImpl.message(RepBasedServiceImpl.java:229)
at arch.CORBA.service.ServicePOA.local_message(ServicePOA.java:188)
at arch.CORBA.Transport.sendLocalRequest(Transport.java:447)
at arch.transport.StubProxy.send_managed_request(StubProxy.java:364)
at arch.transport.StubProxy.invoke(StubProxy.java:205)
at $Proxy15.start(Unknown Source)
at arch.service.beans.RepositoryBasedServiceFactory.startDeployable(RepositoryBasedServiceFactory.java:423)
at arch.service.beans.ServiceContainer$ServiceStarter.run(ServiceContainer.java:1392)
at arch.service.beans.ServiceContainer$ThreadPool._run(ServiceContainer.java:2934)
at arch.util.ThreadPool._runLoopBody(ThreadPool.java:213)
at arch.util.ThreadPool._runForThread(ThreadPool.java:230)
at arch.util.ThreadPool.access$000(ThreadPool.java:3)
at arch.util.ThreadPool$1.run(ThreadPool.java:95)
Upvotes: 0
Views: 5006
Reputation: 346347
My guess: faulty hardware, especially RAM, causing the JVM to get corrupt bytecode. Usually it causes outright JVM crashes, but it's certainly a possibility worth checking out:
Upvotes: 1
Reputation: 114797
AUTHav.class
is corrupt (sometimes?). Obviously some method is declared to throw something that is not a subclass of Throwable. Usually this shouldn't happen because a Java compiler would detect that problem and report an error. But maybe the class file is modified/instrumented or even generated at runtime and this introduces the sporadic error. Or you have a naming conflict and the classloaded sporadically sees a diffenent, non-Throwable class instead of the intended one.
If AUTHav.class
is contained in some archive, you could have a look at the byte code (with javap
or a decompiler) and check if you find a method with a suspicious throws
argument.
So the byte code is obfuscated ... then it could be - and this is just a guess - that you have more than one version of the library inside your J2EE container. As the classes are obfuscated, there is a chance that the class names AUTHa7
and/or AUTHa1
are used for different (orginal) classes in different versions of the library. And then, if the classloader picks up both or maybe the wrong one at the wrong time, it could happen, that AUTHa7
and/or AUTHa1
are not Exceptions at runtime...
Upvotes: 2