From f284fa0e8002193b8d9e9472146988d001911081 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 11 Sep 2017 23:05:42 +0200 Subject: [PATCH 1/8] [BUGFIX] Solving currentThread null return Solves issue #222 --- src/main/java/org/parabot/core/asm/redirect/ThreadRedirect.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/parabot/core/asm/redirect/ThreadRedirect.java b/src/main/java/org/parabot/core/asm/redirect/ThreadRedirect.java index 0c60ec3..22dda99 100644 --- a/src/main/java/org/parabot/core/asm/redirect/ThreadRedirect.java +++ b/src/main/java/org/parabot/core/asm/redirect/ThreadRedirect.java @@ -24,7 +24,7 @@ public class ThreadRedirect { } public static Thread currentThread(){ - return null; + return new Thread(); } public static void join(Thread t) throws InterruptedException{ From 724d98a6e0a60c2a60c40e562698017556addca7 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 11 Sep 2017 23:09:26 +0200 Subject: [PATCH 2/8] [BUGFIX] Solving issues with Travis building --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4b0e919..26f51f2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,9 @@ language: java +dist: trusty + jdk: - - oraclejdk7 + - openjdk7 - oraclejdk8 before_install: @@ -65,4 +67,4 @@ deploy: repo: Parabot/Parabot branch: - master - jdk: 'oraclejdk7' \ No newline at end of file + jdk: 'openjdk7' \ No newline at end of file From f667850121b0ba8723c4a9b1da8e15116ec2fb4a Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 11 Sep 2017 23:13:43 +0200 Subject: [PATCH 3/8] [BUGFIX] Solved issue with returning null image --- .../java/org/parabot/core/asm/redirect/ToolkitRedirect.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java b/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java index 1bafabc..c0844e6 100644 --- a/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java +++ b/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java @@ -40,11 +40,11 @@ public class ToolkitRedirect { } public static Image createImage(Toolkit t,byte[] b){ - return null; + return Toolkit.getDefaultToolkit().createImage(b); } public static Image createImage(Toolkit t, String s){ - return null; + return Toolkit.getDefaultToolkit().createImage(s); } public static Image getImage(Toolkit t,URL u){ From 0834ff205798809f2eb9389f04b9e33968bbb3a7 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 11 Sep 2017 23:14:12 +0200 Subject: [PATCH 4/8] [BUGFIX] Using the given Toolkit and not default Toolkit --- .../java/org/parabot/core/asm/redirect/ToolkitRedirect.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java b/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java index c0844e6..bb01d54 100644 --- a/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java +++ b/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java @@ -40,11 +40,11 @@ public class ToolkitRedirect { } public static Image createImage(Toolkit t,byte[] b){ - return Toolkit.getDefaultToolkit().createImage(b); + return t.createImage(b); } public static Image createImage(Toolkit t, String s){ - return Toolkit.getDefaultToolkit().createImage(s); + return t.createImage(s); } public static Image getImage(Toolkit t,URL u){ From db8d7989cbe8758b3036427ceb136a18db67fa57 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 11 Sep 2017 23:22:03 +0200 Subject: [PATCH 5/8] [BUGFIX] Set deployment requirement to openjdk7 Instead of oraclejdk7 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 26f51f2..4094fa2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,7 +58,7 @@ deploy: branch: - master - development - jdk: 'oraclejdk7' + jdk: 'openjdk7' - provider: script script: "cp ./.travis/.travis.settings.xml $HOME/.m2/settings.xml && mvn package javadoc:javadoc deploy site:deploy" From a7debba54b93688c9aecca5069f9a1aa4aeb8555 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 11 Sep 2017 23:57:24 +0200 Subject: [PATCH 6/8] [BUGFIX] Added getProtectionDomain to ClassRedirect --- .../core/asm/redirect/ClassRedirect.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java b/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java index 4e0be58..6f252dc 100644 --- a/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java +++ b/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java @@ -8,9 +8,25 @@ import java.io.InputStream; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.security.ProtectionDomain; public class ClassRedirect { + public static ProtectionDomain getProtectionDomain(final Class clazz) { + if (validStack()) { + return AccessController.doPrivileged(new PrivilegedAction() { + public ProtectionDomain run() { + return clazz.getProtectionDomain(); + } + }); + } + + System.err.println(clazz.getName() + " getProtectionDomain request Blocked."); + throw RedirectClassAdapter.createSecurityException(); + } + public static Object newInstance(Class c) throws IllegalAccessException, InstantiationException { if (validStack()) { return c.newInstance(); @@ -136,8 +152,9 @@ public class ClassRedirect { private static boolean validStack() { Exception e = new Exception(); for (StackTraceElement elem : e.getStackTrace()) { - if (elem.getClassName().equals(Script.class.getName())) + if (elem.getClassName().equals(Script.class.getName())) { return true; + } } return false; } From bbe7496ecb7819c350afe9a707c6d6e6f288b207 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Tue, 12 Sep 2017 00:00:07 +0200 Subject: [PATCH 7/8] [BUGFIX] Granting access instead of blocking it --- .../parabot/core/asm/redirect/ClassRedirect.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java b/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java index 6f252dc..dde1499 100644 --- a/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java +++ b/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java @@ -15,16 +15,13 @@ import java.security.ProtectionDomain; public class ClassRedirect { public static ProtectionDomain getProtectionDomain(final Class clazz) { - if (validStack()) { - return AccessController.doPrivileged(new PrivilegedAction() { - public ProtectionDomain run() { - return clazz.getProtectionDomain(); - } - }); - } + System.err.println(clazz.getName() + " getProtectionDomain request granted."); - System.err.println(clazz.getName() + " getProtectionDomain request Blocked."); - throw RedirectClassAdapter.createSecurityException(); + return AccessController.doPrivileged(new PrivilegedAction() { + public ProtectionDomain run() { + return clazz.getProtectionDomain(); + } + }); } public static Object newInstance(Class c) throws IllegalAccessException, InstantiationException { From a6b444572d315f6b6d180189fda18899f3059cc1 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Tue, 12 Sep 2017 00:04:17 +0200 Subject: [PATCH 8/8] [BUGFIX] Added createImage with ImageProducer --- .../org/parabot/core/asm/redirect/ToolkitRedirect.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java b/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java index bb01d54..820386e 100644 --- a/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java +++ b/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java @@ -5,6 +5,7 @@ import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; +import java.awt.image.ImageProducer; import java.io.IOException; import java.net.URL; @@ -46,7 +47,11 @@ public class ToolkitRedirect { public static Image createImage(Toolkit t, String s){ return t.createImage(s); } - + + public static Image createImage(Toolkit t, ImageProducer i){ + return t.createImage(i); + } + public static Image getImage(Toolkit t,URL u){ return t.getImage(u); }