baliuka 02/03/16 12:56:25
Modified: simplestore/src/java/org/apache/commons/simplestore/persistence/impl
PersistentProxy.java
simplestore/src/java/org/apache/commons/simplestore/tools
Enhancer.java
simplestore/src/test/org/apache/commons/simplestore
TestEnhancer.java
Log:
bug fixes
Revision Changes Path
1.19 +1 -2
jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/PersistentProxy.java
Index: PersistentProxy.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/PersistentProxy.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- PersistentProxy.java 16 Mar 2002 18:55:45 -0000 1.18
+++ PersistentProxy.java 16 Mar 2002 20:56:25 -0000 1.19
@@ -78,7 +78,7 @@
* [EMAIL PROTECTED]</a>
*@author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">
* [EMAIL PROTECTED]</a>
- *@version $Id: PersistentProxy.java,v 1.18 2002/03/16 18:55:45 baliuka Exp $
+ *@version $Id: PersistentProxy.java,v 1.19 2002/03/16 20:56:25 baliuka Exp $
*/
public class PersistentProxy
implements MetaObject, org.apache.commons.simplestore.tools.Constants ,
@@ -267,7 +267,6 @@
System.out.println("Invoke super:" + method);
}
if( Enhancer.equals(method, HASH_CODE) ||
- Enhancer.equals(method,TO_STRING) ||
Enhancer.equals(method,EQUALS) ){
return false;
}else return true;
1.15 +22 -7
jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/tools/Enhancer.java
Index: Enhancer.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/tools/Enhancer.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- Enhancer.java 16 Mar 2002 18:55:45 -0000 1.14
+++ Enhancer.java 16 Mar 2002 20:56:25 -0000 1.15
@@ -94,11 +94,12 @@
import org.apache.bcel.generic.ObjectType;
import org.apache.bcel.generic.PUTFIELD;
import org.apache.bcel.generic.RETURN;
+import org.apache.bcel.generic.IFNULL;
import org.apache.bcel.generic.Type;
/**
*@author Juozas Baliuka <a href="mailto:[EMAIL PROTECTED]">
* [EMAIL PROTECTED]</a>
- *@version $Id: Enhancer.java,v 1.14 2002/03/16 18:55:45 baliuka Exp $
+ *@version $Id: Enhancer.java,v 1.15 2002/03/16 20:56:25 baliuka Exp $
*/
public class Enhancer implements org.apache.bcel.Constants , Constants{
@@ -124,6 +125,7 @@
static final String SOURCE_FILE = "<generated>";
static final String CLASS_SUFIX = "$$EnhancedBySimplestore$$";
static final String CLASS_PREFIX = "org.apache.";
+ static int index = 0;
private static int addAfterConstructionRef(ConstantPoolGen cp) {
return cp.addMethodref(
Enhancer.class.getName(),
@@ -200,13 +202,15 @@
if (class_name.startsWith("java")) {
class_name = CLASS_PREFIX + class_name;
}
+ if( cls == Enhancer.class )
+ class_name += index;
}
java.util.Map map = (java.util.Map) cache.get(loader);
- if (map == null) {
+ if ( map == null ) {
map = new java.util.HashMap();
cache.put(loader, map);
}
- Class result = (Class) map.get(cls);
+ Class result = (Class) map.get(class_name);
if (result == null) {
java.util.HashMap methods = new java.util.HashMap();
JavaClass clazz = enhance(cls, class_name, interfaces, methods);
@@ -227,7 +231,7 @@
String name = (String) i.next();
result.getField(name).set(null, methods.get(name));
}
- map.put(cls, result);
+ map.put(class_name, result);
}
return result
.getConstructor(
@@ -487,10 +491,21 @@
il.append(new ASTORE(stack));
il.append(new ALOAD(stack));
if (returnType instanceof ObjectType) {
- if (!returnType.equals(Type.OBJECT))
+ if (!returnType.equals(Type.OBJECT)){
+
+ IFNULL ifNull = new IFNULL(null);
+ il.append(ifNull);
+ il.append(new ALOAD(stack));
il.append(new CHECKCAST(cp.addClass((ObjectType) returnType)));
- return il.append(new ARETURN());
- } else if (returnType instanceof BasicType) {
+ il.append(new ARETURN());
+ ifNull.setTarget(il.append(new ACONST_NULL()));
+ return il.append(new ARETURN());
+ }else {
+ return il.append(new ARETURN());
+ }
+
+ }
+ if (returnType instanceof BasicType) {
if (returnType.equals(Type.BOOLEAN)) {
il.append(new CHECKCAST(cp.addClass(BOOLEAN_OBJECT)));
il.append(
1.10 +6 -10
jakarta-commons-sandbox/simplestore/src/test/org/apache/commons/simplestore/TestEnhancer.java
Index: TestEnhancer.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/simplestore/src/test/org/apache/commons/simplestore/TestEnhancer.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- TestEnhancer.java 16 Mar 2002 18:55:45 -0000 1.9
+++ TestEnhancer.java 16 Mar 2002 20:56:25 -0000 1.10
@@ -64,7 +64,7 @@
/**
*@author Juozas Baliuka <a href="mailto:[EMAIL PROTECTED]">
* [EMAIL PROTECTED]</a>
- *@version $Id: TestEnhancer.java,v 1.9 2002/03/16 18:55:45 baliuka Exp $
+ *@version $Id: TestEnhancer.java,v 1.10 2002/03/16 20:56:25 baliuka Exp $
*/
public class TestEnhancer extends TestCase {
@@ -94,15 +94,11 @@
System.err.println();
}
public void testEnhance()throws Throwable{
- System.setOut(new java.io.PrintStream(new
java.io.FileOutputStream("c:\\error")));
- //test enchance vector:
- Object obj = Enhancer.enhance( null, "TESTEnhancer",new
Class[]{TestPersistent.class},null,
- Thread.currentThread().getContextClassLoader()
- );
-
+
+
java.util.Vector vector = (java.util.Vector)Enhancer.enhance(
java.util.Vector.class,
- new Class[]{java.util.List.class},
+ new Class[]{/*java.util.List.class*/},
new MethodInterceptor(){
@@ -128,7 +124,7 @@
Object args[], Object retValFromBefore,
boolean invokedSuper, Object retValFromSuper,
java.lang.Throwable e )throws java.lang.Throwable{
-
+ System.out.println( method );
return retValFromSuper;//return the same as supper
}
@@ -136,7 +132,7 @@
//TODO : Add meanigful asserts
String value = "VALUE";
- vector.add(null);
+ //vector.add(null);
vector.elements();
vector.size();
vector.add(value);
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>