aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/java/org/apache/fop/render/afp/DataObjectCache.java6
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");
}