You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2018/06/27 19:22:35 UTC
svn commit: r1834532 -
/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
Author: schor
Date: Wed Jun 27 19:22:35 2018
New Revision: 1834532
URL: http://svn.apache.org/viewvc?rev=1834532&view=rev
Log:
[UIMA-5801]
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java?rev=1834532&r1=1834531&r2=1834532&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java Wed Jun 27 19:22:35 2018
@@ -42,6 +42,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Set;
import java.util.Spliterator;
import java.util.concurrent.atomic.AtomicInteger;
@@ -97,6 +98,7 @@ import org.apache.uima.internal.util.Int
import org.apache.uima.internal.util.Misc;
import org.apache.uima.internal.util.PositiveIntSet;
import org.apache.uima.internal.util.PositiveIntSet_impl;
+import org.apache.uima.internal.util.UIMAClassLoader;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.cas.AnnotationBase;
import org.apache.uima.jcas.cas.BooleanArray;
@@ -575,8 +577,15 @@ public class CASImpl extends AbstractCas
// pear caches
id2tramp = null;
id2base = null;
- for (JCasHashMap m : cl2id2tramp.values()) {
- m.clear();
+ for (Iterator<Entry<ClassLoader, JCasHashMap>> it = cl2id2tramp.entrySet().iterator(); it.hasNext();) {
+ Entry<ClassLoader, JCasHashMap> e = it.next();
+ ClassLoader cl = e.getKey();
+ e.getValue().clear();
+ if (cl instanceof UIMAClassLoader) { // https://issues.apache.org/jira/browse/UIMA-5801
+ if (((UIMAClassLoader)cl).isClosed()) {
+ it.remove();
+ }
+ }
}
// index corruption avoidance