Repository: wicket
Updated Branches:
  refs/heads/master 9ed4849be -> 47aa1461d


WICKET-6362 HeaderItems with different PageParameters are treated as identical

Implement proper #equals() and #hashCode() for all HeaderItems


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/47aa1461
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/47aa1461
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/47aa1461

Branch: refs/heads/master
Commit: 47aa1461d58b9a5660fc11032db952ce4df36a33
Parents: 9ed4849
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Thu May 11 21:04:28 2017 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Thu May 11 21:04:28 2017 +0200

----------------------------------------------------------------------
 .../AbstractJavaScriptReferenceHeaderItem.java   | 19 +++++++++++++++++++
 .../wicket/markup/head/CssContentHeaderItem.java | 14 ++++++++------
 .../apache/wicket/markup/head/CssHeaderItem.java | 18 ++++++++++++++++++
 .../markup/head/CssReferenceHeaderItem.java      | 15 ++++++++++-----
 .../markup/head/CssUrlReferenceHeaderItem.java   | 14 +++++++++-----
 .../markup/head/JavaScriptContentHeaderItem.java | 15 +++++++++------
 .../wicket/markup/head/JavaScriptHeaderItem.java | 18 ++++++++++++++++++
 .../head/JavaScriptReferenceHeaderItem.java      | 15 ++++++++++-----
 .../head/JavaScriptUrlReferenceHeaderItem.java   | 15 +++++++++------
 .../wicket/markup/head/MetaDataHeaderItem.java   | 16 +++++++++++-----
 .../wicket/markup/head/OnDomReadyHeaderItem.java | 12 +++++++-----
 .../wicket/markup/head/OnEventHeaderItem.java    | 18 +++++++++---------
 .../wicket/markup/head/OnLoadHeaderItem.java     | 15 ++++++++-------
 .../wicket/markup/head/PriorityHeaderItem.java   | 16 ++++++++--------
 .../wicket/markup/head/StringHeaderItem.java     | 14 ++++++++------
 .../markup/head/filter/FilteredHeaderItem.java   | 15 ++++++++-------
 .../wicket/http2/markup/head/PushHeaderItem.java | 19 +++++++++++++++++++
 .../AbstractAutoCompleteBehavior.java            | 16 ++++++++++++++++
 18 files changed, 204 insertions(+), 80 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/AbstractJavaScriptReferenceHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/AbstractJavaScriptReferenceHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/AbstractJavaScriptReferenceHeaderItem.java
index 06f898d..de85ad8 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/AbstractJavaScriptReferenceHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/AbstractJavaScriptReferenceHeaderItem.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.markup.head;
 
