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();