You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2012/01/19 20:31:57 UTC

[1/3] git commit: clean up AbtractType generics treatment patch by Dave Brosius; reviewed by jbellis for CASSANDRA-3689

Updated Branches:
  refs/heads/trunk 35f7bc597 -> 2bc0d4db9


clean up AbtractType generics treatment
patch by Dave Brosius; reviewed by jbellis for CASSANDRA-3689


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2bc0d4db
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2bc0d4db
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2bc0d4db

Branch: refs/heads/trunk
Commit: 2bc0d4db9d1b8fe074c7f79e90420072d5890ace
Parents: 9bfdb01
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Jan 19 13:26:40 2012 -0600
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Jan 19 13:31:24 2012 -0600

----------------------------------------------------------------------
 src/java/org/apache/cassandra/cli/CliClient.java   |   44 +++++-----
 .../org/apache/cassandra/config/CFMetaData.java    |   61 +++++++--------
 .../apache/cassandra/config/ColumnDefinition.java  |   10 +-
 src/java/org/apache/cassandra/config/Schema.java   |    6 +-
 .../cassandra/db/AbstractColumnContainer.java      |    2 +-
 .../db/AbstractThreadUnsafeSortedColumns.java      |    2 +-
 .../cassandra/db/ArrayBackedSortedColumns.java     |    2 +-
 .../apache/cassandra/db/AtomicSortedColumns.java   |    2 +-
 src/java/org/apache/cassandra/db/Column.java       |    6 +-
 src/java/org/apache/cassandra/db/ColumnFamily.java |    4 +-
 .../org/apache/cassandra/db/ColumnFamilyStore.java |    2 +-
 .../org/apache/cassandra/db/CounterColumn.java     |    2 +-
 .../org/apache/cassandra/db/ExpiringColumn.java    |    2 +-
 src/java/org/apache/cassandra/db/IColumn.java      |    2 +-
 .../org/apache/cassandra/db/IColumnContainer.java  |    2 +-
 src/java/org/apache/cassandra/db/ReadCommand.java  |    2 +-
 .../org/apache/cassandra/db/ReadVerbHandler.java   |    2 -
 src/java/org/apache/cassandra/db/SuperColumn.java  |   12 ++--
 .../cassandra/db/TreeMapBackedSortedColumns.java   |    2 +-
 .../db/columniterator/IndexedSliceReader.java      |    3 +-
 .../db/columniterator/SSTableNamesIterator.java    |    2 +-
 .../db/columniterator/SimpleSliceReader.java       |    2 +-
 .../db/compaction/LazilyCompactedRow.java          |    2 +-
 .../org/apache/cassandra/db/filter/IFilter.java    |    2 +-
 .../cassandra/db/filter/NamesQueryFilter.java      |    2 +-
 .../apache/cassandra/db/filter/QueryFilter.java    |    2 +-
 .../cassandra/db/filter/SliceQueryFilter.java      |    4 +-
 .../apache/cassandra/db/index/keys/KeysIndex.java  |    2 +-
 .../cassandra/db/index/keys/KeysSearcher.java      |    3 -
 .../db/marshal/AbstractCompositeType.java          |   24 ++----
 .../apache/cassandra/db/marshal/AbstractType.java  |    2 +-
 .../apache/cassandra/db/marshal/CompositeType.java |   25 +++----
 .../cassandra/db/marshal/DynamicCompositeType.java |   34 ++++-----
 .../apache/cassandra/db/marshal/ReversedType.java  |   10 +-
 .../apache/cassandra/db/marshal/TypeParser.java    |   54 +++++++-------
 .../org/apache/cassandra/dht/LocalPartitioner.java |    4 +-
 src/java/org/apache/cassandra/dht/LocalToken.java  |    4 +-
 .../apache/cassandra/hadoop/BulkRecordWriter.java  |    4 +-
 .../cassandra/hadoop/ColumnFamilyRecordReader.java |    4 +-
 .../apache/cassandra/io/sstable/IndexHelper.java   |    4 +-
 .../io/sstable/SSTableSimpleUnsortedWriter.java    |    4 +-
 .../cassandra/io/sstable/SSTableSimpleWriter.java  |    5 +-
 .../apache/cassandra/io/util/IIterableColumns.java |    2 +-
 .../apache/cassandra/io/util/SegmentedFile.java    |    7 +-
 .../apache/cassandra/thrift/ThriftValidation.java  |   12 ++--
 .../org/apache/cassandra/tools/SSTableExport.java  |    8 +-
 .../org/apache/cassandra/tools/SSTableImport.java  |    6 +-
 47 files changed, 190 insertions(+), 214 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/cli/CliClient.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cli/CliClient.java b/src/java/org/apache/cassandra/cli/CliClient.java
index 94b98cb..3c2a95d 100644
--- a/src/java/org/apache/cassandra/cli/CliClient.java
+++ b/src/java/org/apache/cassandra/cli/CliClient.java
@@ -72,14 +72,14 @@ public class CliClient
         ASCII         (AsciiType.instance),
         COUNTERCOLUMN (CounterColumnType.instance);
 
-        private AbstractType validator;
+        private AbstractType<?> validator;
 
-        Function(AbstractType validator)
+        Function(AbstractType<?> validator)
         {
             this.validator = validator;
         }
 
-        public AbstractType getValidator()
+        public AbstractType<?> getValidator()
         {
             return this.validator;
         }
@@ -151,14 +151,14 @@ public class CliClient
     private String keySpace = null;
     private String username = null;
     private Map<String, KsDef> keyspacesMap = new HashMap<String, KsDef>();
-    private Map<String, AbstractType> cfKeysComparators;
+    private Map<String, AbstractType<?>> cfKeysComparators;
     private ConsistencyLevel consistencyLevel = ConsistencyLevel.ONE;
     private CliUserHelp help;
     public CliClient(CliSessionState cliSessionState, Cassandra.Client thriftClient)
     {
         this.sessionState = cliSessionState;
         this.thriftClient = thriftClient;
-        this.cfKeysComparators = new HashMap<String, AbstractType>();
+        this.cfKeysComparators = new HashMap<String, AbstractType<?>>();
     }
 
     private CliUserHelp getHelp()
@@ -464,7 +464,7 @@ public class CliClient
         boolean isSuperCF = cfDef.column_type.equals("Super");
 
         List<ColumnOrSuperColumn> columns = thriftClient.get_slice(key, parent, predicate, consistencyLevel);
-        AbstractType validator;
+        AbstractType<?> validator;
 
         // Print out super columns or columns.
         for (ColumnOrSuperColumn cosc : columns)
@@ -525,7 +525,7 @@ public class CliClient
         elapsedTime(startTime);
     }
 
-    private AbstractType getFormatType(String compareWith)
+    private AbstractType<?> getFormatType(String compareWith)
     {
         Function function;
 
@@ -627,7 +627,7 @@ public class CliClient
             return;
         }
 
-        AbstractType validator = getValidatorForValue(cfDef, TBaseHelper.byteBufferToByteArray(columnName));
+        AbstractType<?> validator = getValidatorForValue(cfDef, TBaseHelper.byteBufferToByteArray(columnName));
 
         // Perform a get()
         ColumnPath path = new ColumnPath(columnFamily);
@@ -664,7 +664,7 @@ public class CliClient
             // .getText() will give us <type>
             String typeName = CliUtils.unescapeSQLString(typeTree.getText());
             // building AbstractType from <type>
-            AbstractType valueValidator = getFormatType(typeName);
+            AbstractType<?> valueValidator = getFormatType(typeName);
 
             // setting value for output
             valueAsString = valueValidator.getString(ByteBuffer.wrap(columnValue));
@@ -1365,7 +1365,7 @@ public class CliClient
 
         // set the key range
         KeyRange range = new KeyRange(limitCount);
-        AbstractType keyComparator = this.cfKeysComparators.get(columnFamily);
+        AbstractType<?> keyComparator = this.cfKeysComparators.get(columnFamily);
         ByteBuffer startKey = rawStartKey.isEmpty() ? ByteBufferUtil.EMPTY_BYTE_BUFFER : getBytesAccordingToType(rawStartKey, keyComparator);
         ByteBuffer endKey = rawEndKey.isEmpty() ? ByteBufferUtil.EMPTY_BYTE_BUFFER : getBytesAccordingToType(rawEndKey, keyComparator);
         range.setStart_key(startKey).setEnd_key(endKey);
@@ -1472,7 +1472,7 @@ public class CliClient
         // VALIDATOR | COMPARATOR | KEYS | SUB_COMPARATOR
         String assumptionElement = statement.getChild(1).getText().toUpperCase();
         // used to store in this.cfKeysComparator
-        AbstractType comparator;
+        AbstractType<?> comparator;
 
         // Could be UTF8Type, IntegerType, LexicalUUIDType etc.
         String defaultType = statement.getChild(2).getText();
