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]>

Reply via email to