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..dde1499 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,22 @@ 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) { + System.err.println(clazz.getName() + " getProtectionDomain request granted."); + + return AccessController.doPrivileged(new PrivilegedAction() { + public ProtectionDomain run() { + return clazz.getProtectionDomain(); + } + }); + } + public static Object newInstance(Class c) throws IllegalAccessException, InstantiationException { if (validStack()) { return c.newInstance(); @@ -136,8 +149,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; } 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); }