You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-dev@xml.apache.org by vg...@apache.org on 2007/11/13 16:35:42 UTC
svn commit: r594566 -
/xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCacheImpl.java
Author: vgritsenko
Date: Tue Nov 13 07:35:41 2007
New Revision: 594566
URL: http://svn.apache.org/viewvc?rev=594566&view=rev
Log:
synchronize cache table access
Modified:
xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCacheImpl.java
Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCacheImpl.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCacheImpl.java?rev=594566&r1=594565&r2=594566&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCacheImpl.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCacheImpl.java Tue Nov 13 07:35:41 2007
@@ -54,7 +54,8 @@
/**
* CacheKey to CacheEntry mapping
*/
- private Map table = new WeakHashMap();
+ private final Map table = new WeakHashMap();
+
private class CacheEntry {
private final int type;
@@ -88,7 +89,10 @@
public Entry getEntry(Collection col, Key key) {
- CacheEntry e = (CacheEntry) table.get(new CacheKey(col, key));
+ CacheEntry e;
+ synchronized (table) {
+ e = (CacheEntry) table.get(new CacheKey(col, key));
+ }
if (e == null) {
return null;
}
@@ -125,7 +129,10 @@
}
public Entry getEntryMeta(Collection col, Key key) {
- CacheEntry e = (CacheEntry) table.get(new DocumentCache.CacheKey(col, key));
+ CacheEntry e;
+ synchronized (table) {
+ e = (CacheEntry) table.get(new CacheKey(col, key));
+ }
if (e == null) {
return null;
}
@@ -135,11 +142,15 @@
public void putEntry(Collection col, Key key, int type, Value value, Map meta) {
CacheKey ckey = new CacheKey(col, key);
- table.put(ckey, new CacheEntry(type, key, value, meta));
+ synchronized (table) {
+ table.put(ckey, new CacheEntry(type, key, value, meta));
+ }
}
public void removeEntry(Collection col, Key key) {
- table.remove(new CacheKey(col, key));
+ synchronized (table) {
+ table.remove(new CacheKey(col, key));
+ }
}
/**