aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2018-11-02 14:17:45 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2018-11-02 14:17:45 +1300
commit892d1bad5c4dd1e07fe59c5c60e3b94617b0e725 (patch)
treee54cd30ad56e7c40bf4215440a4092a55044245e
parent329014781823c4fa43cffb61682cb670d55285e7 (diff)
downloadtrackermap-server-892d1bad5c4dd1e07fe59c5c60e3b94617b0e725.tar.gz
trackermap-server-892d1bad5c4dd1e07fe59c5c60e3b94617b0e725.tar.bz2
trackermap-server-892d1bad5c4dd1e07fe59c5c60e3b94617b0e725.zip
Handle new Java class loader (fix #4130)
-rw-r--r--src/org/traccar/database/DataManager.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java
index c3a53f4b6..3d88b842d 100644
--- a/src/org/traccar/database/DataManager.java
+++ b/src/org/traccar/database/DataManager.java
@@ -103,10 +103,17 @@ public class DataManager {
String driverFile = config.getString("database.driverFile");
if (driverFile != null) {
- URLClassLoader classLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
- Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
- method.setAccessible(true);
- method.invoke(classLoader, new File(driverFile).toURI().toURL());
+ ClassLoader classLoader = ClassLoader.getSystemClassLoader();
+ try {
+ Method method = classLoader.getClass().getDeclaredMethod("addURL", URL.class);
+ method.setAccessible(true);
+ method.invoke(classLoader, new File(driverFile).toURI().toURL());
+ } catch (NoSuchMethodException e) {
+ Method method = classLoader.getClass()
+ .getDeclaredMethod("appendToClassPathForInstrumentation", String.class);
+ method.setAccessible(true);
+ method.invoke(classLoader, driverFile);
+ }
}
String driver = config.getString("database.driver");