From 8484e2e4dfdd2ef55bb9a2a691733fabb53c97d5 Mon Sep 17 00:00:00 2001
From: Andrew Yates <ayates@ebi.ac.uk>
Date: Thu, 30 May 2013 09:38:30 +0000
Subject: [PATCH] fixing a couple of issues where hanging ; were left over

---
 modules/Bio/EnsEMBL/Utils/IO/GFFSerializer.pm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/modules/Bio/EnsEMBL/Utils/IO/GFFSerializer.pm b/modules/Bio/EnsEMBL/Utils/IO/GFFSerializer.pm
index d80846d297..069489744c 100644
--- a/modules/Bio/EnsEMBL/Utils/IO/GFFSerializer.pm
+++ b/modules/Bio/EnsEMBL/Utils/IO/GFFSerializer.pm
@@ -165,14 +165,15 @@ sub print_feature {
         delete $summary{'score'};
         delete $summary{'source'};
 #   Slice the hash for specific keys in GFF-friendly order
-        my @ordered_keys = qw(ID Name Alias Parent Target Gap Derives_from Note Dbxref Ontology_term Is_circular);
+        my @ordered_keys = grep { exists $summary{$_} } qw(ID Name Alias Parent Target Gap Derives_from Note Dbxref Ontology_term Is_circular);
         my @ordered_values = @summary{@ordered_keys};
         while (my $key = shift @ordered_keys) {
             my $value = shift @ordered_values;
             if ($value) {
-                $row .= $key."=".uri_escape($value,'\t\n\r;=%&,').";";
+                $row .= $key."=".uri_escape($value,'\t\n\r;=%&,');
+                delete $summary{$key};
+                $row .= ';' if scalar(@ordered_keys) > 0 || scalar(keys %summary) > 0;
             }
-            delete $summary{$key};
         }
 #   Catch the remaining keys, containing whatever else the Feature provided
         my @keys = sort keys %summary;
-- 
GitLab