JBoss operation error.
vhavin Feb 24, 2015 8:03 PMHi everybody, I am a newbie here, so at the moment I am looking for some pointers to documentation that can help me to understand the problem.
I am trying to use IBM PureCoverage tool with JBoss application. Without PureCoverage in the picture this application is working just fine. However, when PureCoverage is active I am getting the error attached below. In fact, I am getting multiple instances of this error for various services. The essence of this error is that JBoss doesn't like reference to com/ibm/rational/purifyplus/BCICallbackJ. This is a 'synthetic' class. A reference to this class is added to each Java class instrumented by the PureCoverage JVMTI agent. In fact the class itself doesn't exist. It is generated in memory when JVMTI agent is initialized and it is instantiated by direct JNI call to the Java bootstrap loader. Typically this class is added to the Bootstrap Loader Cache and thus should be resolved by all class loaders that follow the common practice to lookup a class in the bootstrap loader cache before trying to load it. Apparently JBoss seems to follow a different set of rules and flatly rejects all references to this class. I assume that if JBoss is so cautious about the external class references, it should provide a mechanism for adding classes required by other Java subsystems to the 'OK' list. After all, JBoss itself seems to be using numerous classes form various java packages with no problem. So far I found a document titled "Extending JBoss AS7" (Extending JBoss AS 7 - JBoss AS 7.0 - Project Documentation Editor). However, it describes implementation of a JBoss specific extension package and involves some tedious process for adding a single extension class. What if I want to 'extend' all packages with additional functionality? Is it even possible? Any help or information leading to answers to these questions will be greatly appreciated. The error generated by JBoss startup when running with PureCoverage attached follows:
14:44:56,267 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 44) JBAS014612: Operatio
n ("add") failed - address: ([("subsystem" => "transactions")]): java.lang.RuntimeException: java.lang.NoClassDefFoundEr
ror: com/ibm/rational/purifyplus/BCICallbackJ
at com.arjuna.common.internal.util.propertyservice.BeanPopulator.getNamedInstance(BeanPopulator.java:81)
at com.arjuna.common.internal.util.propertyservice.BeanPopulator.getDefaultInstance(BeanPopulator.java:49)
at com.arjuna.ats.arjuna.common.arjPropertyManager.getCoreEnvironmentBean(arjPropertyManager.java:48)
at org.jboss.as.txn.service.CoreEnvironmentService.getValue(CoreEnvironmentService.java:59)
at org.jboss.as.txn.service.CoreEnvironmentService.setProcessImplementation(CoreEnvironmentService.java:107)
at org.jboss.as.txn.subsystem.TransactionSubsystemAdd.performCoreEnvironmentBootTime(TransactionSubsystemAdd.jav
a:358)
at org.jboss.as.txn.subsystem.TransactionSubsystemAdd.performBoottime(TransactionSubsystemAdd.java:196)
at org.jboss.as.controller.AbstractBoottimeAddStepHandler.performRuntime(AbstractBoottimeAddStepHandler.java:69)
[jboss-as-controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.controller.AbstractAddStepHandler$1.execute(AbstractAddStepHandler.java:75) [jboss-as-controller
-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:611) [jboss-as-con
troller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:489) [jboss-as-
controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:290) [jbo
ss-as-controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:285) [jboss-a
s-controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTask.run(ParallelBootOperationStepHandle
r.java:354) [jboss-as-controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) [rt.jar:1.6.0_01]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) [rt.jar:1.6.0_01]
at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_01]
at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.1.Final-redhat-1.jar:2.1.1.Final-r
edhat-1]
Caused by: java.lang.NoClassDefFoundError: com/ibm/rational/purifyplus/BCICallbackJ
at $Proxy3.<clinit>(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[rt.jar:1.6.0_01]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [rt.jar:1.6.0_01
]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [rt.jar:
1.6.0_01]
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [rt.jar:1.6.0_01]
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:588) [rt.jar:1.6.0_01]
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239) [rt.jar:1.6.0_01]
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229) [rt.jar:1.6.0_01]
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69) [rt.jar:1.6.0_01]
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52) [rt.jar:1.6.0_01]
at java.lang.reflect.Field.declaredAnnotations(Field.java:1016) [rt.jar:1.6.0_01]
at java.lang.reflect.Field.getAnnotation(Field.java:1000) [rt.jar:1.6.0_01]
at java.lang.reflect.AccessibleObject.isAnnotationPresent(AccessibleObject.java:168) [rt.jar:1.6.0_01]
at com.arjuna.common.internal.util.propertyservice.BeanPopulator.configureFromProperties(BeanPopulator.java:160)
at com.arjuna.common.internal.util.propertyservice.BeanPopulator.getNamedInstance(BeanPopulator.java:78)
... 17 more