SLING-9706 - The HTL Java Compiler does not correctly negate equals
diff --git a/src/main/java/org/apache/sling/scripting/sightly/java/compiler/impl/operator/EquivalenceOpGen.java b/src/main/java/org/apache/sling/scripting/sightly/java/compiler/impl/operator/EquivalenceOpGen.java
index 4a6d79b..eeb6676 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/java/compiler/impl/operator/EquivalenceOpGen.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/java/compiler/impl/operator/EquivalenceOpGen.java
@@ -44,7 +44,7 @@
         Type type = OpHelper.sameType(left, right);
         if (type != null && OpHelper.isNumericType(type) || type == Type.BOOLEAN || type == Type.UNKNOWN) {
             generateEqualsOperator(source, visitor, left.getNode(), right.getNode());
-        } else if (type != Type.UNKNOWN) {
+        } else {
             generateEqualsMethod(source, visitor, left, right);
         }
     }
@@ -62,6 +62,9 @@
 
     private void generateEqualsMethod(JavaSource source, SideEffectVisitor visitor, TypedNode leftNode, TypedNode rightNode) {
         boolean performCast = leftNode.getType().isPrimitive();
+        if (negated) {
+            source.negation();
+        }
         if (performCast) {
             source.startExpression();
             source.cast(Type.UNKNOWN.getNativeClass());