IBM Support

[Db2] Db2 Text Search configTool.bat might receive java.lang.ExceptionInInitializerError

Question & Answer


Question

Why do we receive java.lang.ExceptionInInitializerError by Db2 Text Search configTool.bat when upgrade from Db2 V11.1.3 Fix Pack 3a to V11.5.8 Fix Pack 0?

Answer

It is a known behavior.  Here is a reproducible scenario:
1. Install Db2 V11.1.3 FP3a on Windows 2016 with Text Search option ->
   Run configTool.bat printAll -configPath C:\ProgramData\IBM\DB2\DB2COPY1\DB2\db2tss\config to check Text Search ->
   create database and enable Text Search -> stop Text Search and terminate -> db2stop
2. Copy US_export_policy.jar and local_policy.jar files from C:\Program Files\IBM\SQLLIB\java\jdk\jre\lib\security to C:\temp directory for test purpose.  (Run "mkdir c:\temp" if needed)
3. Upgrade to Db2 V11.5.8 by clicking "work with existing".  And then select Text Search option.
4. When upgrade is completed, check C:\Program Files\IBM\SQLLIB\java\jdk\jre\lib\security directory to see whether there is no .jar files.  It must have no .jar file.
5. Copy two .jar files from C:\temp to C:\Program Files\IBM\SQLLIB\java\jdk\jre\lib\security for test purpose.
6. Click [Menu] -> [Administrator: DB2 CLP] -> then run:
   configTool.bat printAll -configPath C:\ProgramData\IBM\DB2\DB2COPY1\DB2\db2tss\config
   Got an error as:
 
C:\Program Files\IBM\SQLLIB\BIN>configTool.bat printAll -configPath C:\ProgramData\IBM\DB2\DB2COPY1\DB2\db2tss\config
Build version = 5.2.1.0
Build number = 4694
Build timestamp = 2014/09/04 21:24:52.199
Jar manifest version = 5.5.8.0-IF2, 22, 2022/06/16 17:53:37.741
Source trunk name = 2.1
Operating system name = Windows Server 2016
Operating system architecture (JVM) = amd64
Operating system version = 10.0
Java version = IBM J9 VM 1.8.0_331 JVM: 2.9 JVMInfo: JRE 1.8.0 Windows Server 2016 amd64-64-Bit Compressed References 20220427_27745 (JIT enabled, AOT enabled)
OpenJ9   - b15041a
OMR      - 3671a9f
IBM      - 1b0232b JVMRuntimeVersion: 8.0.7.10 - pwa6480sr7fp10-20220505_01(SR7 FP10)
Exception in thread "main" java.lang.ExceptionInInitializerError
        at java.lang.J9VMInternals.ensureError(J9VMInternals.java:145)
        at java.lang.J9VMInternals.recordInitializationFailure(J9VMInternals.java:134)
        at javax.crypto.Cipher.getInstance(Unknown Source)
        at javax.crypto.Cipher.getInstance(Unknown Source)
        at com.ibm.es.nuvo.jvm.IBMJvmSupport.getCipherFor(IBMJvmSupport.java:102)
        at com.ibm.es.nuvo.util.Encryption.decrypt(Encryption.java:305)
        at com.ibm.es.nuvo.util.Encryption.decryptFromBytes(Encryption.java:258)
        at com.ibm.es.nuvo.util.Encryption.decrypt(Encryption.java:228)
        at com.ibm.es.nuvo.util.Encryption.decrypt(Encryption.java:208)
        at com.ibm.es.nuvo.authentication.AuthenticationData.loadEncryptedPasswords(AuthenticationData.java:299)
        at com.ibm.es.nuvo.authentication.AuthenticationData.getApiPassword(AuthenticationData.java:127)
        at com.ibm.es.nuvo.util.AuthUtils.getCurrentAuth(AuthUtils.java:168)
        at com.ibm.es.nuvo.configuration.tool.ConfigurationTool.printToken(ConfigurationTool.java:1109)
        at com.ibm.es.nuvo.configuration.tool.ConfigurationTool.printAll(ConfigurationTool.java:2572)
        at com.ibm.es.nuvo.configuration.tool.ConfigurationTool.configure(ConfigurationTool.java:717)
        at com.ibm.es.nuvo.configuration.tool.ConfigurationTool.main(ConfigurationTool.java:2731)
Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs
        at javax.crypto.b.<clinit>(Unknown Source)
        ... 14 more
Caused by: java.lang.SecurityException: Jurisdiction policy files are not signed by trusted signers!
        at javax.crypto.b.a(Unknown Source)
        at javax.crypto.b.c(Unknown Source)
        at javax.crypto.b.access$600(Unknown Source)
        at javax.crypto.b$a.run(Unknown Source)
        at java.security.AccessController.doPrivileged(AccessController.java:738)
        ... 15 more
In this scenario, V11.5.8 Db2 installer setup.exe removes the two .jar files as shown at step 4.  But if the two .jar files exist unexpectedly, such as step 5, configTool.bat does not work and gets the error.  For workaround, remove two .jar files and run it again.
Note:
These two files are for JCE(Java Cryptography Extension) Unlimited Strength Jurisdiction Policy Files, AES256.
 

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PlsAAE","label":"Extenders-\u003EText Search"}],"ARM Case Number":"TS011645163","Platform":[{"code":"PF033","label":"Windows"}],"Version":"All Versions"}]

Document Information

Modified date:
26 January 2023

UID

ibm16855337