From: Patrick Plitzner Date: Tue, 10 May 2016 10:41:55 +0000 (+0200) Subject: Add support for PersistentBag #5781 X-Git-Tag: 4.1.0^2~63 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/db305a52e143bdfacffa817966a9495f7a5a58c3 Add support for PersistentBag #5781 --- diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/ProxyUtils.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/ProxyUtils.java index ceca3e97e..8cffe58e3 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/ProxyUtils.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/ProxyUtils.java @@ -48,7 +48,8 @@ public class ProxyUtils { public static enum CollectionType { SET, LIST, - MAP; + MAP, + BAG; @Override public String toString() { @@ -56,9 +57,13 @@ public class ProxyUtils { } } - public static Object getCollectionType(Object obj) { + public static Object getCollectionType(Object obj, Class clazz) { if(obj != null) { if(obj instanceof List) { + //the field in PersistentBag is called "bag" although it is an ArrayList -> # + if(clazz.equals(PersistentBag.class)){ + return CollectionType.BAG; + } return CollectionType.LIST; } if(obj instanceof Set) { diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java index e37e53034..1b2fc8abc 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java @@ -1347,7 +1347,7 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers if (clazz != null) { //CollectionField cf = cachedCommonService.getCollectionField(col); //cachedCommonService.updatePersistentCollection(cf); - Object collectionType = ProxyUtils.getCollectionType(obj); + Object collectionType = ProxyUtils.getCollectionType(obj, clazz); Field field = clazz.getDeclaredField(collectionType.toString()); field.setAccessible(true); field.set(this, obj);