Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 370253 - KernelBundleClassLoader cannot clear JDBC-Drivers on JRE 7
Summary: KernelBundleClassLoader cannot clear JDBC-Drivers on JRE 7
Status: CLOSED FIXED
Alias: None
Product: Virgo
Classification: RT
Component: runtime (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 enhancement (vote)
Target Milestone: 3.5.0.M05   Edit
Assignee: Glyn Normington CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 379381 (view as bug list)
Depends on:
Blocks: 382710
  Show dependency tree
 
Reported: 2012-01-31 13:03 EST by Roland Hauser CLA
Modified: 2012-06-15 04:45 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Roland Hauser CLA 2012-01-31 13:03:52 EST
Build Identifier: 3.0.2.RELEASE

In method KernelBundleClassLoader#clearJdbcDrivers appears following code:

...
 synchronized(DriverManager.class) {
            try {
                Field writeDriversField = DriverManager.class.getDeclaredField("writeDrivers");
                writeDriversField.setAccessible(true);
...

This ends up in a java.lang.NoSuchFieldException because field 'writeDrivers' does not exist anymore on java.sql.DriverManager (JDK 7u2).

I assume the field is newly named 'registeredDrivers'.

Cheers
Roland

Reproducible: Always

Steps to Reproduce:
1. Run Virgo with JDK 7
2. Shutdown Virgo; Exception is logged to log.log
Comment 1 Roland Hauser CLA 2012-01-31 13:04:47 EST
Here a snipped from the log file:

[2012-01-31 18:50:38.213] WARN  System Bundle Shutdown       o.e.v.kernel.userregion.internal.equinox.KernelBundleClassLoader  Failure when clearing JDBC drivers for KernelBundleClassLoader: [bundle=com.bechtle.ecom.plan-0.0.1-com.bechtle.ecom.mesosphere.ordertracking.impl_0.0.1.SNAPSHOT-v21085-1328024999389] java.lang.NoSuchFieldException: writeDrivers
        at java.lang.Class.getDeclaredField(Unknown Source)
        at org.eclipse.virgo.kernel.userregion.internal.equinox.KernelBundleClassLoader.clearJdbcDrivers(KernelBundleClassLoader.java:271)
        at org.eclipse.virgo.kernel.userregion.internal.equinox.KernelBundleClassLoader.close(KernelBundleClassLoader.java:260)
        at org.eclipse.osgi.internal.loader.BundleLoader.close(BundleLoader.java:324)
        at org.eclipse.osgi.internal.loader.BundleLoader.closeBundleLoader(BundleLoader.java:1360)
        at org.eclipse.osgi.framework.internal.core.BundleHost.refresh(BundleHost.java:130)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.unloadAllBundles(StartLevelManager.java:655)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:262)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:215)
        at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:284)
        at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:690)
        at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:597)
        at org.eclipse.osgi.framework.internal.core.InternalSystemBundle$1.run(InternalSystemBundle.java:261)
        at java.lang.Thread.run(Unknown Source)
Comment 2 Glyn Normington CLA 2012-02-01 04:21:39 EST
Thanks for raising this. Since Virgo has not been tested with Java 7 AFAIK, flagging as enhancement.
Comment 3 Glyn Normington CLA 2012-05-14 06:43:12 EDT
*** Bug 379381 has been marked as a duplicate of this bug. ***
Comment 4 Glyn Normington CLA 2012-05-28 11:22:34 EDT
Fixed in kernel commit ac361c708cf722a43afbddd76a969f50f1426941.