+import java.util.Objects;
+
 /**
  * A {@link org.apache.wicket.markup.head.HeaderItem} that supports 
<em>async</em>,
  * <em>defer</em> and <em>charset</em> attributes
@@ -86,4 +88,21 @@ public abstract class AbstractJavaScriptReferenceHeaderItem 
extends JavaScriptHe
                this.charset = charset;
                return this;
        }
+
+       @Override
+       public boolean equals(Object o)
+       {
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               AbstractJavaScriptReferenceHeaderItem that = 
(AbstractJavaScriptReferenceHeaderItem) o;
+               return async == that.async &&
+                               defer == that.defer &&
+                               Objects.equals(charset, that.charset);
+       }
+
+       @Override
+       public int hashCode()
+       {
+               return Objects.hash(async, defer, charset);
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/CssContentHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssContentHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssContentHeaderItem.java
index 80c3609..0367f8d 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssContentHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssContentHeaderItem.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.head;
 
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Objects;
 
 import org.apache.wicket.request.Response;
 import org.apache.wicket.core.util.string.CssUtils;
@@ -90,16 +91,17 @@ public class CssContentHeaderItem extends CssHeaderItem
        }
 
        @Override
-       public int hashCode()
+       public boolean equals(Object o)
        {
-               return getCss().hashCode();
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               CssContentHeaderItem that = (CssContentHeaderItem) o;
+               return Objects.equals(css, that.css);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public int hashCode()
        {
-               if (obj instanceof CssContentHeaderItem)
-                       return 
((CssContentHeaderItem)obj).getCss().equals(getCss());
-               return false;
+               return Objects.hash(css);
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/CssHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssHeaderItem.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssHeaderItem.java
index aab17c9..d2f05ef 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssHeaderItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssHeaderItem.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.markup.head;
 
+import java.util.Objects;
+
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.core.util.string.CssUtils;
 import org.apache.wicket.request.Response;
@@ -296,4 +298,20 @@ public abstract class CssHeaderItem extends HeaderItem
                }
                response.write("\n");
        }
+
+       @Override
+       public boolean equals(Object o)
+       {
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               CssHeaderItem that = (CssHeaderItem) o;
+               return Objects.equals(condition, that.condition) &&
+                               Objects.equals(markupId, that.markupId);
+       }
+
+       @Override
+       public int hashCode()
+       {
+               return Objects.hash(condition, markupId);
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/CssReferenceHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssReferenceHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssReferenceHeaderItem.java
index ee23131..0e0c1ce 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssReferenceHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssReferenceHeaderItem.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.head;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Response;
@@ -128,14 +129,18 @@ public class CssReferenceHeaderItem extends CssHeaderItem 
implements IReferenceH
        @Override
        public int hashCode()
        {
-               return getReference().hashCode();
+               return Objects.hash(super.hashCode(), reference, media, 
pageParameters);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public boolean equals(Object o)
        {
-               if (obj instanceof CssReferenceHeaderItem)
-                       return 
((CssReferenceHeaderItem)obj).getReference().equals(getReference());
-               return false;
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               if (!super.equals(o)) return false;
+               CssReferenceHeaderItem that = (CssReferenceHeaderItem) o;
+               return Objects.equals(reference, that.reference) &&
+                               Objects.equals(media, that.media) &&
+                               Objects.equals(pageParameters, 
that.pageParameters);
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/CssUrlReferenceHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssUrlReferenceHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssUrlReferenceHeaderItem.java
index 0421668..386fa65 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssUrlReferenceHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssUrlReferenceHeaderItem.java
@@ -17,6 +17,7 @@
 package org.apache.wicket.markup.head;
 
 import java.util.Arrays;
+import java.util.Objects;
 
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.UrlUtils;
@@ -90,14 +91,17 @@ public class CssUrlReferenceHeaderItem extends CssHeaderItem
        @Override
        public int hashCode()
        {
-               return getUrl().hashCode();
+               return Objects.hash(super.hashCode(), url, media);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public boolean equals(Object o)
        {
-               if (obj instanceof CssUrlReferenceHeaderItem)
-                       return 
((CssUrlReferenceHeaderItem)obj).getUrl().equals(getUrl());
-               return false;
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               if (!super.equals(o)) return false;
+               CssUrlReferenceHeaderItem that = (CssUrlReferenceHeaderItem) o;
+               return Objects.equals(url, that.url) &&
+                               Objects.equals(media, that.media);
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptContentHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptContentHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptContentHeaderItem.java
index a514e18..2b3f8d5 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptContentHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptContentHeaderItem.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.head;
 
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Objects;
 
 import org.apache.wicket.request.Response;
 import org.apache.wicket.core.util.string.JavaScriptUtils;
@@ -91,16 +92,18 @@ public class JavaScriptContentHeaderItem extends 
JavaScriptHeaderItem
        }
 
        @Override
-       public int hashCode()
+       public boolean equals(Object o)
        {
-               return getJavaScript().hashCode();
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               if (!super.equals(o)) return false;
+               JavaScriptContentHeaderItem that = 
(JavaScriptContentHeaderItem) o;
+               return Objects.equals(javaScript, that.javaScript);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public int hashCode()
        {
-               if (obj instanceof JavaScriptContentHeaderItem)
-                       return 
((JavaScriptContentHeaderItem)obj).getJavaScript().equals(getJavaScript());
-               return false;
+               return Objects.hash(super.hashCode(), javaScript);
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptHeaderItem.java
index 920ba5d..0b43443 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptHeaderItem.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.markup.head;
 
+import java.util.Objects;
+
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.core.util.string.JavaScriptUtils;
 import org.apache.wicket.request.Response;
@@ -371,4 +373,20 @@ public abstract class JavaScriptHeaderItem extends 
HeaderItem
                        response.write("<![endif]-->\n");
                }
        }
+
+       @Override
+       public boolean equals(Object o)
+       {
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               JavaScriptHeaderItem that = (JavaScriptHeaderItem) o;
+               return Objects.equals(condition, that.condition) &&
+                               Objects.equals(markupId, that.markupId);
+       }
+
+       @Override
+       public int hashCode()
+       {
+               return Objects.hash(condition, markupId);
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptReferenceHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptReferenceHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptReferenceHeaderItem.java
index f130149..ca52cfb 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptReferenceHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptReferenceHeaderItem.java
@@ -20,6 +20,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.wicket.core.util.lang.WicketObjects;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.cycle.RequestCycle;
@@ -28,6 +29,7 @@ import 
org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.resource.bundles.IResourceBundle;
 import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.lang.Objects;
 import org.apache.wicket.util.string.Strings;
 
 /**
@@ -133,14 +135,17 @@ public class JavaScriptReferenceHeaderItem extends 
AbstractJavaScriptReferenceHe
        @Override
        public int hashCode()
        {
-               return getReference().hashCode();
+               return java.util.Objects.hash(super.hashCode(), reference, 
pageParameters);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public boolean equals(Object o)
        {
-               if (obj instanceof JavaScriptReferenceHeaderItem)
-                       return 
((JavaScriptReferenceHeaderItem)obj).getReference().equals(getReference());
-               return false;
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               if (!super.equals(o)) return false;
+               JavaScriptReferenceHeaderItem that = 
(JavaScriptReferenceHeaderItem) o;
+               return java.util.Objects.equals(reference, that.reference) &&
+                               java.util.Objects.equals(pageParameters, 
that.pageParameters);
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptUrlReferenceHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptUrlReferenceHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptUrlReferenceHeaderItem.java
index fb4caf9..9c7bdbf 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptUrlReferenceHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptUrlReferenceHeaderItem.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.head;
 
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Objects;
 
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.UrlUtils;
@@ -91,16 +92,18 @@ public class JavaScriptUrlReferenceHeaderItem extends 
AbstractJavaScriptReferenc
        }
 
        @Override
-       public int hashCode()
+       public boolean equals(Object o)
        {
-               return getUrl().hashCode();
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               if (!super.equals(o)) return false;
+               JavaScriptUrlReferenceHeaderItem that = 
(JavaScriptUrlReferenceHeaderItem) o;
+               return Objects.equals(url, that.url);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public int hashCode()
        {
-               if (obj instanceof JavaScriptUrlReferenceHeaderItem)
-                       return 
((JavaScriptUrlReferenceHeaderItem)obj).getUrl().equals(getUrl());
-               return false;
+               return Objects.hash(super.hashCode(), url);
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/MetaDataHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/MetaDataHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/MetaDataHeaderItem.java
index 35b3cbd..1835a75 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/MetaDataHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/MetaDataHeaderItem.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
@@ -29,7 +30,7 @@ import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.util.value.ValueMap;
 
 /**
- * {@link HeaderItem} for meta informations such as &lt;meta&gt; tags or 
+ * {@link HeaderItem} for meta information such as &lt;meta&gt; tags or
  * canonical &lt;link&gt;
  * 
  * @author andrea del bene
@@ -219,16 +220,21 @@ public class MetaDataHeaderItem extends HeaderItem
 
                return headerItem;
        }
-       
+
        @Override
-       public boolean equals(Object obj)
+       public boolean equals(Object o)
        {
-               return obj instanceof MetaDataHeaderItem && 
((MetaDataHeaderItem) obj).generateString().equals(generateString());
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               MetaDataHeaderItem that = (MetaDataHeaderItem) o;
+               return Objects.equals(tagAttributes, that.tagAttributes) &&
+                               Objects.equals(tagMinimizedAttributes, 
that.tagMinimizedAttributes) &&
+                               Objects.equals(tagName, that.tagName);
        }
 
        @Override
        public int hashCode()
        {
-               return generateString().hashCode();
+               return Objects.hash(tagAttributes, tagMinimizedAttributes, 
tagName);
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
index 9d3d5d8..45ec472 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.head;
 
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.wicket.Application;
 import org.apache.wicket.request.Response;
@@ -103,15 +104,16 @@ public class OnDomReadyHeaderItem extends HeaderItem
        @Override
        public int hashCode()
        {
-               return getJavaScript().hashCode();
+               return Objects.hash(javaScript);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public boolean equals(Object o)
        {
-               if (obj instanceof OnDomReadyHeaderItem)
-                       return 
((OnDomReadyHeaderItem)obj).getJavaScript().equals(getJavaScript());
-               return false;
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               OnDomReadyHeaderItem that = (OnDomReadyHeaderItem) o;
+               return Objects.equals(javaScript, that.javaScript);
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java
index b171616..b69e7a4 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java
@@ -19,6 +19,7 @@ package org.apache.wicket.markup.head;
 import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
+import java.util.Objects;
 
 import org.apache.wicket.Application;
 import org.apache.wicket.core.util.string.JavaScriptUtils;
@@ -161,19 +162,18 @@ public class OnEventHeaderItem extends HeaderItem
        @Override
        public int hashCode()
        {
-               return getTarget().hashCode() ^ getEvent().hashCode() ^ 
getJavaScript().hashCode();
+               return Objects.hash(target, event, javaScript);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public boolean equals(Object o)
        {
-               if (obj instanceof OnEventHeaderItem)
-               {
-                       OnEventHeaderItem other = (OnEventHeaderItem)obj;
-                       return other.getTarget().equals(getTarget()) && 
other.getEvent().equals(getEvent()) &&
-                               other.getJavaScript().equals(getJavaScript());
-               }
-               return false;
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               OnEventHeaderItem that = (OnEventHeaderItem) o;
+               return Objects.equals(target, that.target) &&
+                               Objects.equals(event, that.event) &&
+                               Objects.equals(javaScript, that.javaScript);
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
index 76e45c0..51e34bf 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
@@ -18,13 +18,13 @@ package org.apache.wicket.markup.head;
 
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.wicket.Application;
 import org.apache.wicket.core.util.string.JavaScriptUtils;
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.settings.JavaScriptLibrarySettings;
-import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.string.Strings;
 
 /**
@@ -102,17 +102,18 @@ public class OnLoadHeaderItem extends HeaderItem
        }
 
        @Override
-       public int hashCode()
+       public boolean equals(Object o)
        {
-               return getJavaScript().hashCode();
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               OnLoadHeaderItem that = (OnLoadHeaderItem) o;
+               return Objects.equals(javaScript, that.javaScript);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public int hashCode()
        {
-               if (obj instanceof OnLoadHeaderItem)
-                       return 
((OnLoadHeaderItem)obj).getJavaScript().equals(getJavaScript());
-               return false;
+               return Objects.hash(javaScript);
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/PriorityHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/PriorityHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/PriorityHeaderItem.java
index 70a72dc..93813e0 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/PriorityHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/PriorityHeaderItem.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.head;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.wicket.request.Response;
 
@@ -90,19 +91,18 @@ public class PriorityHeaderItem extends HeaderItem 
implements IWrappedHeaderItem
        }
 
        @Override
-       public int hashCode()
+       public boolean equals(Object o)
        {
-               return getWrapped().hashCode();
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               PriorityHeaderItem that = (PriorityHeaderItem) o;
+               return Objects.equals(wrapped, that.wrapped);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public int hashCode()
        {
-               if (obj instanceof PriorityHeaderItem)
-               {
-                       return 
((PriorityHeaderItem)obj).getWrapped().equals(getWrapped());
-               }
-               return false;
+               return Objects.hash(wrapped);
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/StringHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/StringHeaderItem.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/StringHeaderItem.java
index 7d7426f..c1502ff 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/StringHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/StringHeaderItem.java
@@ -17,6 +17,7 @@
 package org.apache.wicket.markup.head;
 
 import java.util.Collections;
+import java.util.Objects;
 
 import org.apache.wicket.request.Response;
 import org.apache.wicket.util.lang.Args;
@@ -80,16 +81,17 @@ public class StringHeaderItem extends HeaderItem
        }
 
        @Override
-       public int hashCode()
+       public boolean equals(Object o)
        {
-               return getString().hashCode();
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               StringHeaderItem that = (StringHeaderItem) o;
+               return Objects.equals(string, that.string);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public int hashCode()
        {
-               if (obj instanceof StringHeaderItem)
-                       return 
((StringHeaderItem)obj).getString().equals(getString());
-               return false;
+               return Objects.hash(string);
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java
index 120f41d..18745a2 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.head.filter;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.wicket.markup.head.HeaderItem;
 import org.apache.wicket.markup.head.IWrappedHeaderItem;
@@ -109,17 +110,17 @@ public class FilteredHeaderItem extends HeaderItem 
implements IWrappedHeaderItem
        @Override
        public int hashCode()
        {
-               return getWrapped().hashCode();
+               return Objects.hash(wrapped, filterName);
        }
 
        @Override
-       public boolean equals(Object obj)
+       public boolean equals(Object o)
        {
-               if (obj instanceof FilteredHeaderItem)
-               {
-                       return 
((FilteredHeaderItem)obj).getWrapped().equals(getWrapped());
-               }
-               return false;
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               FilteredHeaderItem that = (FilteredHeaderItem) o;
+               return Objects.equals(wrapped, that.wrapped) &&
+                               Objects.equals(filterName, that.filterName);
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java
 
b/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java
index bb4c985..1660ef7 100644
--- 
a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java
+++ 
b/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java
@@ -24,6 +24,7 @@ import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeParseException;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 import java.util.TreeSet;
 
@@ -414,4 +415,22 @@ public class PushHeaderItem extends HeaderItem
                }
                return (HttpServletRequest)assumedHttpServletRequest;
        }
+
+       @Override
+       public boolean equals(Object o)
+       {
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               PushHeaderItem that = (PushHeaderItem) o;
+               return Objects.equals(urls, that.urls) &&
+                               Objects.equals(pageWebResponse, 
that.pageWebResponse) &&
+                               Objects.equals(pageWebRequest, 
that.pageWebRequest) &&
+                               Objects.equals(page, that.page);
+       }
+
+       @Override
+       public int hashCode()
+       {
+               return Objects.hash(urls, pageWebResponse, pageWebRequest, 
page);
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
index 82ed509..7164ee4 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
@@ -19,6 +19,7 @@ package 
org.apache.wicket.extensions.ajax.markup.html.autocomplete;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.wicket.Application;
 import org.apache.wicket.Component;
@@ -92,6 +93,21 @@ public abstract class AbstractAutoCompleteBehavior extends 
AbstractDefaultAjaxBe
                                        
getJavaScriptLibrarySettings().getWicketAjaxReference();
                        return 
Arrays.<HeaderItem>asList(JavaScriptHeaderItem.forReference(wicketAjaxReference));
                }
+
+               @Override
+               public boolean equals(Object o)
+               {
+                       if (this == o) return true;
+                       if (o == null || getClass() != o.getClass()) return 
false;
+                       WrappedHeaderItem that = (WrappedHeaderItem) o;
+                       return Objects.equals(item, that.item);
+               }
+
+               @Override
+               public int hashCode()
+               {
+                       return Objects.hash(item);
+               }
        }
 
        public static final ResourceReference AUTOCOMPLETE_JS = new 
JavaScriptResourceReference(

Reply via email to