User: dsundstrom
  Date: 01/11/29 10:42:23

  Modified:    src/main/org/jboss/ejb/plugins/cmp/jdbc
                        JDBCFindByForeignKeyCommand.java
                        JDBCLoadEntityCommand.java
                        JDBCLoadFieldCommand.java
                        JDBCLoadRelationCommand.java
                        JDBCReadAheadCommand.java JDBCStoreManager.java
  Log:
  Added select for update code.
  
  Revision  Changes    Path
  1.8       +5 -1      
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCFindByForeignKeyCommand.java
  
  Index: JDBCFindByForeignKeyCommand.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCFindByForeignKeyCommand.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JDBCFindByForeignKeyCommand.java  2001/11/28 11:32:54     1.7
  +++ JDBCFindByForeignKeyCommand.java  2001/11/29 18:42:23     1.8
  @@ -23,7 +23,7 @@
    * entity's table.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.7 $
  + * @version $Revision: 1.8 $
    */
   public class JDBCFindByForeignKeyCommand {
      private JDBCStoreManager manager;
  @@ -50,6 +50,10 @@
                  entity.getJDBCPrimaryKeyFields()));
         sql.append(" FROM ").append(entity.getTableName());
         sql.append(" WHERE ").append(SQLUtil.getWhereClause(foreignKeyFields));
  +
  +      if(entity.getMetaData().hasSelectForUpdate()) {
  +         sql.append(" FOR UPDATE");
  +      }
         
         Connection con = null;
         PreparedStatement ps = null;
  
  
  
  1.9       +5 -1      
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java
  
  Index: JDBCLoadEntityCommand.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JDBCLoadEntityCommand.java        2001/11/28 11:32:54     1.8
  +++ JDBCLoadEntityCommand.java        2001/11/29 18:42:23     1.9
  @@ -33,7 +33,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Justin Forder</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dirk Zimmermann</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>danch (Dan Christopherson)</a>
  - * @version $Revision: 1.8 $
  + * @version $Revision: 1.9 $
    */
   public class JDBCLoadEntityCommand implements LoadEntityCommand {
      private JDBCStoreManager manager;
  @@ -69,6 +69,10 @@
         sql.append(" FROM ").append(entity.getTableName());
         sql.append(" WHERE ").append(
               SQLUtil.getWhereClause(entity.getJDBCPrimaryKeyFields()));
  +
  +      if(entity.getMetaData().hasSelectForUpdate()) {
  +         sql.append(" FOR UPDATE");
  +      }
         
         Connection con = null;
         PreparedStatement ps = null;
  
  
  
  1.8       +5 -1      
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadFieldCommand.java
  
  Index: JDBCLoadFieldCommand.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadFieldCommand.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JDBCLoadFieldCommand.java 2001/11/28 11:32:54     1.7
  +++ JDBCLoadFieldCommand.java 2001/11/29 18:42:23     1.8
  @@ -30,7 +30,7 @@
    * fields.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.7 $
  + * @version $Revision: 1.8 $
    */
   public class JDBCLoadFieldCommand {
      private JDBCStoreManager manager;
  @@ -79,6 +79,10 @@
         sql.append(" FROM ").append(entity.getTableName());
         sql.append(" WHERE ").append(
               SQLUtil.getWhereClause(entity.getJDBCPrimaryKeyFields()));
  +
  +      if(entity.getMetaData().hasSelectForUpdate()) {
  +         sql.append(" FOR UPDATE");
  +      }
   
         Connection con = null;
         PreparedStatement ps = null;
  
  
  
  1.7       +5 -1      
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadRelationCommand.java
  
  Index: JDBCLoadRelationCommand.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadRelationCommand.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JDBCLoadRelationCommand.java      2001/11/28 11:32:54     1.6
  +++ JDBCLoadRelationCommand.java      2001/11/29 18:42:23     1.7
  @@ -22,7 +22,7 @@
    * Loads relations for a particular entity from a relation table.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.6 $
  + * @version $Revision: 1.7 $
    */
   public class JDBCLoadRelationCommand {
      private JDBCStoreManager manager;
  @@ -52,6 +52,10 @@
         sql.append(cmrField.getRelationMetaData().getTableName());
         sql.append(" WHERE ").append(SQLUtil.getWhereClause(
                  cmrField.getTableKeyFields()));
  +
  +      if(cmrField.getRelationMetaData().hasSelectForUpdate()) {
  +         sql.append(" FOR UPDATE");
  +      }
   
         Connection con = null;
         PreparedStatement ps = null;
  
  
  
  1.5       +5 -1      
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCReadAheadCommand.java
  
  Index: JDBCReadAheadCommand.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCReadAheadCommand.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JDBCReadAheadCommand.java 2001/11/28 22:06:19     1.4
  +++ JDBCReadAheadCommand.java 2001/11/29 18:42:23     1.5
  @@ -24,7 +24,7 @@
    * JDBCReadAheadCommand
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Oleg Nitz</a>
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    */
   public class JDBCReadAheadCommand {
   
  @@ -158,6 +158,10 @@
               }
               sql.append(SQLUtil.getWhereClause(
                        entity.getJDBCPrimaryKeyFields()));
  +         }
  +
  +         if(entity.getMetaData().hasSelectForUpdate()) {
  +            sql.append(" FOR UPDATE");
            }
            
            lastKeysCount = keysCount;
  
  
  
  1.15      +3 -6      
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreManager.java
  
  Index: JDBCStoreManager.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreManager.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- JDBCStoreManager.java     2001/11/28 11:32:54     1.14
  +++ JDBCStoreManager.java     2001/11/29 18:42:23     1.15
  @@ -33,8 +33,6 @@
   import org.jboss.ejb.EntityPersistenceStore2;
   import org.jboss.ejb.EntityEnterpriseContext;
   import org.jboss.ejb.ListCacheKey;
  -import org.jboss.ejb.plugins.cmp.CMPStoreManager;
  -import org.jboss.ejb.plugins.cmp.CommandFactory;
   import org.jboss.ejb.plugins.cmp.bridge.EntityBridgeInvocationHandler;
   import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMPFieldBridge;
   import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge;
  @@ -66,7 +64,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
    * @see org.jboss.ejb.EntityPersistenceStore
  - * @version $Revision: 1.14 $
  + * @version $Revision: 1.15 $
    */
   public class JDBCStoreManager implements EntityPersistenceStore2 {
   
  @@ -569,9 +567,8 @@
            return;
         }
   
  -      // this is a double check lock and must be removed
  -      if (trans != null && !transactions.contains(trans)) {
  -         synchronized (transactions) { // synchronize only if absolutely necessary
  +      synchronized (transactions) { 
  +         if (trans != null && !transactions.contains(trans)) {
               if (!transactions.contains(trans)) {
                  try {
                     trans.registerSynchronization(new PreloadClearSynch(trans));
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to