rwaldhoff    2002/10/31 13:14:32

  Modified:    dbcp/src/java/org/apache/commons/dbcp
                        DelegatingCallableStatement.java
                        DelegatingPreparedStatement.java
                        DelegatingResultSet.java DelegatingStatement.java
  Log:
  make sure Delegating*Statement.getResultSet and related methods don't wrap a null 
value returned by the underlying class
  (this addresses http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12733, with Tim 
Funk's patch and some other small changes)
  
  Revision  Changes    Path
  1.6       +10 -9     
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingCallableStatement.java
  
  Index: DelegatingCallableStatement.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingCallableStatement.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DelegatingCallableStatement.java  30 Oct 2002 00:46:02 -0000      1.5
  +++ DelegatingCallableStatement.java  31 Oct 2002 21:14:32 -0000      1.6
  @@ -1,5 +1,5 @@
   /*
  - * $Header$
  + * $Id$
    * $Revision$
    * $Date$
    *
  @@ -7,7 +7,7 @@
    *
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -97,6 +97,7 @@
    *
    * @author Glenn L. Nielsen
    * @author James House (<a 
href="mailto:james@;interobjective.com">[EMAIL PROTECTED]</a>)
  + * @version $Revision$ $Date$
    */
   public class DelegatingCallableStatement extends AbandonedTrace
           implements CallableStatement {
  @@ -131,11 +132,11 @@
        */
       public void close() throws SQLException {
           if(_conn != null) {
  -            _conn.removeTrace(this);
  +           _conn.removeTrace(this);
              _conn = null;
           }
   
  -        // The JDBC spec requires that a statment close any open
  +        // The JDBC spec requires that a statement close any open
           // ResultSet's when it is closed.
           List resultSets = getTrace();
           if( resultSets != null) {
  @@ -155,15 +156,15 @@
       }
   
       public ResultSet executeQuery() throws SQLException {
  -        return new DelegatingResultSet(this, _stmt.executeQuery());
  +        return DelegatingResultSet.wrapResultSet(this,_stmt.executeQuery());
       }
   
       public ResultSet getResultSet() throws SQLException {
  -        return new DelegatingResultSet(this, _stmt.getResultSet());
  +        return DelegatingResultSet.wrapResultSet(this,_stmt.getResultSet());
       }
   
       public ResultSet executeQuery(String sql) throws SQLException {
  -        return new DelegatingResultSet(this, _stmt.executeQuery(sql));
  +        return DelegatingResultSet.wrapResultSet(this,_stmt.executeQuery(sql));
       }
   
       public void registerOutParameter(int parameterIndex, int sqlType) throws 
SQLException { _stmt.registerOutParameter( parameterIndex,  sqlType);  }
  
  
  
  1.6       +8 -10     
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingPreparedStatement.java
  
  Index: DelegatingPreparedStatement.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingPreparedStatement.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DelegatingPreparedStatement.java  29 Jun 2002 17:36:37 -0000      1.5
  +++ DelegatingPreparedStatement.java  31 Oct 2002 21:14:32 -0000      1.6
  @@ -1,5 +1,5 @@
   /*
  - * $Header$
  + * $Id$
    * $Revision$
    * $Date$
    *
  @@ -7,7 +7,7 @@
    *
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -85,6 +85,7 @@
    * @author Rodney Waldhoff
    * @author Glenn L. Nielsen
    * @author James House (<a 
href="mailto:james@;interobjective.com">[EMAIL PROTECTED]</a>)
  + * @version $Revision$ $Date$
    */
   public class DelegatingPreparedStatement extends AbandonedTrace
           implements PreparedStatement {
  @@ -163,20 +164,17 @@
   
       public ResultSet executeQuery(String sql) throws SQLException {
           checkOpen();
  -
  -        return new DelegatingResultSet(this, _stmt.executeQuery(sql));
  +        return DelegatingResultSet.wrapResultSet(this,_stmt.executeQuery(sql));
       }
   
       public ResultSet getResultSet() throws SQLException {
           checkOpen();
  -
  -        return new DelegatingResultSet(this, _stmt.getResultSet());
  +        return DelegatingResultSet.wrapResultSet(this,_stmt.getResultSet());
       }
   
       public ResultSet executeQuery() throws SQLException {
           checkOpen();
  -
  -        return new DelegatingResultSet(this, _stmt.executeQuery());
  +        return DelegatingResultSet.wrapResultSet(this,_stmt.executeQuery());
       }
   
       public int executeUpdate(String sql) throws SQLException { checkOpen(); return 
_stmt.executeUpdate(sql);}
  
  
  
  1.4       +12 -3     
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingResultSet.java
  
  Index: DelegatingResultSet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingResultSet.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DelegatingResultSet.java  5 Aug 2002 06:25:59 -0000       1.3
  +++ DelegatingResultSet.java  31 Oct 2002 21:14:32 -0000      1.4
  @@ -114,6 +114,15 @@
           this._stmt = stmt;
           this._res = res;
       }
  +    
  +    public static ResultSet wrapResultSet(Statement stmt, ResultSet rset) {
  +        if(null == rset) {
  +            return null;
  +        } else {
  +            return new DelegatingResultSet(stmt,rset);
  +        }
  +    }
  +
   
       public Statement getStatement() throws SQLException {
           return _stmt;
  
  
  
  1.6       +10 -9     
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingStatement.java
  
  Index: DelegatingStatement.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingStatement.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DelegatingStatement.java  29 Jun 2002 17:36:37 -0000      1.5
  +++ DelegatingStatement.java  31 Oct 2002 21:14:32 -0000      1.6
  @@ -1,5 +1,5 @@
   /*
  - * $Header$
  + * $Id$
    * $Revision$
    * $Date$
    *
  @@ -7,7 +7,7 @@
    *
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -82,6 +82,7 @@
    * @author Rodney Waldhoff (<a 
href="mailto:rwaldhof@;us.britannica.com">[EMAIL PROTECTED]</a>)
    * @author Glenn L. Nielsen
    * @author James House (<a 
href="mailto:james@;interobjective.com">[EMAIL PROTECTED]</a>)
  + * @version $Revision$ $Date$
    */
   public class DelegatingStatement extends AbandonedTrace implements Statement {
       /** My delegate. */
  @@ -106,6 +107,7 @@
       /**
        * Returns my underlying {@link Statement}.
        * @return my underlying {@link Statement}.
  +     * @see #getInnermostDelegate
        */
       public Statement getDelegate() {
           return _stmt;
  @@ -125,6 +127,7 @@
        * This method is useful when you may have nested
        * <tt>DelegatingStatement</tt>s, and you want to make
        * sure to obtain a "genuine" {@link Statement}.
  +     * @see #getDelegate
        */
       public Statement getInnermostDelegate() {
           Statement s = _stmt;
  @@ -158,14 +161,12 @@
   
       public ResultSet executeQuery(String sql) throws SQLException {
           checkOpen();
  -
  -        return new DelegatingResultSet(this, _stmt.executeQuery(sql));
  +        return DelegatingResultSet.wrapResultSet(this,_stmt.executeQuery(sql));
       }
   
       public ResultSet getResultSet() throws SQLException {
           checkOpen();
  -
  -        return new DelegatingResultSet(this, _stmt.getResultSet());
  +        return DelegatingResultSet.wrapResultSet(this,_stmt.getResultSet());
       }
   
       public int executeUpdate(String sql) throws SQLException { checkOpen(); return 
_stmt.executeUpdate(sql);}
  @@ -228,7 +229,7 @@
               ((DelegatingPreparedStatement)_stmt).passivate();
           }
       }
  -
  +    
       protected boolean _closed = false;
   
       // ------------------- JDBC 3.0 -----------------------------------------
  
  
  

--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@;jakarta.apache.org>

Reply via email to