@@ -1725,7 +1725,7 @@ public class CliClient
     {
         sb.append(NEWLINE + TAB + TAB + "{");
 
-        final AbstractType comparator = getFormatType(cfDef.column_type.equals("Super")
+        final AbstractType<?> comparator = getFormatType(cfDef.column_type.equals("Super")
                                                       ? cfDef.subcomparator_type
                                                       : cfDef.comparator_type);
         sb.append("column_name : '" + CliUtils.escapeSQLString(comparator.getString(colDef.name)) + "'," + NEWLINE);
@@ -1991,7 +1991,7 @@ public class CliClient
 
             String compareWith = isSuper ? cf_def.subcomparator_type
                     : cf_def.comparator_type;
-            AbstractType columnNameValidator = getFormatType(compareWith);
+            AbstractType<?> columnNameValidator = getFormatType(compareWith);
 
             sessionState.out.println(leftSpace + "Column Metadata:");
             for (ColumnDef columnDef : cf_def.getColumn_metadata())
@@ -2315,7 +2315,7 @@ public class CliClient
      * @param comparator - comparator used to convert object
      * @return byte[] - object in the byte array representation
      */
-    private ByteBuffer getBytesAccordingToType(String object, AbstractType comparator)
+    private ByteBuffer getBytesAccordingToType(String object, AbstractType<?> comparator)
     {
         if (comparator == null) // default comparator is BytesType
             comparator = BytesType.instance;
@@ -2427,7 +2427,7 @@ public class CliClient
     private ByteBuffer columnValueAsBytes(ByteBuffer columnName, String columnFamilyName, String columnValue)
     {
         CfDef columnFamilyDef = getCfDef(columnFamilyName);
-        AbstractType defaultValidator = getFormatType(columnFamilyDef.default_validation_class);
+        AbstractType<?> defaultValidator = getFormatType(columnFamilyDef.default_validation_class);
 
         for (ColumnDef columnDefinition : columnFamilyDef.getColumn_metadata())
         {
@@ -2456,7 +2456,7 @@ public class CliClient
      * @param columnNameInBytes - column name as byte array
      * @return AbstractType - validator for column value
      */
-    private AbstractType getValidatorForValue(CfDef ColumnFamilyDef, byte[] columnNameInBytes)
+    private AbstractType<?> getValidatorForValue(CfDef ColumnFamilyDef, byte[] columnNameInBytes)
     {
         String defaultValidator = ColumnFamilyDef.default_validation_class;
         
@@ -2541,7 +2541,7 @@ public class CliClient
         String functionName = functionCall.getChild(0).getText();
         Tree argumentTree = functionCall.getChild(1);
         String functionArg  = (argumentTree == null) ? "" : CliUtils.unescapeSQLString(argumentTree.getText());
-        AbstractType validator = getTypeByFunction(functionName);
+        AbstractType<?> validator = getTypeByFunction(functionName);
 
         try
         {
@@ -2591,7 +2591,7 @@ public class CliClient
      * @param functionName - name of the function e.g. utf8, integer, long etc.
      * @return AbstractType type corresponding to the function name
      */
-    public static AbstractType getTypeByFunction(String functionName)
+    public static AbstractType<?> getTypeByFunction(String functionName)
     {
         Function function;
 
@@ -2669,9 +2669,9 @@ public class CliClient
     private void printSliceList(CfDef columnFamilyDef, List<KeySlice> slices)
             throws NotFoundException, TException, IllegalAccessException, InstantiationException, NoSuchFieldException, CharacterCodingException
     {
-        AbstractType validator;
+        AbstractType<?> validator;
         String columnFamilyName = columnFamilyDef.getName();
-        AbstractType keyComparator = getKeyComparatorForCF(columnFamilyName);
+        AbstractType<?> keyComparator = getKeyComparatorForCF(columnFamilyName);
 
         for (KeySlice ks : slices)
         {
@@ -2772,9 +2772,9 @@ public class CliClient
         return getBytesAccordingToType(key, getKeyComparatorForCF(columnFamily));
     }
 
-    private AbstractType getKeyComparatorForCF(String columnFamily)
+    private AbstractType<?> getKeyComparatorForCF(String columnFamily)
     {
-        AbstractType keyComparator = cfKeysComparators.get(columnFamily);
+        AbstractType<?> keyComparator = cfKeysComparators.get(columnFamily);
 
         if (keyComparator == null)
         {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index 3bc5d5a..4c05e75 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -109,16 +109,16 @@ public final class CFMetaData
     public final String ksName;                       // name of keyspace
     public final String cfName;                       // name of this column family
     public final ColumnFamilyType cfType;             // standard, super
-    public final AbstractType comparator;             // bytes, long, timeuuid, utf8, etc.
-    public final AbstractType subcolumnComparator;    // like comparator, for supercolumns
+    public final AbstractType<?> comparator;          // bytes, long, timeuuid, utf8, etc.
+    public final AbstractType<?> subcolumnComparator; // like comparator, for supercolumns
 
     //OPTIONAL
     private String comment;                           // default none, for humans only
     private double readRepairChance;                  // default 1.0 (always), chance [0.0,1.0] of read repair
     private boolean replicateOnWrite;                 // default false
     private int gcGraceSeconds;                       // default 864000 (ten days)
-    private AbstractType defaultValidator;            // default BytesType (no-op), use comparator types
-    private AbstractType keyValidator;                // default BytesType (no-op), use comparator types
+    private AbstractType<?> defaultValidator;         // default BytesType (no-op), use comparator types
+    private AbstractType<?> keyValidator;             // default BytesType (no-op), use comparator types
     private int minCompactionThreshold;               // default 4
     private int maxCompactionThreshold;               // default 32
     // mergeShardsChance is now obsolete, but left here so as to not break
@@ -138,8 +138,8 @@ public final class CFMetaData
     public CFMetaData readRepairChance(double prop) {readRepairChance = prop; return this;}
     public CFMetaData replicateOnWrite(boolean prop) {replicateOnWrite = prop; return this;}
     public CFMetaData gcGraceSeconds(int prop) {gcGraceSeconds = prop; return this;}
-    public CFMetaData defaultValidator(AbstractType prop) {defaultValidator = prop; return this;}
-    public CFMetaData keyValidator(AbstractType prop) {keyValidator = prop; return this;}
+    public CFMetaData defaultValidator(AbstractType<?> prop) {defaultValidator = prop; return this;}
+    public CFMetaData keyValidator(AbstractType<?> prop) {keyValidator = prop; return this;}
     public CFMetaData minCompactionThreshold(int prop) {minCompactionThreshold = prop; return this;}
     public CFMetaData maxCompactionThreshold(int prop) {maxCompactionThreshold = prop; return this;}
     public CFMetaData mergeShardsChance(double prop) {mergeShardsChance = prop; return this;}
@@ -151,12 +151,12 @@ public final class CFMetaData
     public CFMetaData bloomFilterFpChance(Double prop) {bloomFilterFpChance = prop; return this;}
     public CFMetaData caching(Caching prop) {caching = prop; return this;}
 
-    public CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType comp, AbstractType subcc)
+    public CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc)
     {
         this(keyspace, name, type, comp, subcc, Schema.instance.nextCFId());
     }
 
-    private CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType comp, AbstractType subcc, int id)
+    private CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc, int id)
     {
         // Final fields must be set in constructor
         ksName = keyspace;
@@ -173,7 +173,7 @@ public final class CFMetaData
         this.init();
     }
 
-    private AbstractType enforceSubccDefault(ColumnFamilyType cftype, AbstractType subcc)
+    private AbstractType<?> enforceSubccDefault(ColumnFamilyType cftype, AbstractType<?> subcc)
     {
         return (subcc == null) && (cftype == ColumnFamilyType.Super) ? BytesType.instance : subcc;
     }
@@ -213,7 +213,7 @@ public final class CFMetaData
         compressionParameters = new CompressionParameters(null);
     }
 
-    private static CFMetaData newSystemMetadata(String cfName, int cfId, String comment, AbstractType comparator, AbstractType subcc)
+    private static CFMetaData newSystemMetadata(String cfName, int cfId, String comment, AbstractType<?> comparator, AbstractType<?> subcc)
     {
         ColumnFamilyType type = subcc == null ? ColumnFamilyType.Standard : ColumnFamilyType.Super;
         CFMetaData newCFMD = new CFMetaData(Table.SYSTEM_TABLE, cfName, type, comparator,  subcc, cfId);
@@ -224,7 +224,7 @@ public final class CFMetaData
                       .mergeShardsChance(0.0);
     }
 
-    public static CFMetaData newIndexMetadata(CFMetaData parent, ColumnDefinition info, AbstractType columnComparator)
+    public static CFMetaData newIndexMetadata(CFMetaData parent, ColumnDefinition info, AbstractType<?> columnComparator)
     {
         return new CFMetaData(parent.ksName, parent.indexColumnFamilyName(info), ColumnFamilyType.Standard, columnComparator, null)
                              .keyValidator(info.getValidator())
@@ -320,10 +320,10 @@ public final class CFMetaData
 
     public static CFMetaData fromAvro(org.apache.cassandra.db.migration.avro.CfDef cf)
     {
-        AbstractType comparator;
-        AbstractType subcolumnComparator = null;
-        AbstractType validator;
-        AbstractType keyValidator;
+        AbstractType<?> comparator;
+        AbstractType<?> subcolumnComparator = null;
+        AbstractType<?> validator;
+        AbstractType<?> keyValidator;
 
         try
         {
@@ -436,12 +436,12 @@ public final class CFMetaData
         return gcGraceSeconds;
     }
 
-    public AbstractType getDefaultValidator()
+    public AbstractType<?> getDefaultValidator()
     {
         return defaultValidator;
     }
 
-    public AbstractType getKeyValidator()
+    public AbstractType<?> getKeyValidator()
     {
         return keyValidator;
     }
@@ -471,7 +471,7 @@ public final class CFMetaData
         return Collections.unmodifiableMap(column_metadata);
     }
 
-    public AbstractType getComparatorFor(ByteBuffer superColumnName)
+    public AbstractType<?> getComparatorFor(ByteBuffer superColumnName)
     {
         return superColumnName == null ? comparator : subcolumnComparator;
     }
@@ -552,12 +552,12 @@ public final class CFMetaData
             .toHashCode();
     }
 
-    public AbstractType getValueValidator(ByteBuffer column)
+    public AbstractType<?> getValueValidator(ByteBuffer column)
     {
         return getValueValidator(column_metadata.get(column));
     }
 
-    public AbstractType getValueValidator(ColumnDefinition columnDefinition)
+    public AbstractType<?> getValueValidator(ColumnDefinition columnDefinition)
     {
         return columnDefinition == null
                ? defaultValidator
@@ -704,7 +704,7 @@ public final class CFMetaData
         // add the new ones coming in.
         for (org.apache.cassandra.db.migration.avro.ColumnDef def : toAdd)
         {
-            AbstractType dValidClass = TypeParser.parse(def.validation_class);
+            AbstractType<?> dValidClass = TypeParser.parse(def.validation_class);
             ColumnDefinition cd = new ColumnDefinition(def.name, 
                                                        dValidClass,
                                                        def.index_type == null ? null : org.apache.cassandra.thrift.IndexType.valueOf(def.index_type.toString()), 
@@ -745,7 +745,7 @@ public final class CFMetaData
     {
         try
         {
-            Constructor constructor = compactionStrategyClass.getConstructor(new Class[] {
+            Constructor<? extends AbstractCompactionStrategy> constructor = compactionStrategyClass.getConstructor(new Class[] {
                 ColumnFamilyStore.class,
                 Map.class // options
             });
@@ -869,24 +869,23 @@ public final class CFMetaData
         if (cf_def.column_metadata == null)
             return;
 
-        AbstractType comparator;
         try
         {
-            comparator = TypeParser.parse(cf_def.comparator_type);
+            AbstractType<?> comparator = TypeParser.parse(cf_def.comparator_type);
+            
+            for (org.apache.cassandra.thrift.ColumnDef column : cf_def.column_metadata)
+            {
+                if (column.index_type != null && column.index_name == null)
+                    column.index_name = getDefaultIndexName(cf_def.name, comparator, column.name);
+            }
         }
         catch (ConfigurationException e)
         {
             throw new InvalidRequestException(e.getMessage());
         }
-
-        for (org.apache.cassandra.thrift.ColumnDef column : cf_def.column_metadata)
-        {
-            if (column.index_type != null && column.index_name == null)
-                column.index_name = getDefaultIndexName(cf_def.name, comparator, column.name);
-        }
     }
 
-    public static String getDefaultIndexName(String cfName, AbstractType comparator, ByteBuffer columnName)
+    public static String getDefaultIndexName(String cfName, AbstractType<?> comparator, ByteBuffer columnName)
     {
         return (cfName + "_" + comparator.getString(columnName) + "_idx").replaceAll("\\W", "");
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/config/ColumnDefinition.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/ColumnDefinition.java b/src/java/org/apache/cassandra/config/ColumnDefinition.java
index b55f71c..115bc2a 100644
--- a/src/java/org/apache/cassandra/config/ColumnDefinition.java
+++ b/src/java/org/apache/cassandra/config/ColumnDefinition.java
@@ -35,12 +35,12 @@ public class ColumnDefinition
 {
     
     public final ByteBuffer name;
-    private AbstractType validator;
+    private AbstractType<?> validator;
     private IndexType index_type;
     private Map<String,String> index_options;
     private String index_name;
     
-    public ColumnDefinition(ByteBuffer name, AbstractType validator, IndexType index_type, Map<String, String> index_options, String index_name) throws ConfigurationException
+    public ColumnDefinition(ByteBuffer name, AbstractType<?> validator, IndexType index_type, Map<String, String> index_options, String index_name) throws ConfigurationException
     {
         this.name = name;
         this.index_name = index_name;
@@ -99,7 +99,7 @@ public class ColumnDefinition
         String index_name = cd.index_name == null ? null : cd.index_name.toString();
         try
         {
-            AbstractType validatorType = TypeParser.parse(cd.validation_class);
+            AbstractType<?> validatorType = TypeParser.parse(cd.validation_class);
             return new ColumnDefinition(ByteBufferUtil.clone(cd.name), validatorType, index_type, getStringMap(cd.index_options), index_name);
         }
         catch (ConfigurationException e)
@@ -166,12 +166,12 @@ public class ColumnDefinition
         return index_options;
     }
     
-    public AbstractType getValidator()
+    public AbstractType<?> getValidator()
     {
         return validator;
     }
 
-    public void setValidator(AbstractType validator)
+    public void setValidator(AbstractType<?> validator)
     {
         this.validator = validator;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/config/Schema.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/Schema.java b/src/java/org/apache/cassandra/config/Schema.java
index 99ca791..cc977ab 100644
--- a/src/java/org/apache/cassandra/config/Schema.java
+++ b/src/java/org/apache/cassandra/config/Schema.java
@@ -215,7 +215,7 @@ public class Schema
      *
      * @return The comparator of the ColumnFamily
      */
-    public AbstractType getComparator(String ksName, String cfName)
+    public AbstractType<?> getComparator(String ksName, String cfName)
     {
         assert ksName != null;
         CFMetaData cfmd = getCFMetaData(ksName, cfName);
@@ -232,7 +232,7 @@ public class Schema
      *
      * @return The subComparator of the ColumnFamily
      */
-    public AbstractType getSubComparator(String ksName, String cfName)
+    public AbstractType<?> getSubComparator(String ksName, String cfName)
     {
         assert ksName != null;
         return getCFMetaData(ksName, cfName).subcolumnComparator;
@@ -247,7 +247,7 @@ public class Schema
      *
      * @return value validator specific to the column or default (per-cf) one
      */
-    public AbstractType getValueValidator(String ksName, String cfName, ByteBuffer column)
+    public AbstractType<?> getValueValidator(String ksName, String cfName, ByteBuffer column)
     {
         return getCFMetaData(ksName, cfName).getValueValidator(column);
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/AbstractColumnContainer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/AbstractColumnContainer.java b/src/java/org/apache/cassandra/db/AbstractColumnContainer.java
index 959dcef..3baba86 100644
--- a/src/java/org/apache/cassandra/db/AbstractColumnContainer.java
+++ b/src/java/org/apache/cassandra/db/AbstractColumnContainer.java
@@ -69,7 +69,7 @@ public abstract class AbstractColumnContainer implements IColumnContainer, IIter
         return columns.getDeletionInfo().localDeletionTime;
     }
 
-    public AbstractType getComparator()
+    public AbstractType<?> getComparator()
     {
         return columns.getComparator();
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/AbstractThreadUnsafeSortedColumns.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/AbstractThreadUnsafeSortedColumns.java b/src/java/org/apache/cassandra/db/AbstractThreadUnsafeSortedColumns.java
index 256dc1e..8fc2764 100644
--- a/src/java/org/apache/cassandra/db/AbstractThreadUnsafeSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/AbstractThreadUnsafeSortedColumns.java
@@ -58,7 +58,7 @@ public abstract class AbstractThreadUnsafeSortedColumns implements ISortedColumn
         Iterator<IColumn> toRetain = columns.iterator();
         IColumn current = iter.hasNext() ? iter.next() : null;
         IColumn retain = toRetain.hasNext() ? toRetain.next() : null;
-        AbstractType comparator = getComparator();
+        AbstractType<?> comparator = getComparator();
         while (current != null && retain != null)
         {
             int c = comparator.compare(current.name(), retain.name());

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java b/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java
index f54cbc6..9ff7d65 100644
--- a/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java
@@ -47,7 +47,7 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
 
         public ISortedColumns fromSorted(SortedMap<ByteBuffer, IColumn> sortedMap, boolean insertReversed)
         {
-            return new ArrayBackedSortedColumns(sortedMap.values(), (AbstractType)sortedMap.comparator(), insertReversed);
+            return new ArrayBackedSortedColumns(sortedMap.values(), (AbstractType<?>)sortedMap.comparator(), insertReversed);
         }
     };
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
index 6fd5bc7..2542e46 100644
--- a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
@@ -84,7 +84,7 @@ public class AtomicSortedColumns implements ISortedColumns
 
     public AbstractType<?> getComparator()
     {
-        return (AbstractType)ref.get().map.comparator();
+        return (AbstractType<?>)ref.get().map.comparator();
     }
 
     public ISortedColumns.Factory getFactory()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/Column.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Column.java b/src/java/org/apache/cassandra/db/Column.java
index 112f5b4..367cc13 100644
--- a/src/java/org/apache/cassandra/db/Column.java
+++ b/src/java/org/apache/cassandra/db/Column.java
@@ -244,7 +244,7 @@ public class Column implements IColumn
         return new Column(cfs.internOrCopy(name, allocator), allocator.clone(value), timestamp);
     }
 
-    public String getString(AbstractType comparator)
+    public String getString(AbstractType<?> comparator)
     {
         StringBuilder sb = new StringBuilder();
         sb.append(comparator.getString(name));
@@ -264,14 +264,14 @@ public class Column implements IColumn
 
     protected void validateName(CFMetaData metadata) throws MarshalException
     {
-        AbstractType nameValidator = metadata.cfType == ColumnFamilyType.Super ? metadata.subcolumnComparator : metadata.comparator;
+        AbstractType<?> nameValidator = metadata.cfType == ColumnFamilyType.Super ? metadata.subcolumnComparator : metadata.comparator;
         nameValidator.validate(name());
     }
 
     public void validateFields(CFMetaData metadata) throws MarshalException
     {
         validateName(metadata);
-        AbstractType valueValidator = metadata.getValueValidator(name());
+        AbstractType<?> valueValidator = metadata.getValueValidator(name());
         if (valueValidator != null)
             valueValidator.validate(value());
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/ColumnFamily.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamily.java b/src/java/org/apache/cassandra/db/ColumnFamily.java
index ee92c44..0c6c116 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamily.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamily.java
@@ -93,7 +93,7 @@ public class ColumnFamily extends AbstractColumnContainer
         return cloneMeShallow(columns.getFactory(), columns.isInsertReversed());
     }
 
-    public AbstractType getSubComparator()
+    public AbstractType<?> getSubComparator()
     {
         IColumnSerializer s = getColumnSerializer();
         return (s instanceof SuperColumnSerializer) ? ((SuperColumnSerializer) s).getComparator() : null;
@@ -292,7 +292,7 @@ public class ColumnFamily extends AbstractColumnContainer
             column.updateDigest(digest);
     }
 
-    public static AbstractType getComparatorFor(String table, String columnFamilyName, ByteBuffer superColumnName)
+    public static AbstractType<?> getComparatorFor(String table, String columnFamilyName, ByteBuffer superColumnName)
     {
         return superColumnName == null
                ? Schema.instance.getComparator(table, columnFamilyName)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 0238344..98223f7 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -1351,7 +1351,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
          }
     }
 
-    public AbstractType getComparator()
+    public AbstractType<?> getComparator()
     {
         return metadata.comparator;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/CounterColumn.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/CounterColumn.java b/src/java/org/apache/cassandra/db/CounterColumn.java
index a988055..026900e 100644
--- a/src/java/org/apache/cassandra/db/CounterColumn.java
+++ b/src/java/org/apache/cassandra/db/CounterColumn.java
@@ -208,7 +208,7 @@ public class CounterColumn extends Column
     }
 
     @Override
-    public String getString(AbstractType comparator)
+    public String getString(AbstractType<?> comparator)
     {
         StringBuilder sb = new StringBuilder();
         sb.append(comparator.getString(name));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/ExpiringColumn.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ExpiringColumn.java b/src/java/org/apache/cassandra/db/ExpiringColumn.java
index ba473d7..1309e24 100644
--- a/src/java/org/apache/cassandra/db/ExpiringColumn.java
+++ b/src/java/org/apache/cassandra/db/ExpiringColumn.java
@@ -145,7 +145,7 @@ public class ExpiringColumn extends Column
     }
     
     @Override
-    public String getString(AbstractType comparator)
+    public String getString(AbstractType<?> comparator)
     {
         StringBuilder sb = new StringBuilder();
         sb.append(super.getString(comparator));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/IColumn.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/IColumn.java b/src/java/org/apache/cassandra/db/IColumn.java
index ade55f6..e75d069 100644
--- a/src/java/org/apache/cassandra/db/IColumn.java
+++ b/src/java/org/apache/cassandra/db/IColumn.java
@@ -51,7 +51,7 @@ public interface IColumn
     public IColumn reconcile(IColumn column, Allocator allocator);
     public void updateDigest(MessageDigest digest);
     public int getLocalDeletionTime(); // for tombstone GC, so int is sufficient granularity
-    public String getString(AbstractType comparator);
+    public String getString(AbstractType<?> comparator);
     public void validateFields(CFMetaData metadata) throws MarshalException;
 
     /** clones the column for the row cache, interning column names and making copies of other underlying byte buffers */

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/IColumnContainer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/IColumnContainer.java b/src/java/org/apache/cassandra/db/IColumnContainer.java
index b300706..beb224a 100644
--- a/src/java/org/apache/cassandra/db/IColumnContainer.java
+++ b/src/java/org/apache/cassandra/db/IColumnContainer.java
@@ -46,7 +46,7 @@ public interface IColumnContainer
     public long getMarkedForDeleteAt();
     public boolean hasExpiredTombstones(int gcBefore);
 
-    public AbstractType getComparator();
+    public AbstractType<?> getComparator();
 
     public Collection<IColumn> getSortedColumns();
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/ReadCommand.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ReadCommand.java b/src/java/org/apache/cassandra/db/ReadCommand.java
index 5ebb244..721fcd4 100644
--- a/src/java/org/apache/cassandra/db/ReadCommand.java
+++ b/src/java/org/apache/cassandra/db/ReadCommand.java
@@ -87,7 +87,7 @@ public abstract class ReadCommand implements MessageProducer, IReadCommand
 
     public abstract Row getRow(Table table) throws IOException;
 
-    protected AbstractType getComparator()
+    protected AbstractType<?> getComparator()
     {
         return ColumnFamily.getComparatorFor(table, getColumnFamilyName(), queryPath.superColumnName);
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/ReadVerbHandler.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ReadVerbHandler.java b/src/java/org/apache/cassandra/db/ReadVerbHandler.java
index 1e90268..b9128d9 100644
--- a/src/java/org/apache/cassandra/db/ReadVerbHandler.java
+++ b/src/java/org/apache/cassandra/db/ReadVerbHandler.java
@@ -18,14 +18,12 @@
 
 package org.apache.cassandra.db;
 
-import java.io.ByteArrayOutputStream;
 import java.io.DataInputStream;
 import java.io.IOException;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.cassandra.io.util.DataOutputBuffer;
 import org.apache.cassandra.io.util.FastByteArrayInputStream;
 import org.apache.cassandra.net.IVerbHandler;
 import org.apache.cassandra.net.Message;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/SuperColumn.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/SuperColumn.java b/src/java/org/apache/cassandra/db/SuperColumn.java
index ab04d63..bb482b2 100644
--- a/src/java/org/apache/cassandra/db/SuperColumn.java
+++ b/src/java/org/apache/cassandra/db/SuperColumn.java
@@ -40,7 +40,7 @@ import org.cliffc.high_scale_lib.NonBlockingHashMap;
 public class SuperColumn extends AbstractColumnContainer implements IColumn
 {
     private static NonBlockingHashMap<Comparator, SuperColumnSerializer> serializers = new NonBlockingHashMap<Comparator, SuperColumnSerializer>();
-    public static SuperColumnSerializer serializer(AbstractType comparator)
+    public static SuperColumnSerializer serializer(AbstractType<?> comparator)
     {
         SuperColumnSerializer serializer = serializers.get(comparator);
         if (serializer == null)
@@ -53,7 +53,7 @@ public class SuperColumn extends AbstractColumnContainer implements IColumn
 
     private ByteBuffer name;
 
-    public SuperColumn(ByteBuffer name, AbstractType comparator)
+    public SuperColumn(ByteBuffer name, AbstractType<?> comparator)
     {
         this(name, AtomicSortedColumns.factory().create(comparator, false));
     }
@@ -228,7 +228,7 @@ public class SuperColumn extends AbstractColumnContainer implements IColumn
         }
     }
 
-    public String getString(AbstractType comparator)
+    public String getString(AbstractType<?> comparator)
     {
     	StringBuilder sb = new StringBuilder();
         sb.append("SuperColumn(");
@@ -297,14 +297,14 @@ public class SuperColumn extends AbstractColumnContainer implements IColumn
 
 class SuperColumnSerializer implements IColumnSerializer
 {
-    private AbstractType comparator;
+    private AbstractType<?> comparator;
 
-    public SuperColumnSerializer(AbstractType comparator)
+    public SuperColumnSerializer(AbstractType<?> comparator)
     {
         this.comparator = comparator;
     }
 
-    public AbstractType getComparator()
+    public AbstractType<?> getComparator()
     {
         return comparator;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java b/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java
index 5dff781..8c4e76d 100644
--- a/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java
@@ -53,7 +53,7 @@ public class TreeMapBackedSortedColumns extends AbstractThreadUnsafeSortedColumn
 
     public AbstractType<?> getComparator()
     {
-        return (AbstractType)map.comparator();
+        return (AbstractType<?>)map.comparator();
     }
 
     private TreeMapBackedSortedColumns(AbstractType<?> comparator)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java b/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
index b264c69..7902af6 100644
--- a/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
+++ b/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
@@ -30,7 +30,6 @@ import java.util.List;
 
 import com.google.common.collect.AbstractIterator;
 
-import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.db.ColumnFamily;
 import org.apache.cassandra.db.DecoratedKey;
 import org.apache.cassandra.db.IColumn;
@@ -58,7 +57,7 @@ class IndexedSliceReader extends AbstractIterator<IColumn> implements IColumnIte
 
     private BlockFetcher fetcher;
     private Deque<IColumn> blockColumns = new ArrayDeque<IColumn>();
-    private AbstractType comparator;
+    private AbstractType<?> comparator;
 
     public IndexedSliceReader(SSTableReader sstable, FileDataInput input, ByteBuffer startColumn, ByteBuffer finishColumn, boolean reversed)
     {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java b/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
index 7f0fa0a..7112092 100644
--- a/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
+++ b/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
@@ -155,7 +155,7 @@ public class SSTableNamesIterator extends SimpleAbstractColumnIterator implement
         file.readInt(); // column count
 
         /* get the various column ranges we have to read */
-        AbstractType comparator = metadata.comparator;
+        AbstractType<?> comparator = metadata.comparator;
         SortedSet<IndexHelper.IndexInfo> ranges = new TreeSet<IndexHelper.IndexInfo>(IndexHelper.getComparator(comparator, false));
         for (ByteBuffer name : filteredColumnNames)
         {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/columniterator/SimpleSliceReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/columniterator/SimpleSliceReader.java b/src/java/org/apache/cassandra/db/columniterator/SimpleSliceReader.java
index 2feab42..4df4edb 100644
--- a/src/java/org/apache/cassandra/db/columniterator/SimpleSliceReader.java
+++ b/src/java/org/apache/cassandra/db/columniterator/SimpleSliceReader.java
@@ -41,7 +41,7 @@ class SimpleSliceReader extends AbstractIterator<IColumn> implements IColumnIter
 {
     private final FileDataInput file;
     private final ByteBuffer finishColumn;
-    private final AbstractType comparator;
+    private final AbstractType<?> comparator;
     private final ColumnFamily emptyColumnFamily;
     private final int columns;
     private int i;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 1399fd8..c559e28 100644
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@ -170,7 +170,7 @@ public class LazilyCompactedRow extends AbstractCompactedRow implements IIterabl
         return n;
     }
 
-    public AbstractType getComparator()
+    public AbstractType<?> getComparator()
     {
         return emptyColumnFamily.getComparator();
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/filter/IFilter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/filter/IFilter.java b/src/java/org/apache/cassandra/db/filter/IFilter.java
index e226ec6..de26e83 100644
--- a/src/java/org/apache/cassandra/db/filter/IFilter.java
+++ b/src/java/org/apache/cassandra/db/filter/IFilter.java
@@ -72,7 +72,7 @@ public interface IFilter
      */
     public abstract SuperColumn filterSuperColumn(SuperColumn superColumn, int gcBefore);
 
-    public Comparator<IColumn> getColumnComparator(AbstractType comparator);
+    public Comparator<IColumn> getColumnComparator(AbstractType<?> comparator);
 
     public boolean isReversed();
     public void updateColumnsLimit(int newLimit);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/filter/NamesQueryFilter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/filter/NamesQueryFilter.java b/src/java/org/apache/cassandra/db/filter/NamesQueryFilter.java
index 3403727..0b1ebc9 100644
--- a/src/java/org/apache/cassandra/db/filter/NamesQueryFilter.java
+++ b/src/java/org/apache/cassandra/db/filter/NamesQueryFilter.java
@@ -87,7 +87,7 @@ public class NamesQueryFilter implements IFilter
         }
     }
 
-    public Comparator<IColumn> getColumnComparator(AbstractType comparator)
+    public Comparator<IColumn> getColumnComparator(AbstractType<?> comparator)
     {
         return comparator.columnComparator;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/filter/QueryFilter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/filter/QueryFilter.java b/src/java/org/apache/cassandra/db/filter/QueryFilter.java
index 4331d6f..8dc0dd4 100644
--- a/src/java/org/apache/cassandra/db/filter/QueryFilter.java
+++ b/src/java/org/apache/cassandra/db/filter/QueryFilter.java
@@ -187,7 +187,7 @@ public class QueryFilter
         return new QueryFilter(key, path, new NamesQueryFilter(columns));
     }
 
-    public static IFilter getFilter(SlicePredicate predicate, AbstractType comparator)
+    public static IFilter getFilter(SlicePredicate predicate, AbstractType<?> comparator)
     {
         if (predicate.column_names != null)
         {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java b/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
index efe9ec2..9dc68f0 100644
--- a/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
+++ b/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
@@ -102,7 +102,7 @@ public class SliceQueryFilter implements IFilter
         return scFiltered;
     }
 
-    public Comparator<IColumn> getColumnComparator(AbstractType comparator)
+    public Comparator<IColumn> getColumnComparator(AbstractType<?> comparator)
     {
         return reversed ? comparator.columnReverseComparator : comparator.columnComparator;
     }
@@ -110,7 +110,7 @@ public class SliceQueryFilter implements IFilter
     public void collectReducedColumns(IColumnContainer container, Iterator<IColumn> reducedColumns, int gcBefore)
     {
         int liveColumns = 0;
-        AbstractType comparator = container.getComparator();
+        AbstractType<?> comparator = container.getComparator();
 
         while (reducedColumns.hasNext())
         {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java b/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
index ce26ab3..4e24ea4 100644
--- a/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
+++ b/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
@@ -63,7 +63,7 @@ public class KeysIndex extends PerColumnSecondaryIndex
                                                              indexedCfMetadata);
     }
 
-    public static AbstractType indexComparator()
+    public static AbstractType<?> indexComparator()
     {
         IPartitioner rowPartitioner = StorageService.getPartitioner();
         return (rowPartitioner instanceof OrderPreservingPartitioner || rowPartitioner instanceof ByteOrderedPartitioner)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
index 7237a87..7a15dc1 100644
--- a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
@@ -21,9 +21,7 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.*;
 
-import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.*;
-import org.apache.cassandra.db.columniterator.IColumnIterator;
 import org.apache.cassandra.db.filter.*;
 import org.apache.cassandra.db.index.SecondaryIndex;
 import org.apache.cassandra.db.index.SecondaryIndexManager;
@@ -33,7 +31,6 @@ import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.thrift.IndexExpression;
 import org.apache.cassandra.thrift.IndexOperator;
 import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.utils.HeapAllocator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java b/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java
index 1ecc72e..d3f9c1a 100644
--- a/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java
+++ b/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java
@@ -19,14 +19,8 @@
 package org.apache.cassandra.db.marshal;
 
 import java.nio.ByteBuffer;
-import java.util.Iterator;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.sql.Types;
-
-import org.apache.cassandra.utils.ByteBufferUtil;
 
 /**
  * A class avoiding class duplication between CompositeType and
@@ -77,7 +71,7 @@ public abstract class AbstractCompositeType extends AbstractType<ByteBuffer>
 
         while (bb1.remaining() > 0 && bb2.remaining() > 0)
         {
-            AbstractType comparator = getNextComparator(i, bb1, bb2);
+            AbstractType<?> comparator = getNextComparator(i, bb1, bb2);
 
             ByteBuffer value1 = getWithShortLength(bb1);
             ByteBuffer value2 = getWithShortLength(bb2);
@@ -125,7 +119,7 @@ public abstract class AbstractCompositeType extends AbstractType<ByteBuffer>
             if (bb.remaining() != bytes.remaining())
                 sb.append(":");
 
-            AbstractType comparator = getAndAppendNextComparator(i, bb, sb);
+            AbstractType<?> comparator = getAndAppendNextComparator(i, bb, sb);
             ByteBuffer value = getWithShortLength(bb);
 
             sb.append(comparator.getString(value));
@@ -164,7 +158,7 @@ public abstract class AbstractCompositeType extends AbstractType<ByteBuffer>
             }
 
             ParsedComparator p = parseNextComparator(i, part);
-            AbstractType type = p.getAbstractType();
+            AbstractType<?> type = p.getAbstractType();
             part = p.getRemainingPart();
 
             ByteBuffer component = type.fromString(part);
@@ -198,7 +192,7 @@ public abstract class AbstractCompositeType extends AbstractType<ByteBuffer>
         int i = 0;
         while (bb.remaining() > 0)
         {
-            AbstractType comparator = validateNextComparator(i, bb);
+            AbstractType<?> comparator = validateNextComparator(i, bb);
 
             if (bb.remaining() < 2)
                 throw new MarshalException("Not enough bytes to read value size of component " + i);
@@ -229,15 +223,15 @@ public abstract class AbstractCompositeType extends AbstractType<ByteBuffer>
         return value;
     }
 
-    abstract protected AbstractType getNextComparator(int i, ByteBuffer bb);
-    abstract protected AbstractType getNextComparator(int i, ByteBuffer bb1, ByteBuffer bb2);
-    abstract protected AbstractType getAndAppendNextComparator(int i, ByteBuffer bb, StringBuilder sb);
+    abstract protected AbstractType<?> getNextComparator(int i, ByteBuffer bb);
+    abstract protected AbstractType<?> getNextComparator(int i, ByteBuffer bb1, ByteBuffer bb2);
+    abstract protected AbstractType<?> getAndAppendNextComparator(int i, ByteBuffer bb, StringBuilder sb);
     abstract protected ParsedComparator parseNextComparator(int i, String part);
-    abstract protected AbstractType validateNextComparator(int i, ByteBuffer bb) throws MarshalException;
+    abstract protected AbstractType<?> validateNextComparator(int i, ByteBuffer bb) throws MarshalException;
 
     protected static interface ParsedComparator
     {
-        AbstractType getAbstractType();
+        AbstractType<?> getAbstractType();
         String getRemainingPart();
         int getComparatorSerializedSize();
         void serializeComparator(ByteBuffer bb);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/marshal/AbstractType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/AbstractType.java b/src/java/org/apache/cassandra/db/marshal/AbstractType.java
index 6cc7913..adc99f8 100644
--- a/src/java/org/apache/cassandra/db/marshal/AbstractType.java
+++ b/src/java/org/apache/cassandra/db/marshal/AbstractType.java
@@ -144,7 +144,7 @@ public abstract class AbstractType<T> implements Comparator<ByteBuffer>
         return false;
     }
 
-    public static AbstractType parseDefaultParameters(AbstractType baseType, TypeParser parser) throws ConfigurationException
+    public static AbstractType<?> parseDefaultParameters(AbstractType<?> baseType, TypeParser parser) throws ConfigurationException
     {
         Map<String, String> parameters = parser.getKeyValueParameters();
         String reversed = parameters.get("reversed");

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/marshal/CompositeType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/CompositeType.java b/src/java/org/apache/cassandra/db/marshal/CompositeType.java
index d1a4ca8..8343f27 100644
--- a/src/java/org/apache/cassandra/db/marshal/CompositeType.java
+++ b/src/java/org/apache/cassandra/db/marshal/CompositeType.java
@@ -19,14 +19,11 @@
 package org.apache.cassandra.db.marshal;
 
 import java.nio.ByteBuffer;
-import java.util.Iterator;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.cassandra.config.ConfigurationException;
-import org.apache.cassandra.utils.ByteBufferUtil;
 
 /*
  * The encoding of a CompositeType column name should be:
@@ -51,17 +48,17 @@ import org.apache.cassandra.utils.ByteBufferUtil;
 public class CompositeType extends AbstractCompositeType
 {
     // package protected for unit tests sake
-    final List<AbstractType> types;
+    final List<AbstractType<?>> types;
 
     // interning instances
-    private static final Map<List<AbstractType>, CompositeType> instances = new HashMap<List<AbstractType>, CompositeType>();
+    private static final Map<List<AbstractType<?>>, CompositeType> instances = new HashMap<List<AbstractType<?>>, CompositeType>();
 
     public static CompositeType getInstance(TypeParser parser) throws ConfigurationException
     {
         return getInstance(parser.getTypeParameters());
     }
 
-    public static synchronized CompositeType getInstance(List<AbstractType> types) throws ConfigurationException
+    public static synchronized CompositeType getInstance(List<AbstractType<?>> types) throws ConfigurationException
     {
         if (types == null || types.isEmpty())
             throw new ConfigurationException("Nonsensical empty parameter list for CompositeType");
@@ -75,22 +72,22 @@ public class CompositeType extends AbstractCompositeType
         return ct;
     }
 
-    private CompositeType(List<AbstractType> types)
+    private CompositeType(List<AbstractType<?>> types)
     {
         this.types = types;
     }
 
-    protected AbstractType getNextComparator(int i, ByteBuffer bb)
+    protected AbstractType<?> getNextComparator(int i, ByteBuffer bb)
     {
         return types.get(i);
     }
 
-    protected AbstractType getNextComparator(int i, ByteBuffer bb1, ByteBuffer bb2)
+    protected AbstractType<?> getNextComparator(int i, ByteBuffer bb1, ByteBuffer bb2)
     {
         return types.get(i);
     }
 
-    protected AbstractType getAndAppendNextComparator(int i, ByteBuffer bb, StringBuilder sb)
+    protected AbstractType<?> getAndAppendNextComparator(int i, ByteBuffer bb, StringBuilder sb)
     {
         return types.get(i);
     }
@@ -100,7 +97,7 @@ public class CompositeType extends AbstractCompositeType
         return new StaticParsedComparator(types.get(i), part);
     }
 
-    protected AbstractType validateNextComparator(int i, ByteBuffer bb) throws MarshalException
+    protected AbstractType<?> validateNextComparator(int i, ByteBuffer bb) throws MarshalException
     {
         if (i >= types.size())
             throw new MarshalException("Too many bytes for comparator");
@@ -109,16 +106,16 @@ public class CompositeType extends AbstractCompositeType
 
     private static class StaticParsedComparator implements ParsedComparator
     {
-        final AbstractType type;
+        final AbstractType<?> type;
         final String part;
 
-        StaticParsedComparator(AbstractType type, String part)
+        StaticParsedComparator(AbstractType<?> type, String part)
         {
             this.type = type;
             this.part = part;
         }
 
-        public AbstractType getAbstractType()
+        public AbstractType<?> getAbstractType()
         {
             return type;
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java b/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java
index 5fa477f..f508758 100644
--- a/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java
+++ b/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java
@@ -20,15 +20,11 @@ package org.apache.cassandra.db.marshal;
 
 import java.nio.charset.CharacterCodingException;
 import java.nio.ByteBuffer;
-import java.util.Iterator;
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 import org.apache.cassandra.config.ConfigurationException;
 import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.utils.FBUtilities;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -56,17 +52,17 @@ public class DynamicCompositeType extends AbstractCompositeType
 {
     private static final Logger logger = LoggerFactory.getLogger(DynamicCompositeType.class);
 
-    private final Map<Byte, AbstractType> aliases;
+    private final Map<Byte, AbstractType<?>> aliases;
 
     // interning instances
-    private static final Map<Map<Byte, AbstractType>, DynamicCompositeType> instances = new HashMap<Map<Byte, AbstractType>, DynamicCompositeType>();
+    private static final Map<Map<Byte, AbstractType<?>>, DynamicCompositeType> instances = new HashMap<Map<Byte, AbstractType<?>>, DynamicCompositeType>();
 
     public static synchronized DynamicCompositeType getInstance(TypeParser parser) throws ConfigurationException
     {
         return getInstance(parser.getAliasParameters());
     }
 
-    public static synchronized DynamicCompositeType getInstance(Map<Byte, AbstractType> aliases)
+    public static synchronized DynamicCompositeType getInstance(Map<Byte, AbstractType<?>> aliases)
     {
         DynamicCompositeType dct = instances.get(aliases);
         if (dct == null)
@@ -77,12 +73,12 @@ public class DynamicCompositeType extends AbstractCompositeType
         return dct;
     }
 
-    private DynamicCompositeType(Map<Byte, AbstractType> aliases)
+    private DynamicCompositeType(Map<Byte, AbstractType<?>> aliases)
     {
         this.aliases = aliases;
     }
 
-    private AbstractType getComparator(ByteBuffer bb)
+    private AbstractType<?> getComparator(ByteBuffer bb)
     {
         try
         {
@@ -107,15 +103,15 @@ public class DynamicCompositeType extends AbstractCompositeType
         }
     }
 
-    protected AbstractType getNextComparator(int i, ByteBuffer bb)
+    protected AbstractType<?> getNextComparator(int i, ByteBuffer bb)
     {
         return getComparator(bb);
     }
 
-    protected AbstractType getNextComparator(int i, ByteBuffer bb1, ByteBuffer bb2)
+    protected AbstractType<?> getNextComparator(int i, ByteBuffer bb1, ByteBuffer bb2)
     {
-        AbstractType comp1 = getComparator(bb1);
-        AbstractType comp2 = getComparator(bb2);
+        AbstractType<?> comp1 = getComparator(bb1);
+        AbstractType<?> comp2 = getComparator(bb2);
 
         // Fast test if the comparator uses singleton instances
         if (comp1 != comp2)
@@ -140,7 +136,7 @@ public class DynamicCompositeType extends AbstractCompositeType
         return comp1;
     }
 
-    protected AbstractType getAndAppendNextComparator(int i, ByteBuffer bb, StringBuilder sb)
+    protected AbstractType<?> getAndAppendNextComparator(int i, ByteBuffer bb, StringBuilder sb)
     {
         try
         {
@@ -172,9 +168,9 @@ public class DynamicCompositeType extends AbstractCompositeType
         return new DynamicParsedComparator(part);
     }
 
-    protected AbstractType validateNextComparator(int i, ByteBuffer bb) throws MarshalException
+    protected AbstractType<?> validateNextComparator(int i, ByteBuffer bb) throws MarshalException
     {
-        AbstractType comparator = null;
+        AbstractType<?> comparator = null;
         if (bb.remaining() < 2)
             throw new MarshalException("Not enough bytes to header of the comparator part of component " + i);
         int header = getShortLength(bb);
@@ -206,7 +202,7 @@ public class DynamicCompositeType extends AbstractCompositeType
 
     private class DynamicParsedComparator implements ParsedComparator
     {
-        final AbstractType type;
+        final AbstractType<?> type;
         final boolean isAlias;
         final String comparatorName;
         final String remainingPart;
@@ -222,7 +218,7 @@ public class DynamicCompositeType extends AbstractCompositeType
 
             try
             {
-                AbstractType t = null;
+                AbstractType<?> t = null;
                 if (comparatorName.length() == 1)
                 {
                     // try for an alias
@@ -243,7 +239,7 @@ public class DynamicCompositeType extends AbstractCompositeType
             }
         }
 
-        public AbstractType getAbstractType()
+        public AbstractType<?> getAbstractType()
         {
             return type;
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/marshal/ReversedType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/ReversedType.java b/src/java/org/apache/cassandra/db/marshal/ReversedType.java
index 7adbd94..a2eec15 100644
--- a/src/java/org/apache/cassandra/db/marshal/ReversedType.java
+++ b/src/java/org/apache/cassandra/db/marshal/ReversedType.java
@@ -28,25 +28,25 @@ import org.apache.cassandra.config.ConfigurationException;
 public class ReversedType<T> extends AbstractType<T>
 {
     // interning instances
-    private static final Map<AbstractType, ReversedType> instances = new HashMap<AbstractType, ReversedType>();
+    private static final Map<AbstractType<?>, ReversedType> instances = new HashMap<AbstractType<?>, ReversedType>();
 
     // package protected for unit tests sake
     final AbstractType<T> baseType;
 
     public static <T> ReversedType<T> getInstance(TypeParser parser) throws ConfigurationException
     {
-        List<AbstractType> types = parser.getTypeParameters();
+        List<AbstractType<?>> types = parser.getTypeParameters();
         if (types.size() != 1)
             throw new ConfigurationException("ReversedType takes exactly one argument, " + types.size() + " given");
-        return getInstance(types.get(0));
+        return getInstance((AbstractType<T>) types.get(0));
     }
 
     public static synchronized <T> ReversedType<T> getInstance(AbstractType<T> baseType)
     {
-        ReversedType type = instances.get(baseType);
+        ReversedType<T> type = instances.get(baseType);
         if (type == null)
         {
-            type = new ReversedType(baseType);
+            type = new ReversedType<T>(baseType);
             instances.put(baseType, type);
         }
         return (ReversedType<T>) type;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/db/marshal/TypeParser.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/TypeParser.java b/src/java/org/apache/cassandra/db/marshal/TypeParser.java
index ddcbf0e..2f223bf 100644
--- a/src/java/org/apache/cassandra/db/marshal/TypeParser.java
+++ b/src/java/org/apache/cassandra/db/marshal/TypeParser.java
@@ -41,7 +41,7 @@ public class TypeParser
     private int idx;
 
     // A cache of parsed string, specially useful for DynamicCompositeType
-    private static final Map<String, AbstractType> cache = new HashMap<String, AbstractType>();
+    private static final Map<String, AbstractType<?>> cache = new HashMap<String, AbstractType<?>>();
 
     public static final TypeParser EMPTY_PARSER = new TypeParser("", 0);
 
@@ -54,12 +54,12 @@ public class TypeParser
     /**
      * Parse a string containing an type definition.
      */
-    public static AbstractType parse(String str) throws ConfigurationException
+    public static AbstractType<?> parse(String str) throws ConfigurationException
     {
         if (str == null)
             return BytesType.instance;
 
-        AbstractType type = cache.get(str);
+        AbstractType<?> type = cache.get(str);
 
         if (type != null)
             return type;
@@ -87,12 +87,12 @@ public class TypeParser
         return type;
     }
 
-    public static AbstractType parse(CharSequence compareWith) throws ConfigurationException
+    public static AbstractType<?> parse(CharSequence compareWith) throws ConfigurationException
     {
         return parse(compareWith == null ? null : compareWith.toString());
     }
 
-    public static String getShortName(AbstractType type)
+    public static String getShortName(AbstractType<?> type)
     {
         return type.getClass().getSimpleName();
     }
@@ -100,7 +100,7 @@ public class TypeParser
     /**
      * Parse an AbstractType from current position of this parser.
      */
-    private AbstractType parse() throws ConfigurationException
+    private AbstractType<?> parse() throws ConfigurationException
     {
         skipBlank();
         String name = readNextIdentifier();
@@ -150,9 +150,9 @@ public class TypeParser
         throw new ConfigurationException(String.format("Syntax error parsing '%s' at char %d: unexpected end of string", str, idx));
     }
 
-    public List<AbstractType> getTypeParameters() throws ConfigurationException
+    public List<AbstractType<?>> getTypeParameters() throws ConfigurationException
     {
-        List<AbstractType> list = new ArrayList<AbstractType>();
+        List<AbstractType<?>> list = new ArrayList<AbstractType<?>>();
 
         if (isEOS())
             return list;
@@ -184,9 +184,9 @@ public class TypeParser
         throw new ConfigurationException(String.format("Syntax error parsing '%s' at char %d: unexpected end of string", str, idx));
     }
 
-    public Map<Byte, AbstractType> getAliasParameters() throws ConfigurationException
+    public Map<Byte, AbstractType<?>> getAliasParameters() throws ConfigurationException
     {
-        Map<Byte, AbstractType> map = new HashMap<Byte, AbstractType>();
+        Map<Byte, AbstractType<?>> map = new HashMap<Byte, AbstractType<?>>();
 
         if (isEOS())
             return map;
@@ -232,14 +232,14 @@ public class TypeParser
         throw new ConfigurationException(String.format("Syntax error parsing '%s' at char %d: unexpected end of string", str, idx));
     }
 
-    private static AbstractType getAbstractType(String compareWith) throws ConfigurationException
+    private static AbstractType<?> getAbstractType(String compareWith) throws ConfigurationException
     {
         String className = compareWith.contains(".") ? compareWith : "org.apache.cassandra.db.marshal." + compareWith;
-        Class<? extends AbstractType> typeClass = FBUtilities.<AbstractType>classForName(className, "abstract-type");
+        Class<? extends AbstractType<?>> typeClass = FBUtilities.<AbstractType<?>>classForName(className, "abstract-type");
         try
         {
             Field field = typeClass.getDeclaredField("instance");
-            return (AbstractType) field.get(null);
+            return (AbstractType<?>) field.get(null);
         }
         catch (NoSuchFieldException e)
         {
@@ -253,25 +253,25 @@ public class TypeParser
         }
     }
 
-    private static AbstractType getAbstractType(String compareWith, TypeParser parser) throws ConfigurationException
+    private static AbstractType<?> getAbstractType(String compareWith, TypeParser parser) throws ConfigurationException
     {
         String className = compareWith.contains(".") ? compareWith : "org.apache.cassandra.db.marshal." + compareWith;
-        Class<? extends AbstractType> typeClass = FBUtilities.<AbstractType>classForName(className, "abstract-type");
+        Class<? extends AbstractType<?>> typeClass = FBUtilities.<AbstractType<?>>classForName(className, "abstract-type");
         try
         {
             Method method = typeClass.getDeclaredMethod("getInstance", TypeParser.class);
-            return (AbstractType) method.invoke(null, parser);
+            return (AbstractType<?>) method.invoke(null, parser);
         }
         catch (NoSuchMethodException e)
         {
             // Trying to see if we have an instance field and apply the default parameter to it
-            AbstractType type = getRawAbstractType(typeClass);
+            AbstractType<?> type = getRawAbstractType(typeClass);
             return AbstractType.parseDefaultParameters(type, parser);
         }
         catch (IllegalAccessException e)
         {
             // Trying to see if we have an instance field and apply the default parameter to it
-            AbstractType type = getRawAbstractType(typeClass);
+            AbstractType<?> type = getRawAbstractType(typeClass);
             return AbstractType.parseDefaultParameters(type, parser);
         }
         catch (InvocationTargetException e)
@@ -282,12 +282,12 @@ public class TypeParser
         }
     }
 
-    private static AbstractType getRawAbstractType(Class<? extends AbstractType> typeClass) throws ConfigurationException
+    private static AbstractType<?> getRawAbstractType(Class<? extends AbstractType<?>> typeClass) throws ConfigurationException
     {
         try
         {
             Field field = typeClass.getDeclaredField("instance");
-            return (AbstractType) field.get(null);
+            return (AbstractType<?>) field.get(null);
         }
         catch (NoSuchFieldException e)
         {
@@ -299,12 +299,12 @@ public class TypeParser
         }
     }
 
-    private static AbstractType getRawAbstractType(Class<? extends AbstractType> typeClass, TypeParser parser) throws ConfigurationException
+    private static AbstractType<?> getRawAbstractType(Class<? extends AbstractType<?>> typeClass, TypeParser parser) throws ConfigurationException
     {
         try
         {
             Method method = typeClass.getDeclaredMethod("getInstance", TypeParser.class);
-            return (AbstractType) method.invoke(null, parser);
+            return (AbstractType<?>) method.invoke(null, parser);
         }
         catch (NoSuchMethodException e)
         {
@@ -401,19 +401,19 @@ public class TypeParser
     /**
      * Helper function to ease the writing of AbstractType.toString() methods.
      */
-    public static String stringifyAliasesParameters(Map<Byte, AbstractType> aliases)
+    public static String stringifyAliasesParameters(Map<Byte, AbstractType<?>> aliases)
     {
         StringBuilder sb = new StringBuilder();
         sb.append('(');
-        Iterator<Map.Entry<Byte, AbstractType>> iter = aliases.entrySet().iterator();
+        Iterator<Map.Entry<Byte, AbstractType<?>>> iter = aliases.entrySet().iterator();
         if (iter.hasNext())
         {
-            Map.Entry<Byte, AbstractType> entry = iter.next();
+            Map.Entry<Byte, AbstractType<?>> entry = iter.next();
             sb.append((char)(byte)entry.getKey()).append("=>").append(entry.getValue());
         }
         while (iter.hasNext())
         {
-            Map.Entry<Byte, AbstractType> entry = iter.next();
+            Map.Entry<Byte, AbstractType<?>> entry = iter.next();
             sb.append(',').append((char)(byte)entry.getKey()).append("=>").append(entry.getValue());
         }
         sb.append(')');
@@ -423,7 +423,7 @@ public class TypeParser
     /**
      * Helper function to ease the writing of AbstractType.toString() methods.
      */
-    public static String stringifyTypeParameters(List<AbstractType> types)
+    public static String stringifyTypeParameters(List<AbstractType<?>> types)
     {
         StringBuilder sb = new StringBuilder();
         sb.append('(').append(StringUtils.join(types, ",")).append(')');

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/dht/LocalPartitioner.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/dht/LocalPartitioner.java b/src/java/org/apache/cassandra/dht/LocalPartitioner.java
index dfc05e3..8c4be42 100644
--- a/src/java/org/apache/cassandra/dht/LocalPartitioner.java
+++ b/src/java/org/apache/cassandra/dht/LocalPartitioner.java
@@ -30,9 +30,9 @@ import org.apache.cassandra.utils.ByteBufferUtil;
 
 public class LocalPartitioner extends AbstractPartitioner<LocalToken>
 {
-    private final AbstractType comparator;
+    private final AbstractType<?> comparator;
 
-    public LocalPartitioner(AbstractType comparator)
+    public LocalPartitioner(AbstractType<?> comparator)
     {
         this.comparator = comparator;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/dht/LocalToken.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/dht/LocalToken.java b/src/java/org/apache/cassandra/dht/LocalToken.java
index 4a4c15f..a3eb3af 100644
--- a/src/java/org/apache/cassandra/dht/LocalToken.java
+++ b/src/java/org/apache/cassandra/dht/LocalToken.java
@@ -26,9 +26,9 @@ public class LocalToken extends Token<ByteBuffer>
 {
     static final long serialVersionUID = 8437543776403014875L;
 
-    private final AbstractType comparator;
+    private final AbstractType<?> comparator;
 
-    public LocalToken(AbstractType comparator, ByteBuffer token)
+    public LocalToken(AbstractType<?> comparator, ByteBuffer token)
     {
         super(token);
         this.comparator = comparator;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/hadoop/BulkRecordWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/hadoop/BulkRecordWriter.java b/src/java/org/apache/cassandra/hadoop/BulkRecordWriter.java
index 9347316..d270136 100644
--- a/src/java/org/apache/cassandra/hadoop/BulkRecordWriter.java
+++ b/src/java/org/apache/cassandra/hadoop/BulkRecordWriter.java
@@ -75,7 +75,7 @@ implements org.apache.hadoop.mapred.RecordWriter<ByteBuffer,List<Mutation>>
         File outputdir = new File(getOutputLocation() + File.separator + keyspace); //dir must be named by ks for the loader
         outputdir.mkdirs();
         this.isSuper = Boolean.valueOf(conf.get(IS_SUPERCF));
-        AbstractType subcomparator = null;
+        AbstractType<?> subcomparator = null;
         if (isSuper)
             subcomparator = BytesType.instance;
         this.writer = new SSTableSimpleUnsortedWriter(
@@ -184,7 +184,7 @@ implements org.apache.hadoop.mapred.RecordWriter<ByteBuffer,List<Mutation>>
 
                     for (TokenRange tr : tokenRanges)
                     {
-                        Range range = new Range(tkFactory.fromString(tr.start_token), tkFactory.fromString(tr.end_token));
+                        Range<Token> range = new Range<Token>(tkFactory.fromString(tr.start_token), tkFactory.fromString(tr.end_token));
                         for (String ep : tr.endpoints)
                         {
                             addRangeForEndpoint(range, InetAddress.getByName(ep));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java b/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java
index e3d1bb0..cbe2b3c 100644
--- a/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java
+++ b/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java
@@ -225,8 +225,8 @@ public class ColumnFamilyRecordReader extends RecordReader<ByteBuffer, SortedMap
         private String startToken;
         private int totalRead = 0;
         private int i = 0;
-        private final AbstractType comparator;
-        private final AbstractType subComparator;
+        private final AbstractType<?> comparator;
+        private final AbstractType<?> subComparator;
         private final IPartitioner partitioner;
 
         private RowIterator()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/IndexHelper.java b/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
index 8ffbe40..4ad5d32 100644
--- a/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
+++ b/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
@@ -152,7 +152,7 @@ public class IndexHelper
      *
      * @return int index
      */
-    public static int indexFor(ByteBuffer name, List<IndexInfo> indexList, AbstractType comparator, boolean reversed)
+    public static int indexFor(ByteBuffer name, List<IndexInfo> indexList, AbstractType<?> comparator, boolean reversed)
     {
         if (name.remaining() == 0 && reversed)
             return indexList.size() - 1;
@@ -174,7 +174,7 @@ public class IndexHelper
         return index < 0 ? -index - (reversed ? 2 : 1) : index;
     }
 
-    public static Comparator<IndexInfo> getComparator(final AbstractType nameComparator, boolean reversed)
+    public static Comparator<IndexInfo> getComparator(final AbstractType<?> nameComparator, boolean reversed)
     {
         return reversed ? nameComparator.indexReverseComparator : nameComparator.indexComparator;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
index 472f6c7..4e05a41 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
@@ -70,8 +70,8 @@ public class SSTableSimpleUnsortedWriter extends AbstractSSTableSimpleWriter
     public SSTableSimpleUnsortedWriter(File directory,
                                        String keyspace,
                                        String columnFamily,
-                                       AbstractType comparator,
-                                       AbstractType subComparator,
+                                       AbstractType<?> comparator,
+                                       AbstractType<?> subComparator,
                                        int bufferSizeInMB) throws IOException
     {
         super(directory, new CFMetaData(keyspace, columnFamily, subComparator == null ? ColumnFamilyType.Standard : ColumnFamilyType.Super, comparator, subComparator));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java
index 340fb4f..10242da 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java
@@ -20,7 +20,6 @@ package org.apache.cassandra.io.sstable;
 
 import java.io.File;
 import java.io.IOException;
-import java.nio.ByteBuffer;
 
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.db.*;
@@ -52,8 +51,8 @@ public class SSTableSimpleWriter extends AbstractSSTableSimpleWriter
     public SSTableSimpleWriter(File directory,
                                String keyspace,
                                String columnFamily,
-                               AbstractType comparator,
-                               AbstractType subComparator) throws IOException
+                               AbstractType<?> comparator,
+                               AbstractType<?> subComparator) throws IOException
     {
         this(directory,
              new CFMetaData(keyspace, columnFamily, subComparator == null ? ColumnFamilyType.Standard : ColumnFamilyType.Super, comparator, subComparator));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/io/util/IIterableColumns.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/IIterableColumns.java b/src/java/org/apache/cassandra/io/util/IIterableColumns.java
index f9c74cf..cb1b2f0 100644
--- a/src/java/org/apache/cassandra/io/util/IIterableColumns.java
+++ b/src/java/org/apache/cassandra/io/util/IIterableColumns.java
@@ -28,5 +28,5 @@ public interface IIterableColumns extends Iterable<IColumn>
 {
     public int getEstimatedColumnCount();
 
-    AbstractType getComparator();
+    AbstractType<?> getComparator();
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bc0d4db/src/java/org/apache/cassandra/io/util/SegmentedFile.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/SegmentedFile.java b/src/java/org/apache/cassandra/io/util/SegmentedFile.java
index 8a9682c..2238dc4 100644
--- a/src/java/org/apache/cassandra/io/util/SegmentedFile.java
+++ b/src/java/org/apache/cassandra/io/util/SegmentedFile.java
@@ -26,7 +26,6 @@ import java.util.Iterator;
 import java.util.NoSuchElementException;
 
 import org.apache.cassandra.config.Config;
-import org.apache.cassandra.io.compress.CompressionMetadata;
 import org.apache.cassandra.utils.Pair;
 
 /**
@@ -84,7 +83,7 @@ public abstract class SegmentedFile
      */
     public Iterator<FileDataInput> iterator(long position, int bufferSize)
     {
-        return new SegmentIterator(position, bufferSize);
+        return new SegmentIterator(position);
     }
 
     /**
@@ -130,11 +129,9 @@ public abstract class SegmentedFile
     final class SegmentIterator implements Iterator<FileDataInput>
     {
         private long nextpos;
-        private final int bufferSize;
-        public SegmentIterator(long position, int bufferSize)
+        public SegmentIterator(long position)
         {
             this.nextpos = position;
-            this.bufferSize = bufferSize;
         }
 
         public boolean hasNext()