diff --git a/java/src/org/broadinstitute/sting/gatk/WalkerManager.java b/java/src/org/broadinstitute/sting/gatk/WalkerManager.java index f73f65e9f..21ce28173 100755 --- a/java/src/org/broadinstitute/sting/gatk/WalkerManager.java +++ b/java/src/org/broadinstitute/sting/gatk/WalkerManager.java @@ -445,10 +445,14 @@ public class WalkerManager extends PluginManager { * @return An array of types extending from SamRecordFilter. Will never be null. */ public static Collection> getReadFilterTypes(Class walkerClass) { - Set> filterTypes = new HashSet>(); + List> filterTypes = new ArrayList>(); while(walkerClass != null) { - if(walkerClass.isAnnotationPresent(ReadFilters.class)) - filterTypes.addAll(Arrays.asList(walkerClass.getAnnotation(ReadFilters.class).value())); + if(walkerClass.isAnnotationPresent(ReadFilters.class)) { + for ( Class c : walkerClass.getAnnotation(ReadFilters.class).value() ) { + if( !filterTypes.contains(c) ) + filterTypes.add(c); + } + } walkerClass = walkerClass.getSuperclass(); } return filterTypes;