mirror of https://github.com/apache/cassandra
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
This commit is contained in:
parent
76bc3cc838
commit
0ac10a7e3f
|
|
@ -32,13 +32,13 @@ import org.apache.cassandra.io.SSTable;
|
|||
public class NamesFilter implements IFilter
|
||||
{
|
||||
/* list of column names to filter against. */
|
||||
private List<String> names_ = new ArrayList<String>();
|
||||
|
||||
private List<String> names_;
|
||||
|
||||
NamesFilter(List<String> names)
|
||||
{
|
||||
names_ = names;
|
||||
names_ = new ArrayList<String>(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<IColumn> 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<IColumn> 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();
|
||||
|
|
|
|||
Loading…
Reference in New Issue