Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

BIX failure due to occasional NoClassDefFoundError

SA-34496

Summary



BIX command line process fails with the exception java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider. This behavior is sproadic, and results in failures in the extraction process.


Error Messages



com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega
SEVERE: Problem during method invocation (main)
java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
at com.pega.pegarules.exec.internal.PRExecProviderImpl.getCrypto(PRExecProviderImpl.java:389)
at com.pega.pegarules.deploy.internal.archive.ParUtilsImpl.<clinit>(ParUtilsImpl.java:165)
at com.pega.pegarules.deploy.internal.PRDeployProviderImpl.getParUtils(PRDeployProviderImpl.java:98)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineStartup.initEngine(EngineStartup.java:511)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._initEngine_privact(EngineImpl.java:165)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.doStartup(EngineImpl.java:138)
at com.pega.pegarules.session.internal.mgmt.EngineImpl.startEngineImpl(EngineImpl.java:240)
at com.pega.pegarules.session.internal.mgmt.EngineImpl.startEngine(EngineImpl.java:119)
at com.pega.pegarules.session.internal.mgmt.EngineImpl.startEngine(EngineImpl.java:112)
at com.pega.pegarules.data.internal.access.ExtractImpl.main(ExtractImpl.java:1027)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:367)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:408)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(AppServerBridgeToPega.java:22\
3)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethod(AppServerBridgeToPega.java:272)
at com.pega.pegarules.pub.PegaRULES.main(PegaRULES.java:85)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider
at com.pega.pegarules.internal.bootstrap.phase2.PRBaseLoader.findClass(PRBaseLoader.java:312)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at com.pega.pegarules.internal.bootstrap.phase2.PRBaseLoader.loadClass(PRBaseLoader.java:237)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at com.pega.pegarules.bootstrap.loader.PRAppLoader.loadClass(PRAppLoader.java:772)
at com.pega.pegarules.bootstrap.loader.PRAppLoader.loadClass(PRAppLoader.java:649)
... 19 more
Exception in thread "main" java.lang.RuntimeException: Problem during method invocation (main)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethod(AppServerBridgeToPega.java:278)



Similar error is thrown for another Pega supplied jar:

Caused by: java.lang.ClassNotFoundException: net.sf.saxon.TransformerFactoryImpl
at com.pega.pegarules.internal.bootstrap.phase2.PRBaseLoader.findClass(PRBaseLoader.java:312)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at com.pega.pegarules.internal.bootstrap.phase2.PRBaseLoader.loadClass(PRBaseLoader.java:237)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at com.pega.pegarules.bootstrap.loader.PRAppLoader.loadClass(PRAppLoader.java:772)
at com.pega.pegarules.bootstrap.loader.PRAppLoader.loadClass(PRAppLoader.java:649)

Steps to Reproduce



Run BIX extraction from command line.


Root Cause



A defect or configuration issue in the operating environment

The class files that are not found in the above exceptions are part of the Pega database and are extracted on the local filesystem of BIX execution during runtime.

net.sf.saxon.TransformerFactoryImpl is part of /ExtractedFiles/apploader/saxon9he.jar
and
org/bouncycastle/jce/provider/BouncyCastleProvider is part of /extractedFiles/baseloader/java6/bcprov-jdk15on-149.jar.
The folder "extractedFiles" is created on the filesystem relative to the location given in prbootstrap.properties for "com.pega.pegarules.bootstrap.tempdir" property.

Resolution



Perform the following local-change: Make sure multiple BIX processes use unique values for "com.pega.pegarules.bootstrap.tempdir" property. The issue occurs when multiple BIX processes are run concurrently and are trying to access the same "com.pega.pegarules.bootstrap.tempdir" location.

Published March 10, 2017 - Updated October 8, 2020

Was this useful?

100% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us