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);