You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2016/05/17 20:26:06 UTC
incubator-geode git commit: Fix arg ctor
Repository: incubator-geode
Updated Branches:
refs/heads/feature/GEODE-1392 868db81ac -> 67d5e8de6
Fix arg ctor
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/67d5e8de
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/67d5e8de
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/67d5e8de
Branch: refs/heads/feature/GEODE-1392
Commit: 67d5e8de64b4a41c635d139045ce3b9b760522c9
Parents: 868db81
Author: Kirk Lund <kl...@apache.org>
Authored: Tue May 17 13:26:08 2016 -0700
Committer: Kirk Lund <kl...@apache.org>
Committed: Tue May 17 13:26:08 2016 -0700
----------------------------------------------------------------------
...bHelperWithThreadContextClassLoaderTest.java | 57 +++++++++++---------
1 file changed, 33 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/67d5e8de/geode-core/src/test/java/com/gemstone/gemfire/internal/util/BlobHelperWithThreadContextClassLoaderTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/util/BlobHelperWithThreadContextClassLoaderTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/util/BlobHelperWithThreadContextClassLoaderTest.java
index 56b23b1..6dfcadd 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/util/BlobHelperWithThreadContextClassLoaderTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/util/BlobHelperWithThreadContextClassLoaderTest.java
@@ -16,7 +16,7 @@
*/
package com.gemstone.gemfire.internal.util;
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.*;
import java.io.IOException;
import java.io.Serializable;
@@ -243,46 +243,54 @@ public class BlobHelperWithThreadContextClassLoaderTest {
ConstantPoolGen cp = cg.getConstantPool();
InstructionFactory fac = new InstructionFactory(cg, cp);
- // constructor
- cg.addEmptyConstructor(Constants.ACC_PUBLIC);
-
// field
FieldGen fg = new FieldGen(Constants.ACC_PRIVATE, Type.OBJECT, VALUE, cp);
Field field = fg.getField();
cg.addField(field);
- // setter
- // 0: aload_0
- // 1: aload_1
- // 2: putfield #2; //Field value:Ljava/lang/Object;
- // 5: return
- InstructionList setter = new InstructionList();
- MethodGen setterMethod = new MethodGen(Constants.ACC_PUBLIC, Type.VOID, new Type[] {Type.OBJECT}, new String[] {field.getName()}, SET_VALUE, CLASS_NAME_SERIALIZABLE_IMPL_WITH_VALUE, setter, cp);
- setterMethod.setMaxStack(2);
+ // empty constructor
+ cg.addEmptyConstructor(Constants.ACC_PUBLIC);
- InstructionHandle setter_ih_0 = setter.append(fac.createLoad(Type.OBJECT, 0)); // 0: aload_0 this
- InstructionHandle setter_ih_1 = setter.append(fac.createLoad(Type.OBJECT, 1)); // 1: aload_1 value
- InstructionHandle setter_ih_2 = setter.append(fac.createPutField(cg.getClassName(), field.getName(), Type.getType(field.getSignature()))); // 2: putfield #2 stack to field
- InstructionHandle setter_ih_0_ih_5 = setter.append(fac.createReturn(Type.VOID)); // 5: return void
+ // constructor with arg
+ InstructionList ctor = new InstructionList();
+ MethodGen ctorMethod = new MethodGen(Constants.ACC_PUBLIC, Type.VOID, new Type[] { Type.OBJECT }, new String[] { "arg0" }, "<init>", "com.gemstone.gemfire.internal.util.bcel.SerializableImplWithValue", ctor, cp);
+ ctorMethod.setMaxStack(2);
- cg.addMethod(setterMethod.getMethod());
- setter.dispose();
+ InstructionHandle ctor_ih_0 = ctor.append(fac.createLoad(Type.OBJECT, 0));
+ ctor.append(fac.createInvoke(CLASS_NAME_SERIALIZABLE_IMPL, "<init>", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL));
+ InstructionHandle ctor_ih_4 = ctor.append(fac.createLoad(Type.OBJECT, 0));
+ ctor.append(fac.createLoad(Type.OBJECT, 1));
+ ctor.append(fac.createFieldAccess(CLASS_NAME_SERIALIZABLE_IMPL_WITH_VALUE, "value", Type.OBJECT, Constants.PUTFIELD));
+ InstructionHandle ctor_ih_9 = ctor.append(fac.createReturn(Type.VOID));
+
+ cg.addMethod(ctorMethod.getMethod());
+ ctor.dispose();
// getter
- // 0: aload_0
- // 1: getfield #2; //Field value:Ljava/lang/Object;
- // 4: areturn
InstructionList getter = new InstructionList();
MethodGen getterMethod = new MethodGen(Constants.ACC_PUBLIC, Type.OBJECT, null, null, GET_VALUE, CLASS_NAME_SERIALIZABLE_IMPL_WITH_VALUE, getter, cp);
getterMethod.setMaxStack(1);
- InstructionHandle getter_ih_0 = getter.append(fac.createLoad(Type.OBJECT, 0)); // 0: aload_0 this
- InstructionHandle getter_ih_1 = getter.append(fac.createGetField(cg.getClassName(), field.getName(), Type.getType(field.getSignature()))); // 1: getfield #2 field to stack
- InstructionHandle getter_ih_4 = getter.append(fac.createReturn(Type.OBJECT)); // 4: areturn Object
+ InstructionHandle getter_ih_0 = getter.append(fac.createLoad(Type.OBJECT, 0));
+ InstructionHandle getter_ih_1 = getter.append(fac.createGetField(cg.getClassName(), field.getName(), Type.getType(field.getSignature())));
+ InstructionHandle getter_ih_4 = getter.append(fac.createReturn(Type.OBJECT));
cg.addMethod(getterMethod.getMethod());
getter.dispose();
+ // setter
+ InstructionList setter = new InstructionList();
+ MethodGen setterMethod = new MethodGen(Constants.ACC_PUBLIC, Type.VOID, new Type[] {Type.OBJECT}, new String[] {field.getName()}, SET_VALUE, CLASS_NAME_SERIALIZABLE_IMPL_WITH_VALUE, setter, cp);
+ setterMethod.setMaxStack(2);
+
+ InstructionHandle setter_ih_0 = setter.append(fac.createLoad(Type.OBJECT, 0));
+ InstructionHandle setter_ih_1 = setter.append(fac.createLoad(Type.OBJECT, 1));
+ InstructionHandle setter_ih_2 = setter.append(fac.createPutField(cg.getClassName(), field.getName(), Type.getType(field.getSignature())));
+ InstructionHandle setter_ih_0_ih_5 = setter.append(fac.createReturn(Type.VOID));
+
+ cg.addMethod(setterMethod.getMethod());
+ setter.dispose();
+
JavaClass jClazz = cg.getJavaClass();
byte[] bytes = jClazz.getBytes();
return defineClass(jClazz.getClassName(), bytes, 0, bytes.length);
@@ -295,3 +303,4 @@ public class BlobHelperWithThreadContextClassLoaderTest {
}
}
}
+