mcardle 2005/12/14 17:47:48 CET
Modified files:
src/org/jahia/esi/invalidation/services Invalidator.java
Log:
* support for first step in rewrite of backend cache code
* more error handling
Revision Changes Path
1.9 +17 -12
esi_server/src/org/jahia/esi/invalidation/services/Invalidator.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/esi_server/src/org/jahia/esi/invalidation/services/Invalidator.java.diff?r1=1.8&r2=1.9&f=h
Index: Invalidator.java
===================================================================
RCS file:
/home/cvs/repository/esi_server/src/org/jahia/esi/invalidation/services/Invalidator.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Invalidator.java 7 Dec 2005 17:02:00 -0000 1.8
+++ Invalidator.java 14 Dec 2005 16:47:48 -0000 1.9
@@ -50,7 +50,6 @@
import java.io.*;
import java.util.Vector;
import java.util.Enumeration;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
@@ -65,7 +64,7 @@
import org.jahia.esi.invalidation.markup.Cookie;
import org.jahia.esi.invalidation.markup.Header;
import org.jahia.esi.invalidation.markup.Other;
-import org.jahia.esi.settings.GeneralSettings;
+import org.jahia.esi.settings.SettingsBean;
import org.jahia.esi.cache.FragmentCache;
import org.jahia.esi.cache.UrlCacheObject;
@@ -83,12 +82,12 @@
base64 = new Base64();
try {
- String s = (GeneralSettings.getInstance().getUsername()
- + ":" + GeneralSettings.getInstance().getPassword());
+ String s = (SettingsBean.getInstance().getUsername()
+ + ":" + SettingsBean.getInstance().getPassword());
byte[] sbtytes = base64.encode(s.getBytes() );
base64Signature = new String(sbtytes, "ISO-8859-1" );
- System.out.println("logon base64Signature:
"+base64Signature);//TODO: DELETE ME!!!!
- System.out.println("logon string: "+s);//TODO: DELETE ME!!!!
+ log.info("logon base64Signature: "+base64Signature);//TODO:
DELETE ME!!!!
+ log.info("logon string: "+s);//TODO: DELETE ME!!!!
} catch (UnsupportedEncodingException e) {
log.error(e);
@@ -411,8 +410,7 @@
private String processInvalidationObjects(Vector objects) {
- FragmentCache cache = FragmentCache.getInstance();
- HashMap urlCache = cache.getUrlCache();
+ FragmentCache fragmentCache = FragmentCache.getInstance();
StringBuffer respMsg = new StringBuffer("");
@@ -471,12 +469,19 @@
//Search cache for any matches
Vector urlKeysToRemove = new Vector();
- Iterator urlItid = urlCache.keySet().iterator();
+ Iterator urlItid =
fragmentCache.getUrlCacheKeySet().iterator();
while (urlItid.hasNext()) {
String urlKey = (String) urlItid.next();
- UrlCacheObject urlObj = (UrlCacheObject)
urlCache.get(urlKey);
+ //TODO: potential for error here since
getUrlCacheObject() can modify cache if the object has expired
+ //TODO: need to fix this
+ UrlCacheObject urlObj =
fragmentCache.getUrlCacheObject(urlKey);
- if (urlObj.getUrl()==null ||
"".equals(urlObj.getUrl())) {
+ if (urlObj==null) {
+ log.error("Missing UrlCacheObject[" + urlKey + "]
whilst iterating over UrlCacheKeySet");
+ continue;
+ }
+
+ if (urlObj.getUrl()==null || "".equals(urlObj.getUrl()))
{
log.error("Invalid UrlCacheObject.getUrl() value in
matching process : " + urlObj);
continue;
}
@@ -518,7 +523,7 @@
Enumeration enumK = urlKeysToRemove.elements();
while (enumK.hasMoreElements()) {
String urlKey = (String) enumK.nextElement();
- cache.remove(urlKey);
+ fragmentCache.remove(urlKey);
//TODO: support obj.getREMOVALTTL();
respMsg.append("Removed ["+urlKey+"] from Cache with
INFO: ["+obj.getINFO()+"]\n");
numInv++;