dlr         02/01/25 18:32:29

  Modified:    src/java/org/apache/torque/util BasePeer.java
  Log:
  Fix for a NPE noticed by Chris Dolan and myself which occurs when a
  table does not have a primary key defined in its XML schema (even if
  idMethod="none").
  
  Revision  Changes    Path
  1.22      +10 -5     
jakarta-turbine-torque/src/java/org/apache/torque/util/BasePeer.java
  
  Index: BasePeer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/util/BasePeer.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -u -r1.21 -r1.22
  --- BasePeer.java     26 Jan 2002 01:34:25 -0000      1.21
  +++ BasePeer.java     26 Jan 2002 02:32:29 -0000      1.22
  @@ -110,7 +110,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Frank Y. Kim</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>John D. McNally</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Brett McLaughlin</a>
  - * @version $Id: BasePeer.java,v 1.21 2002/01/26 01:34:25 dlr Exp $
  + * @version $Id: BasePeer.java,v 1.22 2002/01/26 02:32:29 dlr Exp $
    */
   public abstract class BasePeer implements java.io.Serializable
   {
  @@ -770,7 +770,9 @@
           // setting both columns with your own values
           boolean info = false;
   
  -        if (!criteria.containsKey(pk.getFullyQualifiedName()))
  +        // pk will be null if there is no primary key defined for the table
  +        // we're inserting into.
  +        if (pk != null && !criteria.containsKey(pk.getFullyQualifiedName()))
           {
               if (keyGen == null)
               {
  @@ -796,17 +798,20 @@
               }
           }
   
  -        // Set up Village for the insert.
  +        // Use Village to perform the insert.
           TableDataSet tds = null;
           try
           {
  -            tds = new TableDataSet(dbCon.getConnection(), tableName );
  +            tds = new TableDataSet(dbCon.getConnection(), tableName);
               Record rec = tds.addRecord();
               BasePeer.insertOrUpdateRecord(rec, tableName, criteria);
           }
           finally
           {
  -            if (tds != null) tds.close();
  +            if (tds != null)
  +            {
  +                tds.close();
  +            }
           }
   
           // If the primary key column is auto-incremented, get the id
  
  
  

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

Reply via email to