diff --git a/java/org/rocksdb/Filter.java b/java/org/rocksdb/Filter.java index cf6544870..a0e16eb4d 100644 --- a/java/org/rocksdb/Filter.java +++ b/java/org/rocksdb/Filter.java @@ -12,22 +12,18 @@ package org.rocksdb; * number of disk seeks form a handful to a single disk seek per * DB::Get() call. * - * This function a new filter policy that uses a bloom filter + * This class creates a new filter policy that uses a bloom filter * with approximately the specified number of bits per key. * A good value for bitsPerKey is 10, which yields a filter - * with ~ 1% false positive rate. + * with ~ 1% false positive rate. */ public class Filter { private long nativeHandle_; - + public Filter(int bitsPerKey) { newFilter(bitsPerKey); } - - public long getNativeHandle() { - return nativeHandle_; - } - + /** * Deletes underlying C++ filter pointer. */ @@ -44,7 +40,7 @@ public class Filter { private boolean isInitialized() { return (nativeHandle_ != 0); } - + private native void newFilter(int bitsPerKey); private native void dispose0(long handle); -} \ No newline at end of file +} diff --git a/java/org/rocksdb/Options.java b/java/org/rocksdb/Options.java index aee5f1851..ff289b776 100644 --- a/java/org/rocksdb/Options.java +++ b/java/org/rocksdb/Options.java @@ -152,7 +152,7 @@ public class Options { */ public Options setFilter(Filter filter) { assert(isInitialized()); - setFilter0(nativeHandle_, filter.getNativeHandle()); + setFilter0(nativeHandle_, filter); return this; } @@ -1250,7 +1250,7 @@ public class Options { private native void useFixedLengthPrefixExtractor( long handle, int prefixLength); - private native void setFilter0(long optHandle, long fpHandle); + private native void setFilter0(long optHandle, Filter fp); long nativeHandle_; long cacheSize_; diff --git a/java/rocksjni/filter.cc b/java/rocksjni/filter.cc index c363a851a..caee92c82 100644 --- a/java/rocksjni/filter.cc +++ b/java/rocksjni/filter.cc @@ -36,4 +36,4 @@ void Java_org_rocksdb_Filter_dispose0( delete fp; rocksdb::FilterJni::setHandle(env, jobj, nullptr); -} \ No newline at end of file +} diff --git a/java/rocksjni/options.cc b/java/rocksjni/options.cc index dbb10e0c8..d9aef3d74 100644 --- a/java/rocksjni/options.cc +++ b/java/rocksjni/options.cc @@ -126,9 +126,9 @@ jlong Java_org_rocksdb_Options_statisticsPtr( * Signature: (JJ)V */ void Java_org_rocksdb_Options_setFilter0( - JNIEnv* env, jobject jobj, jlong jopt_handle, jlong jfp_handle) { + JNIEnv* env, jobject jobj, jlong jopt_handle, jobject jfp) { reinterpret_cast(jopt_handle)->filter_policy = - reinterpret_cast(jfp_handle); + rocksdb::FilterJni::getHandle(env, jfp); } /*