Solutions
VM 8.6.3: After installing the VM 8.6.3.2 patch on Windows, certool fails with java.lang.NoClassDefFoundError
ID: | S143620 | |
Published: | 29 March 2022 | |
Updated: | 29 March 2022 |
Operating System(s)
- All Windows
Product(s)
- PVCS Version Manager
Description
If the VM 8.6.3.2 patch was installed on top of the VM 8.6.3.1 patch, the installer will not detect that some of the log4j files need to be replaced.
As a result, certtool can fail with the error:
C:\>certtool
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/spi/ExtendedLoggerWrapper
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:757)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
at pvcs.vm.sso.certificate.manager.cmd.Client.<clinit>(Client.java:20)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.spi.ExtendedLoggerWrapper
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
... 13 more
C:\>
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/spi/ExtendedLoggerWrapper
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:757)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
at pvcs.vm.sso.certificate.manager.cmd.Client.<clinit>(Client.java:20)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.spi.ExtendedLoggerWrapper
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
... 13 more
C:\>
Resolution
To solve this problem do the following:
-
Go to the directory
%PVCS_HOME%\..\patch_backout
-
Run
uninstall_latest.bat
-
Confirm you want to uinstall vm8632
-
Run
uninstall_latest.bat
one more time -
Confirm you want to uninstall vm8631_CVE-2021-44228
-
Locate the VM 8.6.3.2 patch installer and reinstall that patch