From a67276fab9d745c0aa20644d6d43afae019e4fa9 Mon Sep 17 00:00:00 2001
From: Leo Gordon <lg4@ebi.ac.uk>
Date: Sat, 28 Sep 2013 11:16:25 +0100
Subject: [PATCH] moved stringification of analysis.parameters into Analysis
 object

---
 modules/Bio/EnsEMBL/Hive/Analysis.pm                    | 7 ++++++-
 modules/Bio/EnsEMBL/Hive/PipeConfig/HiveGeneric_conf.pm | 3 +--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/modules/Bio/EnsEMBL/Hive/Analysis.pm b/modules/Bio/EnsEMBL/Hive/Analysis.pm
index bfdb13172..ebe92edeb 100644
--- a/modules/Bio/EnsEMBL/Hive/Analysis.pm
+++ b/modules/Bio/EnsEMBL/Hive/Analysis.pm
@@ -39,6 +39,8 @@ use strict;
 
 use Bio::EnsEMBL::Utils::Argument ('rearrange');
 
+use Bio::EnsEMBL::Hive::Utils ('stringify');
+
 use base (  'Bio::EnsEMBL::Storable',       # inherit dbID(), adaptor() and new() methods
          );
  
@@ -82,7 +84,10 @@ sub module {
 
 sub parameters {
     my $self = shift;
-    $self->{'_parameters'} = shift if(@_);
+    if(@_) {
+        my $parameters = shift @_;
+        $self->{'_parameters'} = ref($parameters) ? stringify($parameters) : $parameters;
+    }
     return $self->{'_parameters'};
 }
 
diff --git a/modules/Bio/EnsEMBL/Hive/PipeConfig/HiveGeneric_conf.pm b/modules/Bio/EnsEMBL/Hive/PipeConfig/HiveGeneric_conf.pm
index 39ec715bf..fd4c0c8d1 100644
--- a/modules/Bio/EnsEMBL/Hive/PipeConfig/HiveGeneric_conf.pm
+++ b/modules/Bio/EnsEMBL/Hive/PipeConfig/HiveGeneric_conf.pm
@@ -62,7 +62,6 @@ use warnings;
 
 use Bio::EnsEMBL::ApiVersion ();
 
-use Bio::EnsEMBL::Hive::Utils ('stringify');
 use Bio::EnsEMBL::Hive::Utils::URL;
 use Bio::EnsEMBL::Hive::DBSQL::DBAdaptor;
 use Bio::EnsEMBL::Hive::DBSQL::SqlSchemaAdaptor;
@@ -579,7 +578,7 @@ sub run {
             $analysis = Bio::EnsEMBL::Hive::Analysis->new(
                 -logic_name             => $logic_name,
                 -module                 => $module,
-                -parameters             => stringify($parameters_hash),    # have to stringify it here, because Analysis code is external wrt Hive code
+                -parameters             => $parameters_hash,
                 -resource_class_id      => $rc_id,
                 -failed_job_tolerance   => $failed_job_tolerance,
                 -max_retry_count        => $max_retry_count,
-- 
GitLab