Search code examples
javapowermockito

Getting error while connecting to custom db driver when running through PowerMockRunner class


I am getting following error for my junit class when i am trying to connect to database, I am using PowerMockRunner for my junit. And driver through which i am try to connect is not a well known or open source, it is custom driver made by my company. Is it the one which is causing issue? the traces are:

 WARNING: Error while registering Oracle JDBC Diagnosability MBean.
java.lang.LinkageError: loading constraint violation: loader "org/powermock/core/classloader/javassist/JavassistMockClassLoader@591550a" previously initiated loading for a different type with name "javax/management/MBeanServer" defined by loader "com/ibm/oti/vm/BootstrapClassLoader@7ecd7c73"
    at java.lang.ClassLoader.defineClassImpl(Native Method)
    at java.lang.ClassLoader.defineClassInternal(ClassLoader.java:397)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:358)
    at org.powermock.core.classloader.javassist.JavassistMockClassLoader.loadUnmockedClass(JavassistMockClassLoader.java:90)
    at org.powermock.core.classloader.MockClassLoader.loadClassByThisClassLoader(MockClassLoader.java:104)
    at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass1(DeferSupportingClassLoader.java:147)
    at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:98)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:880)
    at oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:409)
    at oracle.jdbc.driver.OracleDriver$1.run(OracleDriver.java:241)
    at java.security.AccessController.doPrivileged(AccessController.java:678)
    at oracle.jdbc.driver.OracleDriver.<clinit>(OracleDriver.java:237)
    at java.lang.Class.forNameImpl(Native Method)

Solution

  • Try adding following annotation along with your other annotation above the class declaration

    @PowerMockIgnore({"javax.management.*"})