You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by se...@apache.org on 2007/02/22 17:52:17 UTC

svn commit: r510585 - /jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HostConfiguration.java

Author: sebb
Date: Thu Feb 22 08:52:16 2007
New Revision: 510585

URL: http://svn.apache.org/viewvc?view=rev&rev=510585
Log:
Use super.clone() to ensure subclass clone() methods work

Modified:
    jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HostConfiguration.java

Modified: jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HostConfiguration.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HostConfiguration.java?view=diff&rev=510585&r1=510584&r2=510585
==============================================================================
--- jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HostConfiguration.java (original)
+++ jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HostConfiguration.java Thu Feb 22 08:52:16 2007
@@ -81,7 +81,11 @@
      * @param hostConfiguration the hostConfiguration to copy
      */
     public HostConfiguration (final HostConfiguration hostConfiguration) {
-        // wrap all of the assignments in a synchronized block to avoid
+        init(hostConfiguration);        
+    }
+
+	private void init(final HostConfiguration hostConfiguration) {
+		// wrap all of the assignments in a synchronized block to avoid
         // having to negotiate the monitor for each method call
         synchronized (hostConfiguration) {
             try {
@@ -107,7 +111,14 @@
      * @see java.lang.Object#clone()
      */
     public Object clone() {
-        return new HostConfiguration(this);
+    	HostConfiguration copy;
+		try {
+			copy = (HostConfiguration) super.clone();
+		} catch (CloneNotSupportedException e) {
+            throw new IllegalArgumentException("Host configuration could not be cloned");
+		}
+    	copy.init(this);
+        return copy;
     }    
     
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org