You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by ha...@apache.org on 2004/04/28 00:23:08 UTC
cvs commit: cocoon-2.1/src/blocks/databases/java/org/apache/cocoon/acting/modular DatabaseAction.java
haul 2004/04/27 15:23:08
Modified: src/blocks/databases/java/org/apache/cocoon/acting/modular
DatabaseAction.java
Log:
make action threadsafe (again?)
add equals / hashCode methods to LookupKey
Revision Changes Path
1.8 +30 -2 cocoon-2.1/src/blocks/databases/java/org/apache/cocoon/acting/modular/DatabaseAction.java
Index: DatabaseAction.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/databases/java/org/apache/cocoon/acting/modular/DatabaseAction.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- DatabaseAction.java 28 Mar 2004 20:51:24 -0000 1.7
+++ DatabaseAction.java 27 Apr 2004 22:23:08 -0000 1.8
@@ -31,6 +31,8 @@
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.ServiceSelector;
+import org.apache.avalon.framework.thread.ThreadSafe;
+
import org.apache.cocoon.Constants;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.acting.AbstractComplementaryConfigurableAction;
@@ -91,7 +93,7 @@
* @see org.apache.cocoon.components.modules.database
* @see org.apache.cocoon.util.JDBCTypeConversions
*/
-public abstract class DatabaseAction extends AbstractComplementaryConfigurableAction implements Configurable, Disposable {
+public abstract class DatabaseAction extends AbstractComplementaryConfigurableAction implements Configurable, Disposable, ThreadSafe {
// ========================================================================
// constants
@@ -186,6 +188,32 @@
this.tableConf = tableConf;
this.modeTypes = modeTypes;
}
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals(Object obj) {
+ boolean result = false;
+ if (obj != null && obj instanceof LookUpKey) {
+ LookUpKey luk = (LookUpKey) obj;
+ result = true;
+ result = result && (luk.tableConf == null ?
+ this.tableConf == null : luk.tableConf.equals(this.tableConf));
+ result = result && (luk.modeTypes == null ?
+ this.modeTypes == null : luk.modeTypes.equals(this.modeTypes));
+ }
+
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ public int hashCode() {
+ return (this.tableConf != null ?
+ this.tableConf.hashCode() :
+ (this.modeTypes != null ? this.modeTypes.hashCode() : super.hashCode()));
+ }
}