From 6d5d064bd6ab04cc8ce1bdf9abd14541e424df22 Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Tue, 9 Nov 2010 22:26:09 +0000
Subject: [PATCH] [LMS-1866] fixed loading of samples

SVN: 18614
---
 .../server/dataaccess/db/SampleDAO.java       | 29 ++++++++-----------
 1 file changed, 12 insertions(+), 17 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
index 29f43837fb8..543c722f628 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
@@ -267,7 +267,8 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE>
 
     private SamplePE tryFindContainedSampleWithUniqueSubcode(Criteria criteria, String sampleCode)
     {
-        addContainedCodeCriterion(criteria, sampleCode);
+        criteria.add(Restrictions.eq("code", CodeConverter.tryToDatabase(sampleCode)));
+        criteria.add(Restrictions.isNotNull("container"));
         List<SamplePE> list = cast(criteria.list());
         return list.size() == 1 ? list.get(0) : null;
     }
@@ -302,18 +303,6 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE>
         addSampleContainerCriterion(criteria, containerCodeOrNull);
     }
 
-    private void addSampleContainerCriterion(Criteria criteria, String containerCodeOrNull)
-    {
-        if (containerCodeOrNull != null)
-        {
-            criteria.createAlias("container", "c");
-            criteria.add(Restrictions.eq("c.code", CodeConverter.tryToDatabase(containerCodeOrNull)));
-        } else
-        {
-            criteria.add(Restrictions.isNull("container"));
-        }
-    }
-
     private void addSampleCodeCriterion(Criteria criteria, String sampleCode)
     {
         String[] sampleCodeTokens =
@@ -321,13 +310,19 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE>
         String subCode = sampleCodeTokens.length > 1 ? sampleCodeTokens[1] : sampleCode;
         String containerCodeOrNull = sampleCodeTokens.length > 1 ? sampleCodeTokens[0] : null;
         criteria.add(Restrictions.eq("code", CodeConverter.tryToDatabase(subCode)));
-        addContainedCodeCriterion(criteria, containerCodeOrNull);
+        addSampleContainerCriterion(criteria, containerCodeOrNull);
     }
 
-    private void addContainedCodeCriterion(Criteria criteria, String sampleCode)
+    private void addSampleContainerCriterion(Criteria criteria, String containerCodeOrNull)
     {
-        criteria.add(Restrictions.eq("code", CodeConverter.tryToDatabase(sampleCode)));
-        criteria.add(Restrictions.isNotNull("container"));
+        if (containerCodeOrNull != null)
+        {
+            criteria.createAlias("container", "c");
+            criteria.add(Restrictions.eq("c.code", CodeConverter.tryToDatabase(containerCodeOrNull)));
+        } else
+        {
+            criteria.add(Restrictions.isNull("container"));
+        }
     }
 
     public final void createSamples(final List<SamplePE> samples) throws DataAccessException
-- 
GitLab