Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix mvn exec:java ClassNotFoundException (cmu-db#493)
Running benchmarks without packaging first fails like so: ``` mvn clean compile exec:java -P postgres -Dexec.args="-b tpcc -c config/postgres/sample_tpcc_config.xml --create=true --load=true --execute=true" java.lang.RuntimeException: Failed to retrieve class for com.oltpbenchmark.benchmarks.tpcc.TPCCBenchmark at com.oltpbenchmark.util.ClassUtil.getClass (ClassUtil.java:200) at com.oltpbenchmark.util.ClassUtil.getClass (ClassUtil.java:187) at com.oltpbenchmark.util.ClassUtil.newInstance (ClassUtil.java:112) at com.oltpbenchmark.DBWorkload.main (DBWorkload.java:165) at org.codehaus.mojo.exec.ExecJavaMojo.doMain (ExecJavaMojo.java:385) at org.codehaus.mojo.exec.ExecJavaMojo.doExec (ExecJavaMojo.java:374) at org.codehaus.mojo.exec.ExecJavaMojo.lambda$execute$0 (ExecJavaMojo.java:296) at java.lang.Thread.run (Thread.java:1583) Caused by: java.lang.ClassNotFoundException: com.oltpbenchmark.benchmarks.tpcc.TPCCBenchmark at jdk.internal.loader.BuiltinClassLoader.loadClass (BuiltinClassLoader.java:641) at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass (ClassLoaders.java:188) at java.lang.ClassLoader.loadClass (ClassLoader.java:526) at java.lang.Class.forName0 (Native Method) at java.lang.Class.forName (Class.java:534) at java.lang.Class.forName (Class.java:513) at org.apache.commons.lang3.ClassUtils.getClass (ClassUtils.java:532) at org.apache.commons.lang3.ClassUtils.getClass (ClassUtils.java:514) at com.oltpbenchmark.util.ClassUtil.getClass (ClassUtil.java:198) at com.oltpbenchmark.util.ClassUtil.getClass (ClassUtil.java:187) at com.oltpbenchmark.util.ClassUtil.newInstance (ClassUtil.java:112) at com.oltpbenchmark.DBWorkload.main (DBWorkload.java:165) at org.codehaus.mojo.exec.ExecJavaMojo.doMain (ExecJavaMojo.java:385) at org.codehaus.mojo.exec.ExecJavaMojo.doExec (ExecJavaMojo.java:374) at org.codehaus.mojo.exec.ExecJavaMojo.lambda$execute$0 (ExecJavaMojo.java:296) at java.lang.Thread.run (Thread.java:1583) ``` The bug was introduced by 611f3d4. I believe we should be using `Thread.getCurrentThread().getContextClassLoader()`, not `ClassLoader.getSystemClassLoader()`.
- Loading branch information