You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ba...@apache.org on 2002/03/04 23:11:40 UTC
cvs commit: jakarta-commons-sandbox/simplestore/src/test/org/apache/commons/simplestore TestAll.java TestEnhancer.java
baliuka 02/03/04 14:11:40
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
TestAll.java TestEnhancer.java
Log:
bug fixes for Enhancer
Revision Changes Path
1.9 +6 -1 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.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- PersistentProxy.java 28 Feb 2002 18:28:41 -0000 1.8
+++ PersistentProxy.java 4 Mar 2002 22:11:40 -0000 1.9
@@ -74,7 +74,7 @@
* baliuka@mwm.lt</a>
*@author Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">
* g-froehlich@gmx.de</a>
- *@version $Id: PersistentProxy.java,v 1.8 2002/02/28 18:28:41 baliuka Exp $
+ *@version $Id: PersistentProxy.java,v 1.9 2002/03/04 22:11:40 baliuka Exp $
*/
public class PersistentProxy
implements MetaObject, InvocationHandler, Cloneable, Serializable {
@@ -312,6 +312,11 @@
public boolean isClean() {
return m_clean;
+ }
+ public void handle( java.lang.reflect.Method m, java.lang.Throwable e ){
+ System.out.println("Error in " + m.getName());
+ e.printStackTrace();
+ throw new java.lang.RuntimeException(e.toString());
}
static {
1.7 +23 -9 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Enhancer.java 4 Mar 2002 18:27:23 -0000 1.6
+++ Enhancer.java 4 Mar 2002 22:11:40 -0000 1.7
@@ -63,11 +63,11 @@
/**
*@author Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
* baliuka@mwm.lt</a>
- *@version $Id: Enhancer.java,v 1.6 2002/03/04 18:27:23 baliuka Exp $
+ *@version $Id: Enhancer.java,v 1.7 2002/03/04 22:11:40 baliuka Exp $
*/
public class Enhancer implements org.apache.bcel.Constants{
- static boolean DEBUG = true;
+ static boolean DEBUG = false;
static final String INTERCEPTOR_CLASS = MethodInterceptor.class.getName();
@@ -223,7 +223,9 @@
for( int i = 0 ; i < methods.length; i++ ){
int mod = methods[i].getModifiers();
if( !java.lang.reflect.Modifier.isStatic(mod) &&
- !java.lang.reflect.Modifier.isFinal(mod) ){
+ !java.lang.reflect.Modifier.isFinal(mod) &&
+ ( java.lang.reflect.Modifier.isPublic(mod)||
+ java.lang.reflect.Modifier.isProtected(mod)) ){
methodSet.add(methods[i]);
}
@@ -339,11 +341,13 @@
il.append( new ASTORE( stack ) );
il.append( new ALOAD( stack ) );
if( returnType instanceof ObjectType ) {
+ if(!returnType.equals(Type.OBJECT))
+ il.append( new CHECKCAST( cp.addClass( (ObjectType)returnType ) ) );
return il.append( new ARETURN() );
}else if ( returnType instanceof BasicType ){
if ( returnType.equals( Type.BOOLEAN ) ){
il.append( new CHECKCAST( cp.addClass( BOOLEAN_OBJECT ) ) );
- il.append( factory.createInvoke(Boolean.class.getName(),"boolValue",
+ il.append( factory.createInvoke(Boolean.class.getName(),"booleanValue",
Type.BOOLEAN,new Type[]{},INVOKEVIRTUAL )
);
return il.append( new IRETURN());
@@ -556,6 +560,8 @@
int loaded = createArgArray(il,factory,cp,mg.getArgumentTypes());
int argArray = loaded;
+ int resutFromBefore = ++loaded ;
+
il.append( new ASTORE(argArray) );
if(!abstractM){// invoke before
il.append( new ALOAD(0) );
@@ -564,10 +570,13 @@
il.append( factory.createGetStatic(cg.getClassName(),fieldName, METHOD_OBJECT ) );
il.append( new ALOAD( argArray ) );
il.append( new INVOKEINTERFACE(before,4) );
+ il.append( new ASTORE( resutFromBefore ) );
+
+ }else {
+ il.append( new ACONST_NULL() );
+ il.append( new ASTORE( resutFromBefore ) );
}
//locals
- int resutFromBefore = ++loaded ;
- il.append( new ASTORE( resutFromBefore ) );
il.append( new ACONST_NULL() );
int resultFromSuper = ++loaded;
il.append( new ASTORE( resultFromSuper ) );
@@ -606,10 +615,15 @@
if( wrapper != null ){
il.append( initWrapper(mg.getReturnType(),cp) );
}
-
- ehEnd = il.append( new ASTORE(resultFromSuper) );
+ if( returnsValue ){
+ ehEnd = il.append( new ASTORE(resultFromSuper) );
+ }
gotoHandled = new GOTO(null);
- il.append( gotoHandled );
+ if(!returnsValue ){
+ ehEnd = il.append( gotoHandled );
+ }else{
+ il.append( gotoHandled );
+ }
ehHandled = il.append( new ASTORE(error ) );
}
1.9 +2 -3 jakarta-commons-sandbox/simplestore/src/test/org/apache/commons/simplestore/TestAll.java
Index: TestAll.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/simplestore/src/test/org/apache/commons/simplestore/TestAll.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TestAll.java 9 Feb 2002 19:19:01 -0000 1.8
+++ TestAll.java 4 Mar 2002 22:11:40 -0000 1.9
@@ -59,7 +59,7 @@
/**
*@author Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">
* g-froehlich@gmx.de</a>
- *@version $Id: TestAll.java,v 1.8 2002/02/09 19:19:01 froehlich Exp $
+ *@version $Id: TestAll.java,v 1.9 2002/03/04 22:11:40 baliuka Exp $
*/
public class TestAll extends TestCase {
public TestAll(String testName) {
@@ -68,9 +68,8 @@
public static Test suite() {
TestSuite suite = new TestSuite();
- //suite.addTest(TestSoftRefMemoryStore.suite());
- TestPersistent.class.getName();
suite.addTest(TestSample.suite());
+ suite.addTest(TestEnhancer.suite());
return suite;
}
1.2 +16 -6 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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestEnhancer.java 4 Mar 2002 18:27:23 -0000 1.1
+++ TestEnhancer.java 4 Mar 2002 22:11:40 -0000 1.2
@@ -64,7 +64,7 @@
/**
*@author Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
* baliuka@mwm.lt</a>
- *@version $Id: TestEnhancer.java,v 1.1 2002/03/04 18:27:23 baliuka Exp $
+ *@version $Id: TestEnhancer.java,v 1.2 2002/03/04 22:11:40 baliuka Exp $
*/
public class TestEnhancer extends TestCase {
@@ -86,7 +86,7 @@
//test enchance vector:
java.util.Vector vector = (java.util.Vector)Enhancer.enhance(
java.util.Vector.class,
- new Class[]{TestPersistent.class},
+ null,
new MethodInterceptor(){
@@ -94,7 +94,7 @@
public Object beforeInvoke( Object obj,java.lang.reflect.Method method,
Object args[] )
throws java.lang.Throwable{
- System.out.println("beforeInvoke:" + method);
+ System.err.println("beforeInvoke:" + method);
return null;
}
@@ -102,7 +102,7 @@
Object args[], Object retValFromBefore )
throws java.lang.Throwable{
- System.out.println("invokeSuper:" + method);
+ System.err.println("invokeSuper:" + method);
return true;//let super to call this
}
@@ -112,13 +112,23 @@
boolean invokedSuper, Object retValFromSuper,
java.lang.Throwable e )throws java.lang.Throwable{
- System.out.println("afterReturn:" + method);
+ System.err.println("afterReturn:" + method + " returned:" + retValFromSuper);
return retValFromSuper;//return the same as supper
}
});
- vector.add("");
+ //TODO : Add meanigful asserts
+ vector.add(null);
+ vector.elements();
+ vector.size();
+ vector.add(this);
+ vector.add("VALUE");
+ vector.add(vector);
+ vector.remove("VALUE");
+ vector.remove(vector);
+ vector.contains("VALUE");
+
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>