Repository: logging-log4j2
Updated Branches:
  refs/heads/master 205d64e41 -> 995e3c3bc


[LOG4J2-1603]

Redo hashCode() and equals() methods in
org.apache.logging.log4j.core.net.ssl classes.

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/995e3c3b
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/995e3c3b
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/995e3c3b

Branch: refs/heads/master
Commit: 995e3c3bcf210f14c796ae6f57e8008d8cfe31b8
Parents: 205d64e
Author: Gary Gregory <ggreg...@apache.org>
Authored: Tue Sep 20 15:55:30 2016 -0700
Committer: Gary Gregory <ggreg...@apache.org>
Committed: Tue Sep 20 15:55:30 2016 -0700

----------------------------------------------------------------------
 .../net/ssl/AbstractKeyStoreConfiguration.java  | 38 ++++++++++
 .../core/net/ssl/KeyStoreConfiguration.java     | 30 ++++++++
 .../log4j/core/net/ssl/SslConfiguration.java    | 77 ++++++++++++++------
 .../core/net/ssl/TrustStoreConfiguration.java   | 31 ++++++++
 src/changes/changes.xml                         |  3 +
 5 files changed, 156 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/995e3c3b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java
index 57fd791..86bc844 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java
@@ -73,4 +73,42 @@ public class AbstractKeyStoreConfiguration extends 
StoreConfiguration<KeyStore>
         return this.keyStore;
     }
 
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = super.hashCode();
+        result = prime * result + ((keyStore == null) ? 0 : 
keyStore.hashCode());
+        result = prime * result + ((keyStoreType == null) ? 0 : 
keyStoreType.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (!super.equals(obj)) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        AbstractKeyStoreConfiguration other = (AbstractKeyStoreConfiguration) 
obj;
+        if (keyStore == null) {
+            if (other.keyStore != null) {
+                return false;
+            }
+        } else if (!keyStore.equals(other.keyStore)) {
+            return false;
+        }
+        if (keyStoreType == null) {
+            if (other.keyStoreType != null) {
+                return false;
+            }
+        } else if (!keyStoreType.equals(other.keyStoreType)) {
+            return false;
+        }
+        return true;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/995e3c3b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java
index c5369ea..54c4656 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java
@@ -72,4 +72,34 @@ public class KeyStoreConfiguration extends 
AbstractKeyStoreConfiguration {
         kmFactory.init(this.getKeyStore(), this.getPasswordAsCharArray());
         return kmFactory;
     }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = super.hashCode();
+        result = prime * result + ((keyManagerFactoryAlgorithm == null) ? 0 : 
keyManagerFactoryAlgorithm.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (!super.equals(obj)) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        KeyStoreConfiguration other = (KeyStoreConfiguration) obj;
+        if (keyManagerFactoryAlgorithm == null) {
+            if (other.keyManagerFactoryAlgorithm != null) {
+                return false;
+            }
+        } else if 
(!keyManagerFactoryAlgorithm.equals(other.keyManagerFactoryAlgorithm)) {
+            return false;
+        }
+        return true;
+    }
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/995e3c3b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
index a978f0b..267cc24 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
@@ -204,29 +204,6 @@ public class SslConfiguration {
         }
     }
 
-    public boolean equals(final SslConfiguration config) {
-        if (config == null) {
-            return false;
-        }
-
-        boolean keyStoreEquals = false;
-        boolean trustStoreEquals = false;
-
-        if (keyStoreConfig != null) {
-            keyStoreEquals = keyStoreConfig.equals(config.keyStoreConfig);
-        } else {
-            keyStoreEquals = keyStoreConfig == config.keyStoreConfig;
-        }
-
-        if (trustStoreConfig != null) {
-            trustStoreEquals = 
trustStoreConfig.equals(config.trustStoreConfig);
-        } else {
-            trustStoreEquals = trustStoreConfig == config.trustStoreConfig;
-        }
-
-        return keyStoreEquals && trustStoreEquals;
-    }
-
     /**
      * Creates an SslConfiguration from a KeyStoreConfiguration and a 
TrustStoreConfiguration.
      * @param protocol The protocol, see 
http://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#SSLContext
@@ -243,4 +220,58 @@ public class SslConfiguration {
             // @formatter:on
         return new SslConfiguration(protocol, keyStoreConfig, 
trustStoreConfig);
     }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((keyStoreConfig == null) ? 0 : 
keyStoreConfig.hashCode());
+        result = prime * result + ((protocol == null) ? 0 : 
protocol.hashCode());
+        result = prime * result + ((sslContext == null) ? 0 : 
sslContext.hashCode());
+        result = prime * result + ((trustStoreConfig == null) ? 0 : 
trustStoreConfig.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        SslConfiguration other = (SslConfiguration) obj;
+        if (keyStoreConfig == null) {
+            if (other.keyStoreConfig != null) {
+                return false;
+            }
+        } else if (!keyStoreConfig.equals(other.keyStoreConfig)) {
+            return false;
+        }
+        if (protocol == null) {
+            if (other.protocol != null) {
+                return false;
+            }
+        } else if (!protocol.equals(other.protocol)) {
+            return false;
+        }
+        if (sslContext == null) {
+            if (other.sslContext != null) {
+                return false;
+            }
+        } else if (!sslContext.equals(other.sslContext)) {
+            return false;
+        }
+        if (trustStoreConfig == null) {
+            if (other.trustStoreConfig != null) {
+                return false;
+            }
+        } else if (!trustStoreConfig.equals(other.trustStoreConfig)) {
+            return false;
+        }
+        return true;
+    }
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/995e3c3b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java
index 7bae22e..d94241b 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java
@@ -70,4 +70,35 @@ public class TrustStoreConfiguration extends 
AbstractKeyStoreConfiguration {
         tmFactory.init(this.getKeyStore());
         return tmFactory;
     }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = super.hashCode();
+        result = prime * result
+                + ((trustManagerFactoryAlgorithm == null) ? 0 : 
trustManagerFactoryAlgorithm.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (!super.equals(obj)) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        TrustStoreConfiguration other = (TrustStoreConfiguration) obj;
+        if (trustManagerFactoryAlgorithm == null) {
+            if (other.trustManagerFactoryAlgorithm != null) {
+                return false;
+            }
+        } else if 
(!trustManagerFactoryAlgorithm.equals(other.trustManagerFactoryAlgorithm)) {
+            return false;
+        }
+        return true;
+    }
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/995e3c3b/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c657e0b..b42c910 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -168,6 +168,9 @@
       <action issue="LOG4J2-1602" dev="ggregory" type="fix">
         NPE in 
org.apache.logging.log4j.core.util.datetime.FormatCache.MultipartKey.equals(Object)
 when object is null.
       </action>
+      <action issue="LOG4J2-1603" dev="ggregory" type="fix">
+        Redo hashCode() and equals() methods in 
org.apache.logging.log4j.core.net.ssl classes.
+      </action>
       <action issue="LOG4J2-1578" dev="ggregory" type="add">
         RoutingAppender can be configured with scripts. Add Script in a Routes 
element.
       </action>

Reply via email to