You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2015/05/31 23:23:22 UTC

[11/13] airavata git commit: Removing Error Details from ExperimentSummary object and improving the searchExperiments method

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
index 34e4aa6..1789d5e 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
@@ -55,6 +55,24 @@ const char* _kExperimentStateNames[] = {
 };
 const std::map<int, const char*> _ExperimentState_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(11, _kExperimentStateValues, _kExperimentStateNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
+int _kExperimentSearchFieldsValues[] = {
+  ExperimentSearchFields::EXPERIMENT_NAME,
+  ExperimentSearchFields::EXPERIMENT_DESC,
+  ExperimentSearchFields::APPLICATION_ID,
+  ExperimentSearchFields::FROM_DATE,
+  ExperimentSearchFields::TO_DATE,
+  ExperimentSearchFields::STATUS
+};
+const char* _kExperimentSearchFieldsNames[] = {
+  "EXPERIMENT_NAME",
+  "EXPERIMENT_DESC",
+  "APPLICATION_ID",
+  "FROM_DATE",
+  "TO_DATE",
+  "STATUS"
+};
+const std::map<int, const char*> _ExperimentSearchFields_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(6, _kExperimentSearchFieldsValues, _kExperimentSearchFieldsNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
 int _kWorkflowNodeStateValues[] = {
   WorkflowNodeState::INVOKED,
   WorkflowNodeState::EXECUTING,
@@ -3221,8 +3239,8 @@ void swap(Experiment &a, Experiment &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* ExperimentSummary::ascii_fingerprint = "44FD485ABF32F5EB94D6F393F51241B6";
-const uint8_t ExperimentSummary::binary_fingerprint[16] = {0x44,0xFD,0x48,0x5A,0xBF,0x32,0xF5,0xEB,0x94,0xD6,0xF3,0x93,0xF5,0x12,0x41,0xB6};
+const char* ExperimentSummary::ascii_fingerprint = "A1A9DDD1C0AA5DEEDC8413E553960BEF";
+const uint8_t ExperimentSummary::binary_fingerprint[16] = {0xA1,0xA9,0xDD,0xD1,0xC0,0xAA,0x5D,0xEE,0xDC,0x84,0x13,0xE5,0x53,0x96,0x0B,0xEF};
 
 uint32_t ExperimentSummary::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -3312,26 +3330,6 @@ uint32_t ExperimentSummary::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 9:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            this->errors.clear();
-            uint32_t _size123;
-            ::apache::thrift::protocol::TType _etype126;
-            xfer += iprot->readListBegin(_etype126, _size123);
-            this->errors.resize(_size123);
-            uint32_t _i127;
-            for (_i127 = 0; _i127 < _size123; ++_i127)
-            {
-              xfer += this->errors[_i127].read(iprot);
-            }
-            xfer += iprot->readListEnd();
-          }
-          this->__isset.errors = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -3392,19 +3390,6 @@ uint32_t ExperimentSummary::write(::apache::thrift::protocol::TProtocol* oprot)
     xfer += this->experimentStatus.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.errors) {
-    xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 9);
-    {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->errors.size()));
-      std::vector<ErrorDetails> ::const_iterator _iter128;
-      for (_iter128 = this->errors.begin(); _iter128 != this->errors.end(); ++_iter128)
-      {
-        xfer += (*_iter128).write(oprot);
-      }
-      xfer += oprot->writeListEnd();
-    }
-    xfer += oprot->writeFieldEnd();
-  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -3420,7 +3405,6 @@ void swap(ExperimentSummary &a, ExperimentSummary &b) {
   swap(a.description, b.description);
   swap(a.applicationId, b.applicationId);
   swap(a.experimentStatus, b.experimentStatus);
-  swap(a.errors, b.errors);
   swap(a.__isset, b.__isset);
 }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
