From b4fc7c19a80c38b595cb08f05fd6765a07f95920 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Wed, 20 Feb 2019 13:52:03 +0100 Subject: [PATCH] Report line number mismatch in sort collection tool Otherwise this would just fail because sorted_elements is undefined. I don't think there can be a HDA without metadata, so I've dropped that check. --- lib/galaxy/tools/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index bac63b97048..4634e86db81 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -2701,7 +2701,8 @@ class SortTool(DatabaseOperationTool): sorted_elements = [x[1] for x in sorted(presort_elements, key=lambda x: x[0])] if sorttype == 'file': hda = incoming["sort_type"]["sort_file"] - if hda.metadata and hda.metadata.get('data_lines', 0) == len(elements): + data_lines = hda.metadata.get('data_lines', 0) + if data_lines == len(elements): old_elements_dict = OrderedDict() for element in elements: old_elements_dict[element.element_identifier] = element @@ -2711,6 +2712,9 @@ class SortTool(DatabaseOperationTool): hdca_history_name = "%s: %s" % (hdca.hid, hdca.name) message = "List of element identifiers does not match element identifiers in collection '%s'" % hdca_history_name raise Exception(message) + else: + message = "Number of lines must match number of list elements (%i), but file has %i lines" + raise Exception(message % (data_lines, len(elements))) for dce in sorted_elements: dce_object = dce.element_object