On 6/7/10 5:38 PM, Felix Knecht wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 06/07/10 17:20, [email protected] wrote:
Author: elecharny
Date: Mon Jun 7 15:20:46 2010
New Revision: 952265
URL: http://svn.apache.org/viewvc?rev=952265&view=rev
Log:
Reverted a wrong check on the keySerializer.
Modified:
directory/apacheds/trunk/jdbm/src/main/java/jdbm/btree/BTree.java
Modified: directory/apacheds/trunk/jdbm/src/main/java/jdbm/btree/BTree.java
URL:
http://svn.apache.org/viewvc/directory/apacheds/trunk/jdbm/src/main/java/jdbm/btree/BTree.java?rev=952265&r1=952264&r2=952265&view=diff
==============================================================================
--- directory/apacheds/trunk/jdbm/src/main/java/jdbm/btree/BTree.java (original)
+++ directory/apacheds/trunk/jdbm/src/main/java/jdbm/btree/BTree.java Mon Jun
7 15:20:46 2010
@@ -55,13 +55,13 @@ import java.io.Serializable;
import java.util.Comparator;
import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.directory.server.i18n.I18n;
-
import jdbm.RecordManager;
import jdbm.helper.Serializer;
import jdbm.helper.Tuple;
import jdbm.helper.TupleBrowser;
+import org.apache.directory.server.i18n.I18n;
+
/**
* B+Tree persistent indexing data structure. B+Trees are optimized for
@@ -206,12 +206,12 @@ public class BTree<K, V> implements Exte
throw new IllegalArgumentException( I18n.err( I18n.ERR_519 ) );
}
- if ( keySerializer != null )
+ if ( ( keySerializer != null )&& ! ( keySerializer instanceof
Serializable ) )
{
throw new IllegalArgumentException( I18n.err( I18n.ERR_520 ) );
}
- if ( valueSerializer != null&& !( valueSerializer instanceof
Serializable ) )
+ if ( ( valueSerializer != null )&& !( valueSerializer instanceof
Serializable ) )
{
throw new IllegalArgumentException( I18n.err( I18n.ERR_521 ) );
}
IMO this doesn't solves the problem doing the instanceOf check. The
method params are declared as jdbm.helper.Serializer which extends
Serializable. Therefore keySerializer and valueSerializer must be
instance of Serializable in the if restriction. If they can be
instanceOf anything else the method footprint needs to be changed for
not getting an IllegalArgument exception?
Yes, this is the other option : not checking the keySerializer at all,
as the test always evaluate to true. But certainly not checking half of
the test (ie if ( keySerilizer != null ) then throw Exception),
otherwise, trust me, you'll get tens of failing tests !!
--
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com