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 <apo@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) {
Attachment:
signature.asc
Description: OpenPGP digital signature