Override equals() so that it takes lastModified into account to allow for the updating of images. This is for bug 42385.
git-svn-id: https://svn.apache.org/repos/asf/lenya/trunk@603984 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/modules/svg/java/src/org/apache/lenya/modules/svg/ProtocolHandler.java b/src/modules/svg/java/src/org/apache/lenya/modules/svg/ProtocolHandler.java
index 0de2567..1be1032 100644
--- a/src/modules/svg/java/src/org/apache/lenya/modules/svg/ProtocolHandler.java
+++ b/src/modules/svg/java/src/org/apache/lenya/modules/svg/ProtocolHandler.java
@@ -70,6 +70,7 @@
private Source source;
private SourceResolver resolver;
private String url;
+ private long lastModified;
public ParsedUrlData(String protocol, SourceResolver resolver, String url) {
this.url = url;
@@ -80,6 +81,7 @@
this.resolver = resolver;
try {
this.source = resolver.resolveURI(url);
+ this.lastModified = this.source.getLastModified();
this.contentType = this.source.getMimeType();
} catch (Exception e) {
throw new RuntimeException(e);
@@ -106,6 +108,30 @@
return url + source.getLastModified();
}
+ /**
+ * Object.equals
+ */
+ public boolean equals(Object obj) {
+ if(obj == null) {
+ return false;
+ }
+ if( ! (obj instanceof ParsedUrlData)) {
+ return false;
+ }
+ // super.equals() doesn't take lastModified into account
+ ParsedUrlData pud = (ParsedUrlData)obj;
+ if(pud.url.equals(this.url) && pud.lastModified == this.lastModified ) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Returns hashCode for object
+ */
+ public int hashCode() {
+ return (url + lastModified).hashCode();
+ }
}
public void start() throws Exception {