diff options
-rw-r--r-- | src/java/org/apache/fop/render/afp/DataObjectCache.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/java/org/apache/fop/render/afp/DataObjectCache.java b/src/java/org/apache/fop/render/afp/DataObjectCache.java index f2631f0cd..c8129baf2 100644 --- a/src/java/org/apache/fop/render/afp/DataObjectCache.java +++ b/src/java/org/apache/fop/render/afp/DataObjectCache.java @@ -25,6 +25,7 @@ import java.io.IOException; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; +import java.util.Collections; import java.util.Map; import org.apache.commons.logging.Log; @@ -48,6 +49,7 @@ public final class DataObjectCache { private static Map/*<Integer,DataObjectCache>*/ cacheMap = new java.util.HashMap/*<Integer,DataObjectCache>*/(); + /** Mapping of data object uri --> cache record */ private Map/*<ResourceInfo,Record>*/ includableMap = new java.util.HashMap/*<ResourceInfo,Record>*/(); @@ -110,7 +112,9 @@ public final class DataObjectCache { try { raFile.close(); tempFile.delete(); - cacheMap.remove(id); // remove ourselves from the cache map + synchronized (cacheMap) { + cacheMap.remove(id); // remove ourselves from the cache map + } } catch (IOException e) { log.error("Failed to close temporary file"); } |