You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by bl...@apache.org on 2015/11/02 13:40:35 UTC
incubator-groovy git commit: GROOVY-7587: add code to bypass jigsaw
exception and change a GCL method to avoid compilation problems with a new
ClassLoader method
Repository: incubator-groovy
Updated Branches:
refs/heads/master e2254bfe4 -> 49653820e
GROOVY-7587: add code to bypass jigsaw exception and change a GCL method to avoid compilation problems with a new ClassLoader method
Project: http://git-wip-us.apache.org/repos/asf/incubator-groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-groovy/commit/49653820
Tree: http://git-wip-us.apache.org/repos/asf/incubator-groovy/tree/49653820
Diff: http://git-wip-us.apache.org/repos/asf/incubator-groovy/diff/49653820
Branch: refs/heads/master
Commit: 49653820edccd1c4c3aa0e14e7c394441bb0e643
Parents: e2254bf
Author: Jochen Theodorou <bl...@gmx.org>
Authored: Mon Nov 2 13:23:55 2015 +0100
Committer: Jochen Theodorou <bl...@gmx.org>
Committed: Mon Nov 2 13:26:42 2015 +0100
----------------------------------------------------------------------
src/main/groovy/lang/GroovyClassLoader.java | 6 +++---
src/main/org/codehaus/groovy/reflection/CachedClass.java | 3 +++
.../org/codehaus/groovy/reflection/CachedConstructor.java | 7 +++++--
src/main/org/codehaus/groovy/vmplugin/v7/Java7.java | 4 ++++
4 files changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-groovy/blob/49653820/src/main/groovy/lang/GroovyClassLoader.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/GroovyClassLoader.java b/src/main/groovy/lang/GroovyClassLoader.java
index 049d336..b606c6d 100644
--- a/src/main/groovy/lang/GroovyClassLoader.java
+++ b/src/main/groovy/lang/GroovyClassLoader.java
@@ -178,7 +178,7 @@ public class GroovyClassLoader extends URLClassLoader {
unit.addClassNode(classNode);
unit.setClassgenCallback(collector);
unit.compile(Phases.CLASS_GENERATION);
- definePackage(collector.generatedClass.getName());
+ definePackageInternal(collector.generatedClass.getName());
return collector.generatedClass;
} catch (CompilationFailedException e) {
throw new RuntimeException(e);
@@ -302,7 +302,7 @@ public class GroovyClassLoader extends URLClassLoader {
for (Object o : collector.getLoadedClasses()) {
Class clazz = (Class) o;
String clazzName = clazz.getName();
- definePackage(clazzName);
+ definePackageInternal(clazzName);
setClassCacheEntry(clazz);
if (clazzName.equals(mainClass)) answer = clazz;
}
@@ -317,7 +317,7 @@ public class GroovyClassLoader extends URLClassLoader {
}
}
- private void definePackage(String className) {
+ private void definePackageInternal(String className) {
int i = className.lastIndexOf('.');
if (i != -1) {
String pkgName = className.substring(0, i);
http://git-wip-us.apache.org/repos/asf/incubator-groovy/blob/49653820/src/main/org/codehaus/groovy/reflection/CachedClass.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/reflection/CachedClass.java b/src/main/org/codehaus/groovy/reflection/CachedClass.java
index aa3ec89..afba52a 100644
--- a/src/main/org/codehaus/groovy/reflection/CachedClass.java
+++ b/src/main/org/codehaus/groovy/reflection/CachedClass.java
@@ -55,6 +55,9 @@ public class CachedClass {
AccessibleObject.setAccessible(df, true);
} catch (SecurityException e) {
// swallow for strict security managers
+ } catch (RuntimeException re) {
+ // test for JDK9 JIGSAW
+ if (!"java.lang.reflect.InaccessibleObjectException".equals(re.getClass().getName())) throw re;
}
return df;
}
http://git-wip-us.apache.org/repos/asf/incubator-groovy/blob/49653820/src/main/org/codehaus/groovy/reflection/CachedConstructor.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/reflection/CachedConstructor.java b/src/main/org/codehaus/groovy/reflection/CachedConstructor.java
index e912a21..1d8f458 100644
--- a/src/main/org/codehaus/groovy/reflection/CachedConstructor.java
+++ b/src/main/org/codehaus/groovy/reflection/CachedConstructor.java
@@ -45,9 +45,12 @@ public class CachedConstructor extends ParameterTypes {
return null;
}
});
- }
- catch (SecurityException e) {
+ } catch (SecurityException e) {
// IGNORE
+ } catch (RuntimeException re) {
+ // test for JDK9 JIGSAW
+ if (!"java.lang.reflect.InaccessibleObjectException".equals(re.getClass().getName())) throw re;
+ // else IGNORE
}
}
http://git-wip-us.apache.org/repos/asf/incubator-groovy/blob/49653820/src/main/org/codehaus/groovy/vmplugin/v7/Java7.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/vmplugin/v7/Java7.java b/src/main/org/codehaus/groovy/vmplugin/v7/Java7.java
index 4a26d82..93165b1 100644
--- a/src/main/org/codehaus/groovy/vmplugin/v7/Java7.java
+++ b/src/main/org/codehaus/groovy/vmplugin/v7/Java7.java
@@ -57,6 +57,10 @@ public class Java7 extends Java6 {
}
} catch (SecurityException se) {
con = null;
+ } catch (RuntimeException re) {
+ // test for JDK9 JIGSAW
+ if (!"java.lang.reflect.InaccessibleObjectException".equals(re.getClass().getName())) throw re;
+ con = null;
}
LOOKUP_Constructor = con;
}