Oops, we were using _result to pass the record into the modifier in the first

place. We'll continue to do that and clear out _result during invoke() which is
a wee bit clearer anyway.
This commit is contained in:
Michael Bayne
2007-05-23 18:20:08 +00:00
parent f711b36527
commit ffa1f10e6b
@@ -284,10 +284,11 @@ public class DepotRepository
if (key == null) { if (key == null) {
throw new IllegalArgumentException("Can't update record with null primary key."); throw new IllegalArgumentException("Can't update record with null primary key.");
} }
// by passing null as "result" we flush the record from the cache and don't restore it return _ctx.invoke(new CachingModifier<T>(record, key, key) {
return _ctx.invoke(new CachingModifier<T>(null, key, key) {
public int invoke (Connection conn) throws SQLException { public int invoke (Connection conn) throws SQLException {
PreparedStatement stmt = marsh.createUpdate(conn, _result, key, modifiedFields); PreparedStatement stmt = marsh.createUpdate(conn, _result, key, modifiedFields);
// clear out _result so that we don't rewrite this partial record to the cache
_result = null;
try { try {
return stmt.executeUpdate(); return stmt.executeUpdate();
} finally { } finally {