Control: tags -1 patch Hello Andreas,
I am attaching a patch that seems to fix the problem. This patch can be applied on top of the current version in testing, no further changes are required, but please double-check if the r-deps continue to work. At least the classes are generated again. The build should have horribly failed in my opinion because if you take a look at the build log, there is a ClassCastException which makes it impossible to generate the class files. This issue in turn is caused by a change in Java 9 where you can no longer cast URLClassLoader due to new restrictions, well explained here: http://java9.wtf/class-loading/ (I love the homepage name) I tried to follow the solution and hope it helps. Regards, Markus
From: Markus Koschany <a...@debian.org> Date: Mon, 25 Mar 2019 14:44:22 +0100 Subject: URLClassLoader --- src/org/netlib/generate/JavaGenerator.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/org/netlib/generate/JavaGenerator.java b/src/org/netlib/generate/JavaGenerator.java index fda8e9d..88cb3f3 100644 --- a/src/org/netlib/generate/JavaGenerator.java +++ b/src/org/netlib/generate/JavaGenerator.java @@ -51,6 +51,8 @@ import org.netlib.util.doubleW; import org.netlib.util.floatW; import org.netlib.util.intW; +import java.net.MalformedURLException; + /** * Due to the depressing number of LAPACK routines, it is much more efficient to * auto-generate the Java code for the wrapper and corresponding Java and JNI @@ -643,7 +645,8 @@ class JavaGenerator { * @return all classes in a given package * @see http://forum.java.sun.com/thread.jspa?threadID=757391&messageID=4326850 */ - private List<Class<?>> getClasses(String packageName, IClassFilter filter) { + private List<Class<?>> getClasses(String packageName, IClassFilter filter) + throws MalformedURLException{ String packagePath = packageName.replace('.', '/'); // ArrayList<URL> classpath = new ArrayList<URL>(); // String[] classpathString = System.getProperty("java.class.path").split(":"); @@ -658,7 +661,17 @@ class JavaGenerator { // log(Level.SEVERE, classpathString[i] + " " + ex.getMessage()); // } // } - URL [] classpath = ((URLClassLoader) ClassLoader.getSystemClassLoader()).getURLs(); + URL url1 = new URL("file:///usr/share/java/junit-3.8.2.jar"); + URL url2 = new URL("file:///usr/share/java/f2jutil-0.8.1.jar"); + URL url3 = new URL("file:///usr/share/java/jlapack-blas-0.8.jar"); + URL url4 = new URL("file:///usr/share/java/jlapack-lapack-0.8.jar"); + URL url5 = new URL("file:///usr/share/java/jlapack-xerbla-0.8.jar"); + URL url6 = new URL("file:///build/netlib-java-0.9.3/build/classes/"); + + URL [] path = { url1, url2, url3, url4, url5, url6 }; + ClassLoader parent = ClassLoader.getPlatformClassLoader(); + URLClassLoader loader = new URLClassLoader(path, parent); + URL classpath[] = loader.getURLs(); List<Class<?>> result = new ArrayList<Class<?>>(); System.out.println(Arrays.toString(classpath)); for (URL url : classpath) {
signature.asc
Description: OpenPGP digital signature