From b58ceae177f421bcf71b46de0e5de51ba9fa7e37 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Mon, 16 May 2011 09:05:02 +0000
Subject: [PATCH] LMS-2258 bug fixed as suggested

SVN: 21305
---
 .../systemsx/cisd/openbis/generic/server/CommonServer.java   | 3 +--
 .../ch/systemsx/cisd/openbis/generic/server/ETLService.java  | 3 +--
 .../openbis/generic/server/dataaccess/db/ExperimentDAO.java  | 1 -
 .../generic/shared/translator/ExperimentTranslator.java      | 5 +++--
 4 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
index 7887fd8d0bd..9f2a597ff19 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
@@ -592,8 +592,7 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt
         experimentTable.load(experimentType.getCode(), projectIdentifier);
         final List<ExperimentPE> experiments = experimentTable.getExperiments();
         Collections.sort(experiments);
-        return ExperimentTranslator.translate(experiments, session.getBaseIndexURL(),
-                ExperimentTranslator.LoadableFields.PROPERTIES);
+        return ExperimentTranslator.translate(experiments, session.getBaseIndexURL());
     }
 
     public final List<ExperimentType> listExperimentTypes(final String sessionToken)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
index 6e4e157c01f..9051857dde9 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
@@ -547,8 +547,7 @@ public class ETLService extends AbstractCommonServer<IETLService> implements IET
         experimentTable.load(EntityType.ALL_TYPES_CODE, projectIdentifier);
         final List<ExperimentPE> experiments = experimentTable.getExperiments();
         Collections.sort(experiments);
-        return ExperimentTranslator.translate(experiments, session.getBaseIndexURL(),
-                ExperimentTranslator.LoadableFields.PROPERTIES);
+        return ExperimentTranslator.translate(experiments, session.getBaseIndexURL());
     }
 
     public IEntityProperty[] tryToGetPropertiesOfTopSampleRegisteredFor(String sessionToken,
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java
index 8df5e208f7b..4edc5d27241 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java
@@ -79,7 +79,6 @@ public class ExperimentDAO extends AbstractGenericEntityWithPropertiesDAO<Experi
         {
             criteria.add(Restrictions.eq("projectInternal", projectOrNull));
         }
-        criteria.setFetchMode("experimentProperties", FetchMode.JOIN);
         criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
         final List<ExperimentPE> list = cast(getHibernateTemplate().findByCriteria(criteria));
         if (operationLog.isDebugEnabled())
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java
index b78d6691fc4..0b2d95e90c9 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java
@@ -118,12 +118,13 @@ public final class ExperimentTranslator
 
     // NOTE: when translating list of experiments managed properties will contain raw value
     public final static List<Experiment> translate(final List<ExperimentPE> experiments,
-            String baseIndexURL, final LoadableFields... withFields)
+            String baseIndexURL)
     {
         final List<Experiment> result = new ArrayList<Experiment>(experiments.size());
         for (final ExperimentPE experiment : experiments)
         {
-            result.add(ExperimentTranslator.translate(experiment, baseIndexURL, true, withFields));
+            HibernateUtils.initialize(experiment.getProperties());
+            result.add(ExperimentTranslator.translate(experiment, baseIndexURL, true, LoadableFields.PROPERTIES));
         }
         return result;
     }
-- 
GitLab