cziegeler 2004/05/19 01:42:40
Modified: src/java/org/apache/cocoon/caching PipelineCacheKey.java
ComponentCacheKey.java
. status.xml
Log:
Fixing bug in hash code calculation - persistence is now working
Revision Changes Path
1.3 +3 -4
cocoon-2.1/src/java/org/apache/cocoon/caching/PipelineCacheKey.java
Index: PipelineCacheKey.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/caching/PipelineCacheKey.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PipelineCacheKey.java 5 Mar 2004 13:02:45 -0000 1.2
+++ PipelineCacheKey.java 19 May 2004 08:42:40 -0000 1.3
@@ -30,10 +30,10 @@
implements Serializable {
/** The keys */
- private List keys;
+ private final List keys;
/** the hash code */
- private int hashCode = 0;
+ private int hashCode;
/**
* Constructor
@@ -116,7 +116,6 @@
* Generate a hash code
*/
public int hashCode() {
- // FIXME - this is not very safe
if (this.hashCode == 0) {
final int len = this.keys.size();
for(int i=0; i < len; i++) {
1.3 +10 -16
cocoon-2.1/src/java/org/apache/cocoon/caching/ComponentCacheKey.java
Index: ComponentCacheKey.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/caching/ComponentCacheKey.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ComponentCacheKey.java 5 Mar 2004 13:02:45 -0000 1.2
+++ ComponentCacheKey.java 19 May 2004 08:42:40 -0000 1.3
@@ -41,15 +41,15 @@
private static final String[] COMPONENTS = { "X", "G", "X", "T", "X",
"S", "X", "R" };
/** The component type */
- private int type;
+ private final int type;
/** The component identifier */
- private String identifier;
+ private final String identifier;
/** The unique key */
- private Serializable key;
+ private final Serializable key;
/** the hash code */
- private int hashCode = 0;
+ private final int hashCode;
/** cachePoint */
- private boolean cachePoint = false;
+ private final boolean cachePoint;
/**
* Constructor
@@ -57,10 +57,7 @@
public ComponentCacheKey(int componentType,
String componentIdentifier,
Serializable cacheKey) {
- this.type = componentType;
- this.identifier = componentIdentifier;
- this.key = cacheKey;
-
+ this(componentType, componentIdentifier, cacheKey, false);
}
/**
@@ -75,6 +72,9 @@
this.key = cacheKey;
/** cachePoint */
this.cachePoint = cachePoint;
+ this.hashCode = this.type +
+ (this.identifier.length() << 3) +
+ this.key.hashCode();
}
/**
@@ -96,12 +96,6 @@
* HashCode
*/
public int hashCode() {
- // FIXME - this is not very safe
- if (this.hashCode == 0) {
- this.hashCode = this.type +
- (this.identifier.length() << 3) +
- (this.key.hashCode() << 10);
- }
return this.hashCode;
}
1.330 +5 -1 cocoon-2.1/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/status.xml,v
retrieving revision 1.329
retrieving revision 1.330
diff -u -r1.329 -r1.330
--- status.xml 18 May 2004 16:19:58 -0000 1.329
+++ status.xml 19 May 2004 08:42:40 -0000 1.330
@@ -211,6 +211,10 @@
<changes>
<release version="@version@" date="@date@">
+ <action dev="CZ" type="fix">
+ The persistent store is now really persistent between two application
runs. (Fixed
+ a bug in the hash code calculation of the keys).
+ </action>
<action dev="AG" type="update">
Updated Apache JCS to 1.0 dev 20040516 and util.concurrent to 1.3.3
</action>