X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fspring%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fpersistence%2Fhibernate%2FHibernateSupport.java;fp=support%2Fspring%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fpersistence%2Fhibernate%2FHibernateSupport.java;h=52dbc352b742a8ea2c0552b4b454dccc2b164bfd;hb=1a9a184aeded3254a9db3236ee6702bfbe520352;hp=bd5901eb2c77e645cd53c4200c62f67486fdc8ad;hpb=5e33a52ba36ac928b9863ddd79d2d09f6a308af6;p=utils diff --git a/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java b/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java index bd5901eb..52dbc352 100644 --- a/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java +++ b/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java @@ -12,24 +12,22 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ package org.wamblee.persistence.hibernate; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.orm.hibernate3.HibernateTemplate; -import org.springframework.orm.hibernate3.support.HibernateDaoSupport; - -import org.wamblee.persistence.Persistent; - import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; - import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Map.Entry; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.orm.hibernate3.HibernateTemplate; +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.wamblee.persistence.Persistent; /** * Extension of @@ -243,21 +241,22 @@ public class HibernateSupport extends HibernateDaoSupport { * List of processed persistent objects. * */ - public static void processMap(Map aPersistent, Map aMerged, + public static void processMap(Map aPersistent, Map aMerged, List aProcessed) { if (aMerged.size() != aPersistent.size()) { throw new RuntimeException("Sizes differ " + aMerged.size() + " " + aPersistent.size()); } - Set keys = aMerged.keySet(); + Set> entries = aMerged.entrySet(); - for (Object key : keys) { + for (Entry entry : entries) { + Key key = entry.getKey(); if (!aPersistent.containsKey(key)) { throw new RuntimeException("Key '" + key + "' not found"); } - Object mergedValue = aMerged.get(key); + Value mergedValue = entry.getValue(); Object persistentValue = aPersistent.get(key); if (mergedValue instanceof Persistent) { @@ -287,6 +286,12 @@ public class HibernateSupport extends HibernateDaoSupport { } public boolean equals(Object aObj) { + if (aObj == null) { + return false; + } + if (!(aObj instanceof ObjectElem)) { + return false; + } return ((ObjectElem) aObj).object == object; }