diff --git a/pom.xml b/pom.xml
index e8cfe02253..6e3a3a52c4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -316,9 +316,10 @@
11.2.0.3 provided -->
- com.oracle
- ojdbc14
- 10.2.0.2.0
+ com.oracle
+ ojdbc14
+ 10.2.0.2
+ provided
diff --git a/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatJNDIStatStrategy.java b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatJNDIStatStrategy.java
index d8026865f4..9d0091a603 100644
--- a/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatJNDIStatStrategy.java
+++ b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatJNDIStatStrategy.java
@@ -3,12 +3,22 @@ package com.alibaba.druid.stat;
import java.util.List;
import java.util.Map;
+import com.alibaba.druid.support.logging.Log;
+import com.alibaba.druid.support.logging.LogFactory;
import com.alibaba.druid.util.ReflectionUtils;
public class DruidDataSourceStatJNDIStatStrategy implements DruidDataSourceStatStrategy{
+ private final static Log LOG = LogFactory.getLog(DruidDataSourceStatJNDIStatStrategy.class);
private Object getStrategyB() {
- return ReflectionUtils.getClassFromWebContainerOrCurrentClassLoader("com.alibaba.druid.stat.DruidDataSourceStatDefaultStrategy");
+ Class> clazz = ReflectionUtils.getClassFromWebContainerOrCurrentClassLoader("com.alibaba.druid.stat.DruidDataSourceStatDefaultStrategy");
+ Object object = null;
+ try {
+ object = clazz.newInstance();
+ } catch (Exception e) {
+ LOG.error(e.getMessage(), e);
+ }
+ return object;
}
@SuppressWarnings("unchecked")
diff --git a/src/main/java/com/alibaba/druid/util/ReflectionUtils.java b/src/main/java/com/alibaba/druid/util/ReflectionUtils.java
index 045313c4ec..223a861cd6 100644
--- a/src/main/java/com/alibaba/druid/util/ReflectionUtils.java
+++ b/src/main/java/com/alibaba/druid/util/ReflectionUtils.java
@@ -42,10 +42,20 @@ public class ReflectionUtils {
}
}
- public static Object callObjectMethod(Object obj, String methodName, Object... methodParams) {
+ public static Object callObjectMethod(Object obj, String methodName) {
try {
Method m = obj.getClass().getMethod(methodName);
- return m.invoke(obj, methodParams);
+ return m.invoke(obj);
+ } catch (Exception e) {
+ LOG.warn("callObjectMethod fail:class=" + obj.getClass().getName() + " method=" + methodName, e);
+ return null;
+ }
+ }
+
+ public static Object callObjectMethod(Object obj, String methodName, Integer id) {
+ try {
+ Method m = obj.getClass().getMethod(methodName, Integer.class);
+ return m.invoke(obj, id);
} catch (Exception e) {
LOG.warn("callObjectMethod fail:class=" + obj.getClass().getName() + " method=" + methodName, e);
return null;