baliuka     2003/03/19 01:21:39

  Modified:    dbutils/src/java/org/apache/commons/dbutils DbUtils.java
                        ProcedureUtils.java
               dbutils/src/test/org/apache/commons/dbutils Demo.java
                        ProcedureUtilsTest.java
  Log:
  fixed index mapping for bean collection and dependancy on jdk 1.4 BitSet
  
  Revision  Changes    Path
  1.22      +4 -4      
jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/DbUtils.java
  
  Index: DbUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/DbUtils.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- DbUtils.java      16 Mar 2003 16:23:47 -0000      1.21
  +++ DbUtils.java      19 Mar 2003 09:21:39 -0000      1.22
  @@ -381,9 +381,9 @@
                   
                   LOOP:
                       for( int i = 1; i <= cnt; i++ ){
  +                       String name = rsmd.getColumnName(i);
                           for( int j = 0; j < pd.length; j++ ){
  -                            String name = rsmd.getColumnName(i);
  -                            if(name.equals(pd[i].getName())){
  +                            if(name.equals(pd[j].getName())){
                                   nameToIndex[i] = j;
                                   continue LOOP;
                               }
  @@ -401,7 +401,7 @@
                               throw new DbException( "can not create " + 
cls.getName() , e);
                           }
                           
  -                        for(int i = 1; i < cnt; i++){
  +                        for(int i = 1; i <= cnt; i++){
                               Object value = rs.getObject(i);
                               int index = nameToIndex[i];
                               if( rs.wasNull() && 
pd[index].getPropertyType().isPrimitive() ){
  @@ -409,7 +409,7 @@
                               }
                               try{
                                   
  -                                pd[i].getWriteMethod().invoke(obj, new Object[]{ 
value });
  +                                pd[index].getWriteMethod().invoke(obj, new 
Object[]{ value });
                                   
                                   
                               }catch(Exception e){
  
  
  
  1.13      +13 -5     
jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/ProcedureUtils.java
  
  Index: ProcedureUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/ProcedureUtils.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ProcedureUtils.java       16 Mar 2003 16:23:47 -0000      1.12
  +++ ProcedureUtils.java       19 Mar 2003 09:21:39 -0000      1.13
  @@ -123,7 +123,8 @@
               if(sql[i] == '$'){
                   if( state.get(ESCAPE) ){
                       sb.append('$');
  -                    state.clear();
  +                    state.clear(ESCAPE);
  +                    state.clear(ARG);
                       continue;
                   }
                   if(state.get(ARG)){
  @@ -131,7 +132,7 @@
                       sb.append('?');
                       digit.delete(0, digit.length() );
                   }
  -                state.clear();
  +                state.clear(ARG);
                   state.set(ESCAPE);
                   continue ;
               }
  @@ -139,7 +140,7 @@
               if ( Character.isDigit(sql[i]) &&
               (state.get(ESCAPE) || state.get(ARG))   ){
                   digit.append(sql[i]);
  -                state.clear();
  +                state.clear(ESCAPE);
                   state.set(ARG);
                   if( i != sql.length - 1 ){
                       continue;
  @@ -156,7 +157,9 @@
               if( i < sql.length ){
                   sb.append(sql[i]);
               }
  -            state.clear();
  +            state.clear(ESCAPE);
  +            state.clear(ARG);
  +                    
           }
           
           return indexes;
  @@ -512,6 +515,7 @@
               this.method = method;
               this.args   = args;
               hash = method.hashCode();
  +            if(args != null)
               for(int i=0; i< args.length; i++){
                   hash += 3*(args[i] == null ? 0 : args[i].hashCode());
               }
  @@ -526,6 +530,10 @@
                   
                   CacheKey key = (CacheKey)obj;
                   if(key.method == method || key.method.equals(method)){
  +                    
  +                    if(args == null ){
  +                      return key.args == null || key.args.length == 0;
  +                    }
                       
                       for( int i = 0; i < args.length; i++ ){
                           if( args[i] == key.args[i] ){
  
  
  
  1.11      +5 -9      
jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/Demo.java
  
  Index: Demo.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/Demo.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- Demo.java 16 Mar 2003 16:23:48 -0000      1.10
  +++ Demo.java 19 Mar 2003 09:21:39 -0000      1.11
  @@ -42,18 +42,14 @@
        */
       public Integer maxId(String table);
       
  -    /**
  -     [EMAIL PROTECTED] SELECT now() 
  -     */
  -    public java.util.Date now();
       
       /**
  -     [EMAIL PROTECTED] SELECT * FROM TBL  WHERE ID=$0 
  +     [EMAIL PROTECTED] SELECT id, name FROM TBL  WHERE ID=$0 
        */
       public Object[] getRow( int id );
       
        /**
  -     [EMAIL PROTECTED] SELECT * FROM TBL WHERE ID=$0 
  +     [EMAIL PROTECTED] SELECT id, name FROM TBL WHERE ID=$0 
        */
        public Map getRowAsMap( int id );
      
  @@ -76,7 +72,7 @@
        public java.util.Collection getBeans();
      
       /**
  -     [EMAIL PROTECTED] SELECT * FROM {0}  
  +     [EMAIL PROTECTED] SELECT id, name FROM {0}  
        */
        public java.util.Collection getAll( String tbl );
       
  @@ -88,13 +84,13 @@
       
       
       /**
  -     [EMAIL PROTECTED] SELECT * FROM TBL 
  +     [EMAIL PROTECTED] SELECT id, name FROM TBL 
        [EMAIL PROTECTED] DemoHandler
        */
       public int print(java.io.PrintStream out) throws java.io.IOException;
       
       /**
  -     [EMAIL PROTECTED] SELECT * FROM {1} WHERE {2} > $3
  +     [EMAIL PROTECTED] SELECT id, name FROM {1} WHERE {2} > $3
        [EMAIL PROTECTED] DemoHandler
        */
       public int dynamicPrint(java.io.PrintStream out,
  
  
  
  1.10      +2 -1      
jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/ProcedureUtilsTest.java
  
  Index: ProcedureUtilsTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/ProcedureUtilsTest.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- ProcedureUtilsTest.java   16 Mar 2003 16:23:48 -0000      1.9
  +++ ProcedureUtilsTest.java   19 Mar 2003 09:21:39 -0000      1.10
  @@ -9,6 +9,7 @@
   import com.thoughtworks.qdox.model.*;
   import junit.framework.*;
   
  +
   /**
    *
    * @author baliuka
  @@ -123,7 +124,7 @@
          
          assertTrue( max != null  );
          assertTrue("cached query", max == demo.maxId("TBL")  );
  -       assertTrue( demo.now()  != null  );
  +       
          assertEquals(demo.concat("A","B"), "AB" );
          assertTrue(demo.getRow(max.intValue()).length == 2 );
          assertTrue(demo.getRowAsMap(max.intValue()).size() == 2 );
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to