Project

General

Profile

« Previous | Next » 

Revision a5a5ec1b

Added by Katja Luther over 2 years ago

only log lazy initialisation exception while remove null from collection

View differences:

cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/PostMergeEntityListener.java
13 13
import java.util.Set;
14 14
import java.util.concurrent.ConcurrentHashMap;
15 15

  
16
import org.apache.log4j.Logger;
16 17
import org.hibernate.Hibernate;
17 18
import org.hibernate.HibernateException;
19
import org.hibernate.LazyInitializationException;
18 20
import org.hibernate.Session;
19 21
import org.hibernate.event.spi.MergeEvent;
20 22
import org.hibernate.event.spi.MergeEventListener;
......
34 36
    private static final long serialVersionUID = 1565797119368313987L;
35 37

  
36 38
    private static Map<Session, Set<CdmBase>> newEntitiesMap = new ConcurrentHashMap<>();
37

  
39
    private static final Logger logger = Logger.getLogger(PostMergeEntityListener.class);
38 40

  
39 41
    public static void addSession(Session session) {
40 42
        newEntitiesMap.put(session, new HashSet<>());
......
101 103

  
102 104
                TermTree<?> tree = (TermTree<?>)entity;
103 105
                tree.removeNullValueFromChildren();
104
                for (TermNode<?> node:tree.getRootChildren()){
105
                    node.removeNullValueFromChildren();
106
                    if (node.getChildNodes() != null){
107
                        for (TermNode<?> childNode: node.getChildNodes()){
108
                            removeNullFromCollections(childNode);
106
                try{
107
                    for (TermNode<?> node:tree.getRootChildren()){
108
                        node.removeNullValueFromChildren();
109
                        if (node.getChildNodes() != null){
110
                            for (TermNode<?> childNode: node.getChildNodes()){
111
                                removeNullFromCollections(childNode);
112
                            }
109 113
                        }
110 114
                    }
115
                } catch (LazyInitializationException e) {
116
                    logger.warn("Cannot clean up uninitialized children without a session, skipping.");
111 117
                }
112 118
            } else if (TermNode.class.isAssignableFrom(entityClazz)){
113 119
                TermNode<?> node = (TermNode<?>)entity;

Also available in: Unified diff