index 3f7f2b7..46fcc09 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
@@ -54,6 +54,19 @@ struct ExperimentState {
 
 extern const std::map<int, const char*> _ExperimentState_VALUES_TO_NAMES;
 
+struct ExperimentSearchFields {
+  enum type {
+    EXPERIMENT_NAME = 0,
+    EXPERIMENT_DESC = 1,
+    APPLICATION_ID = 2,
+    FROM_DATE = 3,
+    TO_DATE = 4,
+    STATUS = 5
+  };
+};
+
+extern const std::map<int, const char*> _ExperimentSearchFields_VALUES_TO_NAMES;
+
 struct WorkflowNodeState {
   enum type {
     INVOKED = 0,
@@ -2008,19 +2021,18 @@ class Experiment {
 void swap(Experiment &a, Experiment &b);
 
 typedef struct _ExperimentSummary__isset {
-  _ExperimentSummary__isset() : creationTime(false), description(false), applicationId(false), experimentStatus(false), errors(false) {}
+  _ExperimentSummary__isset() : creationTime(false), description(false), applicationId(false), experimentStatus(false) {}
   bool creationTime;
   bool description;
   bool applicationId;
   bool experimentStatus;
-  bool errors;
 } _ExperimentSummary__isset;
 
 class ExperimentSummary {
  public:
 
-  static const char* ascii_fingerprint; // = "44FD485ABF32F5EB94D6F393F51241B6";
-  static const uint8_t binary_fingerprint[16]; // = {0x44,0xFD,0x48,0x5A,0xBF,0x32,0xF5,0xEB,0x94,0xD6,0xF3,0x93,0xF5,0x12,0x41,0xB6};
+  static const char* ascii_fingerprint; // = "A1A9DDD1C0AA5DEEDC8413E553960BEF";
+  static const uint8_t binary_fingerprint[16]; // = {0xA1,0xA9,0xDD,0xD1,0xC0,0xAA,0x5D,0xEE,0xDC,0x84,0x13,0xE5,0x53,0x96,0x0B,0xEF};
 
   ExperimentSummary() : experimentID(), projectID(), creationTime(0), userName(), name(), description(), applicationId() {
   }
@@ -2035,7 +2047,6 @@ class ExperimentSummary {
   std::string description;
   std::string applicationId;
   ExperimentStatus experimentStatus;
-  std::vector<ErrorDetails>  errors;
 
   _ExperimentSummary__isset __isset;
 
@@ -2075,11 +2086,6 @@ class ExperimentSummary {
     __isset.experimentStatus = true;
   }
 
-  void __set_errors(const std::vector<ErrorDetails> & val) {
-    errors = val;
-    __isset.errors = true;
-  }
-
   bool operator == (const ExperimentSummary & rhs) const
   {
     if (!(experimentID == rhs.experimentID))
@@ -2106,10 +2112,6 @@ class ExperimentSummary {
       return false;
     else if (__isset.experimentStatus && !(experimentStatus == rhs.experimentStatus))
       return false;
-    if (__isset.errors != rhs.__isset.errors)
-      return false;
-    else if (__isset.errors && !(errors == rhs.errors))
-      return false;
     return true;
   }
   bool operator != (const ExperimentSummary &rhs) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index 5702c9f..4a509b2 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -15786,10 +15786,10 @@ class Airavata_searchExperiments_args {
         3 => array(
           'var' => 'filters',
           'type' => TType::MAP,
-          'ktype' => TType::STRING,
+          'ktype' => TType::I32,
           'vtype' => TType::STRING,
           'key' => array(
-            'type' => TType::STRING,
+            'type' => TType::I32,
           ),
           'val' => array(
             'type' => TType::STRING,
@@ -15866,9 +15866,9 @@ class Airavata_searchExperiments_args {
             $xfer += $input->readMapBegin($_ktype129, $_vtype130, $_size128);
             for ($_i132 = 0; $_i132 < $_size128; ++$_i132)
             {
-              $key133 = '';
+              $key133 = 0;
               $val134 = '';
-              $xfer += $input->readString($key133);
+              $xfer += $input->readI32($key133);
               $xfer += $input->readString($val134);
               $this->filters[$key133] = $val134;
             }
@@ -15920,11 +15920,11 @@ class Airavata_searchExperiments_args {
       }
       $xfer += $output->writeFieldBegin('filters', TType::MAP, 3);
       {
-        $output->writeMapBegin(TType::STRING, TType::STRING, count($this->filters));
+        $output->writeMapBegin(TType::I32, TType::STRING, count($this->filters));
         {
           foreach ($this->filters as $kiter135 => $viter136)
           {
-            $xfer += $output->writeString($kiter135);
+            $xfer += $output->writeI32($kiter135);
             $xfer += $output->writeString($viter136);
           }
         }

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
index 753dc13..4b53e09 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
@@ -44,6 +44,23 @@ final class ExperimentState {
   );
 }
 
+final class ExperimentSearchFields {
+  const EXPERIMENT_NAME = 0;
+  const EXPERIMENT_DESC = 1;
+  const APPLICATION_ID = 2;
+  const FROM_DATE = 3;
+  const TO_DATE = 4;
+  const STATUS = 5;
+  static public $__names = array(
+    0 => 'EXPERIMENT_NAME',
+    1 => 'EXPERIMENT_DESC',
+    2 => 'APPLICATION_ID',
+    3 => 'FROM_DATE',
+    4 => 'TO_DATE',
+    5 => 'STATUS',
+  );
+}
+
 final class WorkflowNodeState {
   const INVOKED = 0;
   const EXECUTING = 1;
@@ -4111,7 +4128,6 @@ class ExperimentSummary {
   public $description = null;
   public $applicationId = null;
   public $experimentStatus = null;
-  public $errors = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -4149,15 +4165,6 @@ class ExperimentSummary {
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Workspace\Experiment\ExperimentStatus',
           ),
-        9 => array(
-          'var' => 'errors',
-          'type' => TType::LST,
-          'etype' => TType::STRUCT,
-          'elem' => array(
-            'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Workspace\Experiment\ErrorDetails',
-            ),
-          ),
         );
     }
     if (is_array($vals)) {
@@ -4185,9 +4192,6 @@ class ExperimentSummary {
       if (isset($vals['experimentStatus'])) {
         $this->experimentStatus = $vals['experimentStatus'];
       }
-      if (isset($vals['errors'])) {
-        $this->errors = $vals['errors'];
-      }
     }
   }
 
@@ -4267,24 +4271,6 @@ class ExperimentSummary {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 9:
-          if ($ftype == TType::LST) {
-            $this->errors = array();
-            $_size133 = 0;
-            $_etype136 = 0;
-            $xfer += $input->readListBegin($_etype136, $_size133);
-            for ($_i137 = 0; $_i137 < $_size133; ++$_i137)
-            {
-              $elem138 = null;
-              $elem138 = new \Airavata\Model\Workspace\Experiment\ErrorDetails();
-              $xfer += $elem138->read($input);
-              $this->errors []= $elem138;
-            }
-            $xfer += $input->readListEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -4341,23 +4327,6 @@ class ExperimentSummary {
       $xfer += $this->experimentStatus->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->errors !== null) {
-      if (!is_array($this->errors)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('errors', TType::LST, 9);
-      {
-        $output->writeListBegin(TType::STRUCT, count($this->errors));
-        {
-          foreach ($this->errors as $iter139)
-          {
-            $xfer += $iter139->write($output);
-          }
-        }
-        $output->writeListEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
index 8f6142c..6378dad 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
@@ -516,7 +516,7 @@ class Iface:
     @param userName
           Username of the requested user
     @param filters
-          map of multiple filter criteria. keys has to be camel case field values eg. experimentName
+          map of multiple filter criteria.
     @param limit
           Amount of results to be fetched
     @param offset
@@ -3564,7 +3564,7 @@ class Client(Iface):
     @param userName
           Username of the requested user
     @param filters
-          map of multiple filter criteria. keys has to be camel case field values eg. experimentName
+          map of multiple filter criteria.
     @param limit
           Amount of results to be fetched
     @param offset
@@ -16209,7 +16209,7 @@ class searchExperiments_args:
     None, # 0
     (1, TType.STRING, 'gatewayId', None, None, ), # 1
     (2, TType.STRING, 'userName', None, None, ), # 2
-    (3, TType.MAP, 'filters', (TType.STRING,None,TType.STRING,None), None, ), # 3
+    (3, TType.MAP, 'filters', (TType.I32,None,TType.STRING,None), None, ), # 3
     (4, TType.I32, 'limit', None, None, ), # 4
     (5, TType.I32, 'offset', None, None, ), # 5
   )
@@ -16245,7 +16245,7 @@ class searchExperiments_args:
           self.filters = {}
           (_ktype129, _vtype130, _size128 ) = iprot.readMapBegin()
           for _i132 in xrange(_size128):
-            _key133 = iprot.readString();
+            _key133 = iprot.readI32();
             _val134 = iprot.readString();
             self.filters[_key133] = _val134
           iprot.readMapEnd()
@@ -16281,9 +16281,9 @@ class searchExperiments_args:
       oprot.writeFieldEnd()
     if self.filters is not None:
       oprot.writeFieldBegin('filters', TType.MAP, 3)
-      oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.filters))
+      oprot.writeMapBegin(TType.I32, TType.STRING, len(self.filters))
       for kiter135,viter136 in self.filters.items():
-        oprot.writeString(kiter135)
+        oprot.writeI32(kiter135)
         oprot.writeString(viter136)
       oprot.writeMapEnd()
       oprot.writeFieldEnd()

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/experiment/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/experiment/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/experiment/ttypes.py
index 3ffe2b2..e446c56 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/experiment/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/experiment/ttypes.py
@@ -60,6 +60,32 @@ class ExperimentState:
     "UNKNOWN": 10,
   }
 
+class ExperimentSearchFields:
+  EXPERIMENT_NAME = 0
+  EXPERIMENT_DESC = 1
+  APPLICATION_ID = 2
+  FROM_DATE = 3
+  TO_DATE = 4
+  STATUS = 5
+
+  _VALUES_TO_NAMES = {
+    0: "EXPERIMENT_NAME",
+    1: "EXPERIMENT_DESC",
+    2: "APPLICATION_ID",
+    3: "FROM_DATE",
+    4: "TO_DATE",
+    5: "STATUS",
+  }
+
+  _NAMES_TO_VALUES = {
+    "EXPERIMENT_NAME": 0,
+    "EXPERIMENT_DESC": 1,
+    "APPLICATION_ID": 2,
+    "FROM_DATE": 3,
+    "TO_DATE": 4,
+    "STATUS": 5,
+  }
+
 class WorkflowNodeState:
   INVOKED = 0
   EXECUTING = 1
@@ -2902,7 +2928,6 @@ class ExperimentSummary:
    - description
    - applicationId
    - experimentStatus
-   - errors
   """
 
   thrift_spec = (
@@ -2915,10 +2940,9 @@ class ExperimentSummary:
     (6, TType.STRING, 'description', None, None, ), # 6
     (7, TType.STRING, 'applicationId', None, None, ), # 7
     (8, TType.STRUCT, 'experimentStatus', (ExperimentStatus, ExperimentStatus.thrift_spec), None, ), # 8
-    (9, TType.LIST, 'errors', (TType.STRUCT,(ErrorDetails, ErrorDetails.thrift_spec)), None, ), # 9
   )
 
-  def __init__(self, experimentID=None, projectID=None, creationTime=None, userName=None, name=None, description=None, applicationId=None, experimentStatus=None, errors=None,):
+  def __init__(self, experimentID=None, projectID=None, creationTime=None, userName=None, name=None, description=None, applicationId=None, experimentStatus=None,):
     self.experimentID = experimentID
     self.projectID = projectID
     self.creationTime = creationTime
@@ -2927,7 +2951,6 @@ class ExperimentSummary:
     self.description = description
     self.applicationId = applicationId
     self.experimentStatus = experimentStatus
-    self.errors = errors
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -2979,17 +3002,6 @@ class ExperimentSummary:
           self.experimentStatus.read(iprot)
         else:
           iprot.skip(ftype)
-      elif fid == 9:
-        if ftype == TType.LIST:
-          self.errors = []
-          (_etype136, _size133) = iprot.readListBegin()
-          for _i137 in xrange(_size133):
-            _elem138 = ErrorDetails()
-            _elem138.read(iprot)
-            self.errors.append(_elem138)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -3032,13 +3044,6 @@ class ExperimentSummary:
       oprot.writeFieldBegin('experimentStatus', TType.STRUCT, 8)
       self.experimentStatus.write(oprot)
       oprot.writeFieldEnd()
-    if self.errors is not None:
-      oprot.writeFieldBegin('errors', TType.LIST, 9)
-      oprot.writeListBegin(TType.STRUCT, len(self.errors))
-      for iter139 in self.errors:
-        iter139.write(oprot)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ExperimentSummary.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ExperimentSummary.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ExperimentSummary.java
index c30e4ea..b1a1630 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ExperimentSummary.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ExperimentSummary.java
@@ -60,7 +60,6 @@ import org.slf4j.LoggerFactory;
   private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)6);
   private static final org.apache.thrift.protocol.TField APPLICATION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationId", org.apache.thrift.protocol.TType.STRING, (short)7);
   private static final org.apache.thrift.protocol.TField EXPERIMENT_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentStatus", org.apache.thrift.protocol.TType.STRUCT, (short)8);
-  private static final org.apache.thrift.protocol.TField ERRORS_FIELD_DESC = new org.apache.thrift.protocol.TField("errors", org.apache.thrift.protocol.TType.LIST, (short)9);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -76,7 +75,6 @@ import org.slf4j.LoggerFactory;
   private String description; // optional
   private String applicationId; // optional
   private ExperimentStatus experimentStatus; // optional
-  private List<ErrorDetails> errors; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -87,8 +85,7 @@ import org.slf4j.LoggerFactory;
     NAME((short)5, "name"),
     DESCRIPTION((short)6, "description"),
     APPLICATION_ID((short)7, "applicationId"),
-    EXPERIMENT_STATUS((short)8, "experimentStatus"),
-    ERRORS((short)9, "errors");
+    EXPERIMENT_STATUS((short)8, "experimentStatus");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -119,8 +116,6 @@ import org.slf4j.LoggerFactory;
           return APPLICATION_ID;
         case 8: // EXPERIMENT_STATUS
           return EXPERIMENT_STATUS;
-        case 9: // ERRORS
-          return ERRORS;
         default:
           return null;
       }
@@ -163,7 +158,7 @@ import org.slf4j.LoggerFactory;
   // isset id assignments
   private static final int __CREATIONTIME_ISSET_ID = 0;
   private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.DESCRIPTION,_Fields.APPLICATION_ID,_Fields.EXPERIMENT_STATUS,_Fields.ERRORS};
+  private _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.DESCRIPTION,_Fields.APPLICATION_ID,_Fields.EXPERIMENT_STATUS};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -183,9 +178,6 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.EXPERIMENT_STATUS, new org.apache.thrift.meta_data.FieldMetaData("experimentStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExperimentStatus.class)));
-    tmpMap.put(_Fields.ERRORS, new org.apache.thrift.meta_data.FieldMetaData("errors", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ErrorDetails.class))));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExperimentSummary.class, metaDataMap);
   }
@@ -233,13 +225,6 @@ import org.slf4j.LoggerFactory;
     if (other.isSetExperimentStatus()) {
       this.experimentStatus = new ExperimentStatus(other.experimentStatus);
     }
-    if (other.isSetErrors()) {
-      List<ErrorDetails> __this__errors = new ArrayList<ErrorDetails>(other.errors.size());
-      for (ErrorDetails other_element : other.errors) {
-        __this__errors.add(new ErrorDetails(other_element));
-      }
-      this.errors = __this__errors;
-    }
   }
 
   public ExperimentSummary deepCopy() {
@@ -257,7 +242,6 @@ import org.slf4j.LoggerFactory;
     this.description = null;
     this.applicationId = null;
     this.experimentStatus = null;
-    this.errors = null;
   }
 
   public String getExperimentID() {
@@ -443,44 +427,6 @@ import org.slf4j.LoggerFactory;
     }
   }
 
-  public int getErrorsSize() {
-    return (this.errors == null) ? 0 : this.errors.size();
-  }
-
-  public java.util.Iterator<ErrorDetails> getErrorsIterator() {
-    return (this.errors == null) ? null : this.errors.iterator();
-  }
-
-  public void addToErrors(ErrorDetails elem) {
-    if (this.errors == null) {
-      this.errors = new ArrayList<ErrorDetails>();
-    }
-    this.errors.add(elem);
-  }
-
-  public List<ErrorDetails> getErrors() {
-    return this.errors;
-  }
-
-  public void setErrors(List<ErrorDetails> errors) {
-    this.errors = errors;
-  }
-
-  public void unsetErrors() {
-    this.errors = null;
-  }
-
-  /** Returns true if field errors is set (has been assigned a value) and false otherwise */
-  public boolean isSetErrors() {
-    return this.errors != null;
-  }
-
-  public void setErrorsIsSet(boolean value) {
-    if (!value) {
-      this.errors = null;
-    }
-  }
-
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case EXPERIMENT_ID:
@@ -547,14 +493,6 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
-    case ERRORS:
-      if (value == null) {
-        unsetErrors();
-      } else {
-        setErrors((List<ErrorDetails>)value);
-      }
-      break;
-
     }
   }
 
@@ -584,9 +522,6 @@ import org.slf4j.LoggerFactory;
     case EXPERIMENT_STATUS:
       return getExperimentStatus();
 
-    case ERRORS:
-      return getErrors();
-
     }
     throw new IllegalStateException();
   }
@@ -614,8 +549,6 @@ import org.slf4j.LoggerFactory;
       return isSetApplicationId();
     case EXPERIMENT_STATUS:
       return isSetExperimentStatus();
-    case ERRORS:
-      return isSetErrors();
     }
     throw new IllegalStateException();
   }
@@ -705,15 +638,6 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
-    boolean this_present_errors = true && this.isSetErrors();
-    boolean that_present_errors = true && that.isSetErrors();
-    if (this_present_errors || that_present_errors) {
-      if (!(this_present_errors && that_present_errors))
-        return false;
-      if (!this.errors.equals(that.errors))
-        return false;
-    }
-
     return true;
   }
 
@@ -810,16 +734,6 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetErrors()).compareTo(other.isSetErrors());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetErrors()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errors, other.errors);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
     return 0;
   }
 
@@ -907,16 +821,6 @@ import org.slf4j.LoggerFactory;
       }
       first = false;
     }
-    if (isSetErrors()) {
-      if (!first) sb.append(", ");
-      sb.append("errors:");
-      if (this.errors == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.errors);
-      }
-      first = false;
-    }
     sb.append(")");
     return sb.toString();
   }
@@ -1046,25 +950,6 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 9: // ERRORS
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list152 = iprot.readListBegin();
-                struct.errors = new ArrayList<ErrorDetails>(_list152.size);
-                for (int _i153 = 0; _i153 < _list152.size; ++_i153)
-                {
-                  ErrorDetails _elem154;
-                  _elem154 = new ErrorDetails();
-                  _elem154.read(iprot);
-                  struct.errors.add(_elem154);
-                }
-                iprot.readListEnd();
-              }
-              struct.setErrorsIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -1124,20 +1009,6 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldEnd();
         }
       }
-      if (struct.errors != null) {
-        if (struct.isSetErrors()) {
-          oprot.writeFieldBegin(ERRORS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.errors.size()));
-            for (ErrorDetails _iter155 : struct.errors)
-            {
-              _iter155.write(oprot);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -1172,10 +1043,7 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetExperimentStatus()) {
         optionals.set(3);
       }
-      if (struct.isSetErrors()) {
-        optionals.set(4);
-      }
-      oprot.writeBitSet(optionals, 5);
+      oprot.writeBitSet(optionals, 4);
       if (struct.isSetCreationTime()) {
         oprot.writeI64(struct.creationTime);
       }
@@ -1188,15 +1056,6 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetExperimentStatus()) {
         struct.experimentStatus.write(oprot);
       }
-      if (struct.isSetErrors()) {
-        {
-          oprot.writeI32(struct.errors.size());
-          for (ErrorDetails _iter156 : struct.errors)
-          {
-            _iter156.write(oprot);
-          }
-        }
-      }
     }
 
     @Override
@@ -1210,7 +1069,7 @@ import org.slf4j.LoggerFactory;
       struct.setUserNameIsSet(true);
       struct.name = iprot.readString();
       struct.setNameIsSet(true);
-      BitSet incoming = iprot.readBitSet(5);
+      BitSet incoming = iprot.readBitSet(4);
       if (incoming.get(0)) {
         struct.creationTime = iprot.readI64();
         struct.setCreationTimeIsSet(true);
@@ -1228,20 +1087,6 @@ import org.slf4j.LoggerFactory;
         struct.experimentStatus.read(iprot);
         struct.setExperimentStatusIsSet(true);
       }
-      if (incoming.get(4)) {
-        {
-          org.apache.thrift.protocol.TList _list157 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.errors = new ArrayList<ErrorDetails>(_list157.size);
-          for (int _i158 = 0; _i158 < _list157.size; ++_i158)
-          {
-            ErrorDetails _elem159;
-            _elem159 = new ErrorDetails();
-            _elem159.read(iprot);
-            struct.errors.add(_elem159);
-          }
-        }
-        struct.setErrorsIsSet(true);
-      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
index 97506b6..fd5c085 100644
--- a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
+++ b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
@@ -510,14 +510,14 @@ service Airavata {
    * @param userName
    *       Username of the requested user
    * @param filters
-   *       map of multiple filter criteria. keys has to be camel case field values eg. experimentName
+   *       map of multiple filter criteria.
    * @param limit
    *       Amount of results to be fetched
    * @param offset
    *       The starting point of the results to be fetched
    */
     list<experimentModel.ExperimentSummary> searchExperiments(1: required string gatewayId,
-                            2: required string userName, 3: map<string, string> filters,
+                            2: required string userName, 3: map<experimentModel.ExperimentSearchFields, string> filters,
                             4: required i32 limit, 5: required i32 offset)
                 throws (1: airavataErrors.InvalidRequestException ire,
                         2: airavataErrors.AiravataClientException ace,

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/airavata-api/thrift-interface-descriptions/experimentModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/experimentModel.thrift b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
index 51aaca7..d0d50f9 100644
--- a/airavata-api/thrift-interface-descriptions/experimentModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
@@ -72,6 +72,15 @@ enum ExperimentState {
     UNKNOWN
 }
 
+enum ExperimentSearchFields {
+    EXPERIMENT_NAME,
+    EXPERIMENT_DESC,
+    APPLICATION_ID,
+    FROM_DATE,
+    TO_DATE,
+    STATUS
+}
+
 struct ExperimentStatus {
     1: required ExperimentState experimentState,
     2: optional i64 timeOfStateChange
@@ -399,5 +408,4 @@ struct ExperimentSummary {
     6: optional string description,
     7: optional string applicationId,
     8: optional ExperimentStatus experimentStatus,
-    9: optional list<ErrorDetails> errors
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ErrorDetail.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ErrorDetail.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ErrorDetail.java
index 9d1d21e..f4d3b64 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ErrorDetail.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ErrorDetail.java
@@ -62,15 +62,15 @@ public class ErrorDetail implements Serializable {
     private String jobId;
 
 
-    @ManyToOne(cascade= CascadeType.MERGE)
+    @ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.MERGE)
     @JoinColumn(name = "EXPERIMENT_ID")
     private Experiment experiment;
 
-    @ManyToOne(cascade= CascadeType.MERGE)
+    @ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.MERGE)
     @JoinColumn(name = "TASK_ID")
     private TaskDetail task;
 
-    @ManyToOne(cascade= CascadeType.MERGE)
+    @ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.MERGE)
     @JoinColumn(name = "NODE_INSTANCE_ID")
     private WorkflowNodeDetail nodeDetails;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment.java
index f1555f5..35416b5 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment.java
@@ -74,10 +74,10 @@ public class Experiment implements Serializable {
     @JoinColumn(name = "EXECUTION_USER", referencedColumnName = "USER_NAME")
     private Users user;
 
-    @OneToMany(mappedBy = "experiment")
+    @OneToMany(fetch=FetchType.LAZY, mappedBy = "experiment")
     private Collection<ErrorDetail> errorDetails;
 
-    @OneToMany(mappedBy = "experiment")
+    @OneToMany(fetch=FetchType.LAZY, mappedBy = "experiment")
     private Collection<Status> statuses;
 
     public String getExpId() {

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Status.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Status.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Status.java
index 4783af5..e0b84a1 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Status.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Status.java
@@ -52,19 +52,19 @@ public class Status implements Serializable {
     @Column(name = "STATUS_TYPE")
     private String statusType;
 
-    @ManyToOne(cascade= CascadeType.MERGE)
+    @ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.MERGE)
     @JoinColumn(name = "EXPERIMENT_ID")
     private Experiment experiment;
 
-    @ManyToOne(cascade= CascadeType.MERGE)
+    @ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.MERGE)
     @JoinColumn(name = "TASK_ID")
     private TaskDetail task;
 
-    @ManyToOne(cascade= CascadeType.MERGE)
+    @ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.MERGE)
     @JoinColumn(name = "NODE_INSTANCE_ID")
     private WorkflowNodeDetail node;
 
-    @ManyToOne(cascade= CascadeType.MERGE)
+    @ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.MERGE)
     @JoinColumn(name = "TRANSFER_ID")
     private DataTransferDetail transferDetail;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentSummaryResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentSummaryResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentSummaryResource.java
index 0e54f80..fe4fbd0 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentSummaryResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentSummaryResource.java
@@ -41,7 +41,6 @@ public class ExperimentSummaryResource extends AbstractResource {
     private String description;
     private String applicationId;
 
-    private List<ErrorDetailResource> errorDetails;
     private StatusResource status;
 
     @Override
@@ -125,14 +124,6 @@ public class ExperimentSummaryResource extends AbstractResource {
         this.applicationId = applicationId;
     }
 
-    public List<ErrorDetailResource> getErrorDetails() {
-        return errorDetails;
-    }
-
-    public void setErrorDetails(List<ErrorDetailResource> errorDetails) {
-        this.errorDetails = errorDetails;
-    }
-
     public StatusResource getStatus() {
         return status;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
index 5c68bd4..24b4049 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
@@ -31,10 +31,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.net.URI;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
-import java.util.List;
 
 
 public class Utils {
@@ -500,26 +498,6 @@ public class Utils {
             experimentSummaryResource.setDescription(o.getExpDesc());
             experimentSummaryResource.setApplicationId(o.getApplicationId());
 
-            if(o.getErrorDetails()!=null) {
-                List<ErrorDetailResource> errorDetailResourceList = new ArrayList();
-                for (ErrorDetail err : o.getErrorDetails()) {
-                    ErrorDetailResource errorDetailResource = new ErrorDetailResource();
-                    errorDetailResource.setErrorId(err.getErrorID());
-                    errorDetailResource.setJobId(err.getJobId());
-                    errorDetailResource.setCreationTime(o.getCreationTime());
-                    if (err.getActualErrorMsg() != null) {
-                        errorDetailResource.setActualErrorMsg(new String(err.getActualErrorMsg()));
-                    }
-                    errorDetailResource.setUserFriendlyErrorMsg(err.getUserFriendlyErrorMsg());
-                    errorDetailResource.setTransientPersistent(err.isTransientPersistent());
-                    errorDetailResource.setErrorCategory(err.getErrorCategory());
-                    errorDetailResource.setCorrectiveAction(err.getCorrectiveAction());
-                    errorDetailResource.setActionableGroup(err.getActionableGroup());
-                    errorDetailResourceList.add(errorDetailResource);
-                }
-                experimentSummaryResource.setErrorDetails(errorDetailResourceList);
-            }
-
             Collection<Status> statusList = o.getStatuses();
             if(statusList != null && statusList.size()>0){
                 Iterator<Status> statusIterator = statusList.iterator();

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java
index ed7166f..4744de9 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java
@@ -31,6 +31,10 @@ import org.apache.airavata.registry.cpi.RegistryException;
 import org.apache.airavata.registry.cpi.ResultOrderType;
 import org.apache.airavata.registry.cpi.utils.Constants;
 import org.apache.airavata.registry.cpi.utils.StatusType;
+import org.apache.openjpa.persistence.OpenJPAPersistence;
+import org.apache.openjpa.persistence.OpenJPAQuery;
+import org.apache.openjpa.persistence.jdbc.FetchMode;
+import org.apache.openjpa.persistence.jdbc.JDBCFetchPlan;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -621,12 +625,16 @@ public class WorkerResource extends AbstractResource {
         List<ExperimentSummaryResource> result = new ArrayList();
         EntityManager em = null;
         try {
-            String query = "SELECT e FROM Experiment e " +
-                    "LEFT JOIN e.statuses s LEFT JOIN FETCH e.errorDetails LEFT JOIN FETCH e.statuses WHERE ";
+            String query;
             if(filters.get(StatusConstants.STATE) != null) {
+                query = "SELECT e FROM Experiment e " +
+                        "JOIN e.statuses s LEFT JOIN FETCH e.statuses WHERE " +
+                        "s.statusType='" + StatusType.EXPERIMENT + "' AND ";
                 String experimentState = ExperimentState.valueOf(filters.get(StatusConstants.STATE)).toString();
-                query += "s.state='" + experimentState + "' " +
-                        "AND s.statusType='" + StatusType.EXPERIMENT + "' AND ";
+                query += "s.state='" + experimentState + "' AND ";
+            }else{
+                query = "SELECT e FROM Experiment e " +
+                        "LEFT JOIN FETCH e.statuses WHERE ";
             }
 
             if(toTime != null && fromTime != null && toTime.after(fromTime)){
@@ -670,6 +678,9 @@ public class WorkerResource extends AbstractResource {
             }else{
                 q = em.createQuery(query);
             }
+            OpenJPAQuery kq = OpenJPAPersistence.cast(q);
+            JDBCFetchPlan fetch = (JDBCFetchPlan) kq.getFetchPlan();
+            fetch.setEagerFetchMode(FetchMode.JOIN);
 
             List resultList = q.getResultList();
             for (Object o : resultList) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/7bc175fe/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
index 2282a7e..53b3919 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
@@ -148,10 +148,6 @@ public class ThriftDataModelConversion {
             if (experimentStatus != null){
                 experimentSummary.setExperimentStatus(getExperimentStatus(experimentStatus));
             }
-            List<ErrorDetailResource> errorDetails = experimentSummaryResource.getErrorDetails();
-            if (errorDetails!= null && !errorDetails.isEmpty()){
-                experimentSummary.setErrors(getErrorDetailList(errorDetails));
-            }
             return experimentSummary;
         }
         return null;