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