You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mb...@apache.org on 2013/08/01 17:22:05 UTC

svn commit: r1509288 - /commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java

Author: mbenson
Date: Thu Aug  1 15:22:05 2013
New Revision: 1509288

URL: http://svn.apache.org/r1509288
Log:
reformat; add some debug logging; use className instead of target with verify() method

Modified:
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java

Modified: commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java?rev=1509288&r1=1509287&r2=1509288&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java (original)
+++ commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java Thu Aug  1 15:22:05 2013
@@ -81,10 +81,11 @@ public class Privilizer {
             final byte[] bytecode = ((ClassWriter) cv).toByteArray();
 
             if (verify) {
-                verify(target, bytecode);
+                verify(className, bytecode);
             }
 
             final File f = new File(fileArchive.getDir(), className.replace('.', File.separatorChar) + ".class");
+            env.debug("Writing class %s to %s", className, f);
             try {
                 FileUtils.writeByteArrayToFile(f, bytecode);
             } catch (IOException e) {
@@ -131,26 +132,26 @@ public class Privilizer {
 
     Type wrap(Type t) {
         switch (t.getSort()) {
-            case Type.BOOLEAN:
-                return Type.getType(Boolean.class);
-            case Type.BYTE:
-                return Type.getType(Byte.class);
-            case Type.SHORT:
-                return Type.getType(Short.class);
-            case Type.INT:
-                return Type.getType(Integer.class);
-            case Type.CHAR:
-                return Type.getType(Character.class);
-            case Type.LONG:
-                return Type.getType(Long.class);
-            case Type.FLOAT:
-                return Type.getType(Float.class);
-            case Type.DOUBLE:
-                return Type.getType(Double.class);
-            case Type.VOID:
-                return Type.getType(Void.class);
-            default:
-                return t;
+        case Type.BOOLEAN:
+            return Type.getType(Boolean.class);
+        case Type.BYTE:
+            return Type.getType(Byte.class);
+        case Type.SHORT:
+            return Type.getType(Short.class);
+        case Type.INT:
+            return Type.getType(Integer.class);
+        case Type.CHAR:
+            return Type.getType(Character.class);
+        case Type.LONG:
+            return Type.getType(Long.class);
+        case Type.FLOAT:
+            return Type.getType(Float.class);
+        case Type.DOUBLE:
+            return Type.getType(Double.class);
+        case Type.VOID:
+            return Type.getType(Void.class);
+        default:
+            return t;
         }
     }
 
@@ -186,15 +187,15 @@ public class Privilizer {
         }
     }
 
-    void verify(final Type target, final byte[] bytecode) {
+    void verify(final String className, final byte[] bytecode) {
         final ClassReader reader = new ClassReader(bytecode);
 
         // use a new classloader that is always up to date:
         final ClassLoader verifyClassLoader = new URLClassLoader(URLArray.fromPaths(classpath)) {
             @Override
             protected Class<?> findClass(String name) throws ClassNotFoundException {
-                if (target.getClassName().equals(name)) {
-                    final Class<?> result = defineClass(target.getClassName(), bytecode, 0, bytecode.length);
+                if (className.equals(name)) {
+                    final Class<?> result = defineClass(className, bytecode, 0, bytecode.length);
                     resolveClass(result);
                     return result;
                 }
@@ -202,6 +203,7 @@ public class Privilizer {
             }
         };
 
+        env.debug("Verifying bytecode for class %s", className);
         final StringWriter w = new StringWriter();
         CheckClassAdapter.verify(reader, verifyClassLoader, false, new PrintWriter(w));
         final String error = w.toString();