You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/06/02 08:27:07 UTC

svn commit: r543710 - in /incubator/tuscany/java/das/rdb/src: main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java

Author: lresende
Date: Fri Jun  1 23:27:06 2007
New Revision: 543710

URL: http://svn.apache.org/viewvc?view=rev&rev=543710
Log:
Tuscany-1304 - OCC exception when trying to applychanges with multiple row updates
Adding test case to handle this scenario

Modified:
    incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java

Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java?view=diff&rev=543710&r1=543709&r2=543710
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java Fri Jun  1 23:27:06 2007
@@ -140,31 +140,30 @@
 
     private UpdateCommandImpl getUpdateCommand(DataObject changedObject) {
 
-        if (updateCommand == null) {
-            Table table = mapping.getTableByTypeName(changedObject.getType().getName());
-            if (table == null) {
-                if (changedObject.getType().getProperty("ID") != null) {
-                    mapping.addPrimaryKey(changedObject.getType().getName() + ".ID");
-                    table = mapping.getTableByTypeName(changedObject.getType().getName());
-                } else {
-                    throw new RuntimeException("Table " + changedObject.getType().getName()
-                            + " was changed in the DataGraph but is not present in the Config");
-                }
+        Table table = mapping.getTableByTypeName(changedObject.getType().getName());
+        if (table == null) {
+            if (changedObject.getType().getProperty("ID") != null) {
+                mapping.addPrimaryKey(changedObject.getType().getName() + ".ID");
+                table = mapping.getTableByTypeName(changedObject.getType().getName());
+            } else {
+                throw new RuntimeException("Table " + changedObject.getType().getName()
+                        + " was changed in the DataGraph but is not present in the Config");
             }
-            Update update = table.getUpdate();
-            if (update == null) {
-                updateCommand = UpdateGenerator.INSTANCE.getUpdateCommand(mapping, changedObject, table);
+        }
+        Update update = table.getUpdate();
+        if (update == null) {
+            updateCommand = UpdateGenerator.INSTANCE.getUpdateCommand(mapping, changedObject, table);
+        } else {
+            TableWrapper t = new TableWrapper(table);
+            if (t.getCollisionColumn() != null) {
+                updateCommand = new OptimisticWriteCommandImpl(update);
             } else {
-                TableWrapper t = new TableWrapper(table);
-                if (t.getCollisionColumn() != null) {
-                    updateCommand = new OptimisticWriteCommandImpl(update);
-                } else {
-                    updateCommand = new UpdateCommandImpl(update);
-                }
+                updateCommand = new UpdateCommandImpl(update);
             }
-            updateCommand.setConnection(connection);
-            updateCommand.configWrapper = mapping;
         }
+        updateCommand.setConnection(connection);
+        updateCommand.configWrapper = mapping;
+
         if (this.logger.isDebugEnabled()) {
             this.logger.debug("Returning updateCommand: " + updateCommand);
         }

Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java?view=diff&rev=543710&r1=543709&r2=543710
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java (original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java Fri Jun  1 23:27:06 2007
@@ -100,6 +100,7 @@
         // Read customer 1
         Command select = das.createCommand("Select * from CUSTOMER where ID = 1");
         DataObject root = select.executeQuery();
+        assertFalse(root.get("CUSTOMER[1]/LASTNAME").equals("Pavick"));
 
         DataObject customer = (DataObject) root.get("CUSTOMER[1]");
 
@@ -124,6 +125,7 @@
         // Read customer 1
         Command select = das.createCommand("Select * from CUSTOMER where ID = 1");
         DataObject root = select.executeQuery();
+        assertFalse(root.get("CUSTOMER[1]/LASTNAME").equals("Pavick"));
 
         DataObject customer = (DataObject) root.get("CUSTOMER[1]");
 
@@ -148,6 +150,7 @@
         // Read customer with particular ID
         Command select = das.createCommand("Select * from CUSTOMER where ID = 1");
         DataObject root = select.executeQuery();
+        assertFalse(root.get("CUSTOMER[1]/LASTNAME").equals("Pavick"));
 
         DataObject customer = root.getDataObject("CUSTOMER[1]");
 
@@ -171,6 +174,7 @@
         // Read customer with particular ID
         Command select = das.createCommand("Select * from CUSTOMER where ID = 1");
         DataObject root = select.executeQuery();
+        assertFalse(root.get("CUSTOMER[1]/LASTNAME").equals("Pavick"));
 
         DataObject customer = (DataObject) root.get("CUSTOMER[1]");
 
@@ -195,6 +199,7 @@
         Command select = das.getCommand("getCustomer");
         select.setParameter(1, 1);
         DataObject root = select.executeQuery();
+        assertFalse(root.get("CUSTOMER[1]/LASTNAME").equals("Pavick"));
 
         DataObject customer = (DataObject) root.get("CUSTOMER[1]");
 
@@ -211,7 +216,6 @@
     }
     
     public void testReadModifyApplyMultipleRows() throws Exception {
-        /*
         DAS das = DAS.FACTORY.createDAS(getConnection());
         // Verify pre-condition
         Command select = das.createCommand("Select * from CUSTOMER");
@@ -235,7 +239,6 @@
         root = select.executeQuery();
         assertEquals("Pavick", root.getString("CUSTOMER[1]/LASTNAME"));
         assertEquals("Silva", root.getString("CUSTOMER[2]/LASTNAME"));
-        */
     }    
     
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org