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()));
  +		}
       }