From eb1f3b4f16a15d801fd6d77e3483277cd8a6a80e Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Tue, 23 Feb 2016 10:03:13 +0000
Subject: [PATCH] SSDM-3152: Endless loop stopped by using id and not code of
 entities for hashCode() and equals() of helper cass EntityIdentifier.

SVN: 35717
---
 .../server/dataaccess/db/EntityValidationInterceptor.java     | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityValidationInterceptor.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityValidationInterceptor.java
index 65ecc779d79..4acc98bc8d2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityValidationInterceptor.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityValidationInterceptor.java
@@ -489,7 +489,7 @@ public class EntityValidationInterceptor extends EmptyInterceptor implements
         @Override
         public int hashCode()
         {
-            return code.hashCode() + kind.hashCode();
+            return (id == null ? code.hashCode() : id.intValue()) + 37 * kind.hashCode();
         }
 
         @Override
@@ -498,7 +498,7 @@ public class EntityValidationInterceptor extends EmptyInterceptor implements
             if (o instanceof EntityIdentifier)
             {
                 EntityIdentifier e = (EntityIdentifier) o;
-                return (e.code.equals(code)) && e.kind.equals(kind);
+                return (e.id != null ? e.id.equals(id) : id == null && e.code.equals(code)) && e.kind.equals(kind);
             } else
             {
                 throw new IllegalArgumentException(o.toString());
-- 
GitLab