You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ka...@apache.org on 2013/07/03 13:41:22 UTC

svn commit: r1499333 - /labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/BTree.java

Author: kayyagari
Date: Wed Jul  3 11:41:22 2013
New Revision: 1499333

URL: http://svn.apache.org/r1499333
Log:
o added a checks to avoid ClassCastException while deriving the key type
o set the comparator also while setting the serializer

Modified:
    labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/BTree.java

Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/BTree.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/BTree.java?rev=1499333&r1=1499332&r2=1499333&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/BTree.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/BTree.java Wed Jul  3 11:41:22 2013
@@ -496,11 +496,19 @@ public class BTree<K, V>
         // We will extract the Type to use for keys, using the comparator for that
         Class<?> comparatorClass = comparator.getClass();
         Type[] types = comparatorClass.getGenericInterfaces();
-        Type[] argumentTypes = ( ( ParameterizedType ) types[0] ).getActualTypeArguments();
-
-        if ( ( argumentTypes != null ) && ( argumentTypes.length > 0 ) && ( argumentTypes[0] instanceof Class<?> ) )
+        
+        if ( types[0] instanceof Class )
+        {
+        	keyType = ( Class<?> ) types[0];
+        }
+        else
         {
-            keyType = ( Class<?> ) argumentTypes[0];
+        	Type[] argumentTypes = ( ( ParameterizedType ) types[0] ).getActualTypeArguments();
+        	
+        	if ( ( argumentTypes != null ) && ( argumentTypes.length > 0 ) && ( argumentTypes[0] instanceof Class<?> ) )
+        	{
+        		keyType = ( Class<?> ) argumentTypes[0];
+        	}
         }
 
         writeLock = new ReentrantLock();
@@ -1314,6 +1322,7 @@ public class BTree<K, V>
     public void setKeySerializer( ElementSerializer<K> keySerializer )
     {
         this.keySerializer = keySerializer;
+        this.comparator = keySerializer.getComparator();
         btreeHeader.setKeySerializerFQCN( keySerializer.getClass().getName() );
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org