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