Author: sebb
Date: Tue May 14 17:00:33 2013
New Revision: 1482460

URL: http://svn.apache.org/r1482460
Log:
DBUTILS-106 - DBUtils can't build using JDK 1.7 - DriverProxy needs to 
implement getParentLogger()
Add dynamic invocation.

Modified:
    commons/proper/dbutils/branches/2_0/src/changes/changes.xml
    
commons/proper/dbutils/branches/2_0/src/main/java/org/apache/commons/dbutils2/DbUtils.java

Modified: commons/proper/dbutils/branches/2_0/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/dbutils/branches/2_0/src/changes/changes.xml?rev=1482460&r1=1482459&r2=1482460&view=diff
==============================================================================
--- commons/proper/dbutils/branches/2_0/src/changes/changes.xml (original)
+++ commons/proper/dbutils/branches/2_0/src/changes/changes.xml Tue May 14 
17:00:33 2013
@@ -48,6 +48,10 @@ The <action> type attribute can be add,u
  This is the first release of the 2.x branch of the Commons DbUtils package, 
DbUtils2.
  The motivation for creating DbUtils2 was two-fold: a number of deprecated 
methods in the original DbUtils, and the desire to support named parameters 
(DBUTILS-105).
     ">
+      <action dev="sebb" type="fix" issue="DBUTILS-106">
+        DBUtils can't build using JDK 1.7 - DriverProxy needs to implement 
getParentLogger()
+        Add dynamic invocation. 
+      </action>
       <action dev="sebb" type="fix" issue="DBUTILS-109">
         AbstractExecutor.currentPosition should be an int
       </action>

Modified: 
commons/proper/dbutils/branches/2_0/src/main/java/org/apache/commons/dbutils2/DbUtils.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbutils/branches/2_0/src/main/java/org/apache/commons/dbutils2/DbUtils.java?rev=1482460&r1=1482459&r2=1482460&view=diff
==============================================================================
--- 
commons/proper/dbutils/branches/2_0/src/main/java/org/apache/commons/dbutils2/DbUtils.java
 (original)
+++ 
commons/proper/dbutils/branches/2_0/src/main/java/org/apache/commons/dbutils2/DbUtils.java
 Tue May 14 17:00:33 2013
@@ -21,6 +21,7 @@ import static java.sql.DriverManager.reg
 import java.io.PrintWriter;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.sql.Connection;
 import java.sql.Driver;
 import java.sql.DriverPropertyInfo;
@@ -347,6 +348,8 @@ public final class DbUtils {
      */
     private static final class DriverProxy implements Driver {
 
+        private boolean parentLoggerSupported = true;
+
         /**
          * The adapted JDBC Driver loaded dynamically.
          */
@@ -395,7 +398,23 @@ public final class DbUtils {
          * Java 1.7 method.
          */
         public Logger getParentLogger() throws SQLFeatureNotSupportedException 
{
-            throw new SQLFeatureNotSupportedException();
+            if (parentLoggerSupported) {
+                try {
+                    Method method = 
adapted.getClass().getMethod("getParentLogger", new Class[0]);
+                    return (Logger)method.invoke(adapted, new Object[0]);
+                } catch (NoSuchMethodException e) {
+                    parentLoggerSupported = false;
+                    throw new SQLFeatureNotSupportedException(e);
+                } catch (IllegalAccessException e) {
+                    parentLoggerSupported = false;
+                    throw new SQLFeatureNotSupportedException(e);
+                } catch (InvocationTargetException e) {
+                    parentLoggerSupported = false;
+                    throw new SQLFeatureNotSupportedException(e);
+                }
+            } else {
+                throw new SQLFeatureNotSupportedException();
+            }
         }
 
     }


Reply via email to