From 0ac10a7e3ffe87519dd1aa1c9f3608475d7c80bb Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Fri, 27 Mar 2009 02:18:50 +0000 Subject: [PATCH] make local copy of NamesFilter names; modifying caller's List is buggy git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@758969 13f79535-47bb-0310-9956-ffa450edef68 --- src/org/apache/cassandra/db/NamesFilter.java | 30 ++++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/org/apache/cassandra/db/NamesFilter.java b/src/org/apache/cassandra/db/NamesFilter.java index 7c58f9ede3..118a36a4e3 100644 --- a/src/org/apache/cassandra/db/NamesFilter.java +++ b/src/org/apache/cassandra/db/NamesFilter.java @@ -32,13 +32,13 @@ import org.apache.cassandra.io.SSTable; public class NamesFilter implements IFilter { /* list of column names to filter against. */ - private List names_ = new ArrayList(); - + private List names_; + NamesFilter(List names) { - names_ = names; + names_ = new ArrayList(names); } - + public ColumnFamily filter(String cf, ColumnFamily columnFamily) { if ( columnFamily == null ) @@ -55,7 +55,7 @@ public class NamesFilter implements IFilter { if ( names_.contains(column.name()) ) { - names_.remove(column.name()); + names_.remove(column.name()); filteredCf.addColumn(column); } if( isDone() ) @@ -64,20 +64,20 @@ public class NamesFilter implements IFilter } } } - else if ( values.length == 2 && DatabaseDescriptor.getColumnType(cfName).equals("Super") ) + else if ( values.length == 2 && DatabaseDescriptor.getColumnType(cfName).equals("Super")) { Collection columns = columnFamily.getAllColumns(); for(IColumn column : columns) { SuperColumn superColumn = (SuperColumn)column; - SuperColumn filteredSuperColumn = new SuperColumn(superColumn.name()); - filteredCf.addColumn(filteredSuperColumn); + SuperColumn filteredSuperColumn = new SuperColumn(superColumn.name()); + filteredCf.addColumn(filteredSuperColumn); Collection subColumns = superColumn.getSubColumns(); for(IColumn subColumn : subColumns) { if ( names_.contains(subColumn.name()) ) { - names_.remove(subColumn.name()); + names_.remove(subColumn.name()); filteredSuperColumn.addColumn(subColumn.name(), subColumn); } if( isDone() ) @@ -87,28 +87,28 @@ public class NamesFilter implements IFilter } } } - else + else { throw new UnsupportedOperationException(); } return filteredCf; } - + public IColumn filter(IColumn column, DataInputStream dis) throws IOException - { + { String columnName = column.name(); if ( names_.contains(columnName) ) { - names_.remove(columnName); + names_.remove(columnName); } else { column = null; } - + return column; } - + public boolean isDone() { return names_.isEmpty();