diff --git a/java/RocksDBColumnFamilySample.java b/java/RocksDBColumnFamilySample.java
index 5515845cb..da9f4d28b 100644
--- a/java/RocksDBColumnFamilySample.java
+++ b/java/RocksDBColumnFamilySample.java
@@ -33,7 +33,8 @@ public class RocksDBColumnFamilySample {
// create column family
columnFamilyHandle = db.createColumnFamily(
- new ColumnFamilyDescriptor("new_cf", new ColumnFamilyOptions()));
+ new ColumnFamilyDescriptor("new_cf".getBytes(),
+ new ColumnFamilyOptions()));
assert(columnFamilyHandle != null);
} finally {
@@ -56,7 +57,7 @@ public class RocksDBColumnFamilySample {
RocksDB.DEFAULT_COLUMN_FAMILY, new ColumnFamilyOptions()));
// open the new one, too
columnFamilyDescriptors.add(new ColumnFamilyDescriptor(
- "new_cf", new ColumnFamilyOptions()));
+ "new_cf".getBytes(), new ColumnFamilyOptions()));
List columnFamilyHandles = new ArrayList<>();
try {
db = RocksDB.open(new DBOptions(), db_path,
diff --git a/java/org/rocksdb/ColumnFamilyDescriptor.java b/java/org/rocksdb/ColumnFamilyDescriptor.java
index b01c0e858..193865e55 100644
--- a/java/org/rocksdb/ColumnFamilyDescriptor.java
+++ b/java/org/rocksdb/ColumnFamilyDescriptor.java
@@ -16,8 +16,21 @@ public class ColumnFamilyDescriptor {
* options,
*
* @param columnFamilyName name of column family.
+ * @deprecated will be removed in RocksDB 3.10.0. Use {}
*/
+ @Deprecated
public ColumnFamilyDescriptor(final String columnFamilyName){
+ this(columnFamilyName.getBytes(), new ColumnFamilyOptions());
+ }
+
+ /**
+ * Creates a new Column Family using a name and default
+ * options,
+ *
+ * @param columnFamilyName name of column family.
+ * @since 3.10.0
+ */
+ public ColumnFamilyDescriptor(final byte[] columnFamilyName) {
this(columnFamilyName, new ColumnFamilyOptions());
}
@@ -28,9 +41,25 @@ public class ColumnFamilyDescriptor {
* @param columnFamilyName name of column family.
* @param columnFamilyOptions options to be used with
* column family.
+ * @deprecated will be removed in RocksDB 3.10.0. Use {}
*/
+ @Deprecated
public ColumnFamilyDescriptor(final String columnFamilyName,
final ColumnFamilyOptions columnFamilyOptions) {
+ this(columnFamilyName.getBytes(), columnFamilyOptions);
+ }
+
+ /**
+ * Creates a new Column Family using a name and custom
+ * options.
+ *
+ * @param columnFamilyName name of column family.
+ * @param columnFamilyOptions options to be used with
+ * column family.
+ * @since 3.10.0
+ */
+ public ColumnFamilyDescriptor(final byte[] columnFamilyName,
+ final ColumnFamilyOptions columnFamilyOptions) {
columnFamilyName_ = columnFamilyName;
columnFamilyOptions_ = columnFamilyOptions;
}
@@ -39,8 +68,9 @@ public class ColumnFamilyDescriptor {
* Retrieve name of column family.
*
* @return column family name.
+ * @since 3.10.0
*/
- public String columnFamilyName() {
+ public byte[] columnFamilyName() {
return columnFamilyName_;
}
@@ -53,6 +83,6 @@ public class ColumnFamilyDescriptor {
return columnFamilyOptions_;
}
- private final String columnFamilyName_;
+ private final byte[] columnFamilyName_;
private final ColumnFamilyOptions columnFamilyOptions_;
}
diff --git a/java/org/rocksdb/RocksDB.java b/java/org/rocksdb/RocksDB.java
index 04a93eacd..22a608207 100644
--- a/java/org/rocksdb/RocksDB.java
+++ b/java/org/rocksdb/RocksDB.java
@@ -16,7 +16,7 @@ import org.rocksdb.util.Environment;
* indicates sth wrong at the RocksDB library side and the call failed.
*/
public class RocksDB extends RocksObject {
- public static final String DEFAULT_COLUMN_FAMILY = "default";
+ public static final byte[] DEFAULT_COLUMN_FAMILY = "default".getBytes();
public static final int NOT_FOUND = -1;
static {
diff --git a/java/org/rocksdb/test/AbstractComparatorTest.java b/java/org/rocksdb/test/AbstractComparatorTest.java
index 9d1f2fc64..f0281a521 100644
--- a/java/org/rocksdb/test/AbstractComparatorTest.java
+++ b/java/org/rocksdb/test/AbstractComparatorTest.java
@@ -116,7 +116,7 @@ public abstract class AbstractComparatorTest {
new ArrayList<>();
cfDescriptors.add(new ColumnFamilyDescriptor(
RocksDB.DEFAULT_COLUMN_FAMILY));
- cfDescriptors.add(new ColumnFamilyDescriptor("new_cf",
+ cfDescriptors.add(new ColumnFamilyDescriptor("new_cf".getBytes(),
new ColumnFamilyOptions().setComparator(
getAscendingIntKeyComparator())));
List cfHandles = new ArrayList<>();
diff --git a/java/org/rocksdb/test/ColumnFamilyTest.java b/java/org/rocksdb/test/ColumnFamilyTest.java
index 5b51ee718..703ed296f 100644
--- a/java/org/rocksdb/test/ColumnFamilyTest.java
+++ b/java/org/rocksdb/test/ColumnFamilyTest.java
@@ -68,7 +68,7 @@ public class ColumnFamilyTest {
dbOptions.setCreateIfMissing(true);
db = RocksDB.open(options, dbFolder.getRoot().getAbsolutePath());
- db.createColumnFamily(new ColumnFamilyDescriptor("new_cf",
+ db.createColumnFamily(new ColumnFamilyDescriptor("new_cf".getBytes(),
new ColumnFamilyOptions()));
db.close();
List columnFamilyNames;
@@ -102,7 +102,7 @@ public class ColumnFamilyTest {
List columnFamilyHandleList =
new ArrayList<>();
cfNames.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
- cfNames.add(new ColumnFamilyDescriptor("new_cf"));
+ cfNames.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(options, dbFolder.getRoot().getAbsolutePath(),
cfNames, columnFamilyHandleList);
@@ -191,12 +191,12 @@ public class ColumnFamilyTest {
List columnFamilyHandleList =
new ArrayList<>();
cfNames.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
- cfNames.add(new ColumnFamilyDescriptor("new_cf"));
+ cfNames.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(opt, dbFolder.getRoot().getAbsolutePath(),
cfNames, columnFamilyHandleList);
tmpColumnFamilyHandle = db.createColumnFamily(
- new ColumnFamilyDescriptor("tmpCF", new ColumnFamilyOptions()));
+ new ColumnFamilyDescriptor("tmpCF".getBytes(), new ColumnFamilyOptions()));
db.put(tmpColumnFamilyHandle, "key".getBytes(), "value".getBytes());
db.dropColumnFamily(tmpColumnFamilyHandle);
tmpColumnFamilyHandle.dispose();
@@ -226,7 +226,7 @@ public class ColumnFamilyTest {
List columnFamilyHandleList =
new ArrayList<>();
cfNames.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
- cfNames.add(new ColumnFamilyDescriptor("new_cf"));
+ cfNames.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(opt, dbFolder.getRoot().getAbsolutePath(),
cfNames, columnFamilyHandleList);
@@ -273,7 +273,7 @@ public class ColumnFamilyTest {
List columnFamilyHandleList =
new ArrayList<>();
cfNames.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
- cfNames.add(new ColumnFamilyDescriptor("new_cf"));
+ cfNames.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(options, dbFolder.getRoot().getAbsolutePath(),
cfNames, columnFamilyHandleList);
@@ -322,7 +322,7 @@ public class ColumnFamilyTest {
List columnFamilyHandleList =
new ArrayList<>();
cfDescriptors.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
- cfDescriptors.add(new ColumnFamilyDescriptor("new_cf"));
+ cfDescriptors.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(options, dbFolder.getRoot().getAbsolutePath(),
cfDescriptors, columnFamilyHandleList);
@@ -367,7 +367,7 @@ public class ColumnFamilyTest {
List columnFamilyHandleList =
new ArrayList<>();
cfNames.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
- cfNames.add(new ColumnFamilyDescriptor("new_cf"));
+ cfNames.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(options, dbFolder.getRoot().getAbsolutePath(),
cfNames, columnFamilyHandleList);
@@ -409,7 +409,7 @@ public class ColumnFamilyTest {
List columnFamilyHandleList =
new ArrayList<>();
cfNames.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
- cfNames.add(new ColumnFamilyDescriptor("new_cf"));
+ cfNames.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(options, dbFolder.getRoot().getAbsolutePath(),
cfNames, columnFamilyHandleList);
@@ -459,7 +459,7 @@ public class ColumnFamilyTest {
List columnFamilyHandleList =
new ArrayList<>();
cfNames.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
- cfNames.add(new ColumnFamilyDescriptor("new_cf"));
+ cfNames.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(options, dbFolder.getRoot().getAbsolutePath(),
cfNames, columnFamilyHandleList);
@@ -487,7 +487,7 @@ public class ColumnFamilyTest {
List columnFamilyHandleList =
new ArrayList<>();
cfNames.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
- cfNames.add(new ColumnFamilyDescriptor("new_cf"));
+ cfNames.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(options, dbFolder.getRoot().getAbsolutePath(),
cfNames, columnFamilyHandleList);
@@ -515,7 +515,7 @@ public class ColumnFamilyTest {
List columnFamilyHandleList =
new ArrayList<>();
cfNames.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
- cfNames.add(new ColumnFamilyDescriptor("new_cf"));
+ cfNames.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(options, dbFolder.getRoot().getAbsolutePath(),
cfNames, columnFamilyHandleList);
@@ -543,7 +543,7 @@ public class ColumnFamilyTest {
List columnFamilyHandleList =
new ArrayList<>();
cfNames.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
- cfNames.add(new ColumnFamilyDescriptor("new_cf"));
+ cfNames.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(options, dbFolder.getRoot().getAbsolutePath(),
cfNames, columnFamilyHandleList);
diff --git a/java/org/rocksdb/test/KeyMayExistTest.java b/java/org/rocksdb/test/KeyMayExistTest.java
index 4fe45e4c0..921a6593c 100644
--- a/java/org/rocksdb/test/KeyMayExistTest.java
+++ b/java/org/rocksdb/test/KeyMayExistTest.java
@@ -37,8 +37,8 @@ public class KeyMayExistTest {
new ArrayList<>();
List columnFamilyHandleList =
new ArrayList<>();
- cfDescriptors.add(new ColumnFamilyDescriptor("default"));
- cfDescriptors.add(new ColumnFamilyDescriptor("new_cf"));
+ cfDescriptors.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
+ cfDescriptors.add(new ColumnFamilyDescriptor("new_cf".getBytes()));
db = RocksDB.open(options,
dbFolder.getRoot().getAbsolutePath(),
cfDescriptors, columnFamilyHandleList);
diff --git a/java/org/rocksdb/test/MergeTest.java b/java/org/rocksdb/test/MergeTest.java
index f90b0b0c1..9bb882e44 100644
--- a/java/org/rocksdb/test/MergeTest.java
+++ b/java/org/rocksdb/test/MergeTest.java
@@ -8,7 +8,6 @@ package org.rocksdb.test;
import java.util.List;
import java.util.ArrayList;
-import org.junit.Assert;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
@@ -73,10 +72,10 @@ public class MergeTest {
List cfDescriptors =
new ArrayList<>();
- cfDescriptors.add(new ColumnFamilyDescriptor("default",
+ cfDescriptors.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY,
new ColumnFamilyOptions().setMergeOperatorName(
"stringappend")));
- cfDescriptors.add(new ColumnFamilyDescriptor("default",
+ cfDescriptors.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY,
new ColumnFamilyOptions().setMergeOperatorName(
"stringappend")));
db = RocksDB.open(opt, db_path_string,
@@ -158,10 +157,10 @@ public class MergeTest {
new ArrayList<>();
List columnFamilyHandleList =
new ArrayList<>();
- cfDescriptors.add(new ColumnFamilyDescriptor("default",
+ cfDescriptors.add(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY,
new ColumnFamilyOptions().setMergeOperator(
stringAppendOperator)));
- cfDescriptors.add(new ColumnFamilyDescriptor("new_cf",
+ cfDescriptors.add(new ColumnFamilyDescriptor("new_cf".getBytes(),
new ColumnFamilyOptions().setMergeOperator(
stringAppendOperator)));
db = RocksDB.open(opt, db_path_string,
@@ -178,7 +177,7 @@ public class MergeTest {
// Test also with createColumnFamily
columnFamilyHandle = db.createColumnFamily(
- new ColumnFamilyDescriptor("new_cf2",
+ new ColumnFamilyDescriptor("new_cf2".getBytes(),
new ColumnFamilyOptions().setMergeOperator(stringAppendOperator)));
// writing xx under cfkey2
db.put(columnFamilyHandle, "cfkey2".getBytes(), "xx".getBytes());
diff --git a/java/org/rocksdb/test/ReadOnlyTest.java b/java/org/rocksdb/test/ReadOnlyTest.java
index bf6bb5eb5..fce704eb5 100644
--- a/java/org/rocksdb/test/ReadOnlyTest.java
+++ b/java/org/rocksdb/test/ReadOnlyTest.java
@@ -58,9 +58,9 @@ public class ReadOnlyTest {
db = RocksDB.open(
dbFolder.getRoot().getAbsolutePath(), cfDescriptors, columnFamilyHandleList);
columnFamilyHandleList.add(db.createColumnFamily(
- new ColumnFamilyDescriptor("new_cf", new ColumnFamilyOptions())));
+ new ColumnFamilyDescriptor("new_cf".getBytes(), new ColumnFamilyOptions())));
columnFamilyHandleList.add(db.createColumnFamily(
- new ColumnFamilyDescriptor("new_cf2", new ColumnFamilyOptions())));
+ new ColumnFamilyDescriptor("new_cf2".getBytes(), new ColumnFamilyOptions())));
db.put(columnFamilyHandleList.get(2), "key2".getBytes(),
"value2".getBytes());
@@ -75,7 +75,7 @@ public class ReadOnlyTest {
new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY,
new ColumnFamilyOptions()));
cfDescriptors.add(
- new ColumnFamilyDescriptor("new_cf2", new ColumnFamilyOptions()));
+ new ColumnFamilyDescriptor("new_cf2".getBytes(), new ColumnFamilyOptions()));
db3 = RocksDB.openReadOnly(
dbFolder.getRoot().getAbsolutePath(), cfDescriptors, readOnlyColumnFamilyHandleList2);
assertThat(new String(db3.get(readOnlyColumnFamilyHandleList2.get(1),
diff --git a/java/org/rocksdb/test/RocksDBTest.java b/java/org/rocksdb/test/RocksDBTest.java
index df0c04787..a6934b310 100644
--- a/java/org/rocksdb/test/RocksDBTest.java
+++ b/java/org/rocksdb/test/RocksDBTest.java
@@ -370,7 +370,7 @@ public class RocksDBTest {
columnFamilyDescriptors.add(new ColumnFamilyDescriptor(
RocksDB.DEFAULT_COLUMN_FAMILY));
columnFamilyDescriptors.add(new ColumnFamilyDescriptor(
- "new_cf",
+ "new_cf".getBytes(),
new ColumnFamilyOptions().
setDisableAutoCompactions(true).
setCompactionStyle(CompactionStyle.LEVEL).
@@ -501,7 +501,7 @@ public class RocksDBTest {
columnFamilyDescriptors.add(new ColumnFamilyDescriptor(
RocksDB.DEFAULT_COLUMN_FAMILY));
columnFamilyDescriptors.add(new ColumnFamilyDescriptor(
- "new_cf",
+ "new_cf".getBytes(),
new ColumnFamilyOptions().
setDisableAutoCompactions(true).
setCompactionStyle(CompactionStyle.LEVEL).
@@ -556,7 +556,7 @@ public class RocksDBTest {
columnFamilyDescriptors.add(new ColumnFamilyDescriptor(
RocksDB.DEFAULT_COLUMN_FAMILY));
columnFamilyDescriptors.add(new ColumnFamilyDescriptor(
- "new_cf",
+ "new_cf".getBytes(),
new ColumnFamilyOptions().
setDisableAutoCompactions(true).
setCompactionStyle(CompactionStyle.LEVEL).
@@ -670,7 +670,7 @@ public class RocksDBTest {
columnFamilyDescriptors.add(new ColumnFamilyDescriptor(
RocksDB.DEFAULT_COLUMN_FAMILY));
columnFamilyDescriptors.add(new ColumnFamilyDescriptor(
- "new_cf",
+ "new_cf".getBytes(),
new ColumnFamilyOptions().
setDisableAutoCompactions(true).
setCompactionStyle(CompactionStyle.LEVEL).
diff --git a/java/rocksjni/portal.h b/java/rocksjni/portal.h
index 9fdab09a4..539e824e5 100644
--- a/java/rocksjni/portal.h
+++ b/java/rocksjni/portal.h
@@ -172,7 +172,7 @@ class ColumnFamilyDescriptorJni {
static jmethodID getColumnFamilyNameMethod(JNIEnv* env) {
static jmethodID mid = env->GetMethodID(
getColumnFamilyDescriptorClass(env),
- "columnFamilyName", "()Ljava/lang/String;");
+ "columnFamilyName", "()[B");
assert(mid != nullptr);
return mid;
}
diff --git a/java/rocksjni/rocksjni.cc b/java/rocksjni/rocksjni.cc
index 57a20e487..2a536b104 100644
--- a/java/rocksjni/rocksjni.cc
+++ b/java/rocksjni/rocksjni.cc
@@ -74,8 +74,8 @@ jobject
rocksdb::DB* db = nullptr;
const char* db_path = env->GetStringUTFChars(jdb_path, 0);
- std::vector cfnames_to_free;
- std::vector jcfnames_for_free;
+ std::vector cfnames_to_free;
+ std::vector jcfnames_for_free;
std::vector column_families;
std::vector handles;
@@ -90,9 +90,10 @@ jobject
jobject jcf_descriptor = env->CallObjectMethod(iteratorObj,
rocksdb::ListJni::getNextMethod(env));
// get ColumnFamilyName
- jstring jstr = (jstring) env->CallObjectMethod(jcf_descriptor,
+ jbyteArray byteArray = static_cast(env->CallObjectMethod(
+ jcf_descriptor,
rocksdb::ColumnFamilyDescriptorJni::getColumnFamilyNameMethod(
- env));
+ env)));
// get CF Options
jobject jcf_opt_obj = env->CallObjectMethod(jcf_descriptor,
rocksdb::ColumnFamilyDescriptorJni::getColumnFamilyOptionsMethod(
@@ -100,12 +101,13 @@ jobject
rocksdb::ColumnFamilyOptions* cfOptions =
rocksdb::ColumnFamilyOptionsJni::getHandle(env, jcf_opt_obj);
- const char* cfname = env->GetStringUTFChars(jstr, 0);
+ jbyte* cfname = env->GetByteArrayElements(byteArray, 0);
// free allocated cfnames after call to open
cfnames_to_free.push_back(cfname);
- jcfnames_for_free.push_back(jstr);
- column_families.push_back(rocksdb::ColumnFamilyDescriptor(cfname,
+ jcfnames_for_free.push_back(byteArray);
+ column_families.push_back(rocksdb::ColumnFamilyDescriptor(
+ reinterpret_cast(cfname),
*cfOptions));
}
@@ -116,7 +118,7 @@ jobject
for (std::vector::size_type i = 0;
i != cfnames_to_free.size(); i++) {
// free cfnames
- env->ReleaseStringUTFChars(jcfnames_for_free[i], cfnames_to_free[i]);
+ env->ReleaseByteArrayElements(jcfnames_for_free[i], cfnames_to_free[i], 0);
}
// check if open operation was successful
@@ -157,8 +159,8 @@ jobject Java_org_rocksdb_RocksDB_open__JLjava_lang_String_2Ljava_util_List_2I(
rocksdb::DB* db = nullptr;
const char* db_path = env->GetStringUTFChars(jdb_path, 0);
- std::vector cfnames_to_free;
- std::vector jcfnames_for_free;
+ std::vector cfnames_to_free;
+ std::vector jcfnames_for_free;
std::vector column_families;
std::vector handles;
@@ -173,9 +175,10 @@ jobject Java_org_rocksdb_RocksDB_open__JLjava_lang_String_2Ljava_util_List_2I(
jobject jcf_descriptor = env->CallObjectMethod(iteratorObj,
rocksdb::ListJni::getNextMethod(env));
// get ColumnFamilyName
- jstring jstr = (jstring) env->CallObjectMethod(jcf_descriptor,
+ jbyteArray byteArray = static_cast(env->CallObjectMethod(
+ jcf_descriptor,
rocksdb::ColumnFamilyDescriptorJni::getColumnFamilyNameMethod(
- env));
+ env)));
// get CF Options
jobject jcf_opt_obj = env->CallObjectMethod(jcf_descriptor,
rocksdb::ColumnFamilyDescriptorJni::getColumnFamilyOptionsMethod(
@@ -183,12 +186,13 @@ jobject Java_org_rocksdb_RocksDB_open__JLjava_lang_String_2Ljava_util_List_2I(
rocksdb::ColumnFamilyOptions* cfOptions =
rocksdb::ColumnFamilyOptionsJni::getHandle(env, jcf_opt_obj);
- const char* cfname = env->GetStringUTFChars(jstr, 0);
+ jbyte* cfname = env->GetByteArrayElements(byteArray, 0);
// free allocated cfnames after call to open
cfnames_to_free.push_back(cfname);
- jcfnames_for_free.push_back(jstr);
- column_families.push_back(rocksdb::ColumnFamilyDescriptor(cfname,
+ jcfnames_for_free.push_back(byteArray);
+ column_families.push_back(rocksdb::ColumnFamilyDescriptor(
+ reinterpret_cast(cfname),
*cfOptions));
}
@@ -199,7 +203,7 @@ jobject Java_org_rocksdb_RocksDB_open__JLjava_lang_String_2Ljava_util_List_2I(
for (std::vector::size_type i = 0;
i != cfnames_to_free.size(); i++) {
// free cfnames
- env->ReleaseStringUTFChars(jcfnames_for_free[i], cfnames_to_free[i]);
+ env->ReleaseByteArrayElements(jcfnames_for_free[i], cfnames_to_free[i], 0);
}
// check if open operation was successful
@@ -1181,9 +1185,11 @@ jlong Java_org_rocksdb_RocksDB_createColumnFamily(
rocksdb::ColumnFamilyHandle* handle;
auto db_handle = reinterpret_cast(jdb_handle);
- jstring jstr = (jstring) env->CallObjectMethod(jcf_descriptor,
+ // get ColumnFamilyName
+ jbyteArray byteArray = static_cast(env->CallObjectMethod(
+ jcf_descriptor,
rocksdb::ColumnFamilyDescriptorJni::getColumnFamilyNameMethod(
- env));
+ env)));
// get CF Options
jobject jcf_opt_obj = env->CallObjectMethod(jcf_descriptor,
rocksdb::ColumnFamilyDescriptorJni::getColumnFamilyOptionsMethod(
@@ -1191,10 +1197,10 @@ jlong Java_org_rocksdb_RocksDB_createColumnFamily(
rocksdb::ColumnFamilyOptions* cfOptions =
rocksdb::ColumnFamilyOptionsJni::getHandle(env, jcf_opt_obj);
- const char* cfname = env->GetStringUTFChars(jstr, 0);
+ jbyte* cfname = env->GetByteArrayElements(byteArray, 0);
rocksdb::Status s = db_handle->CreateColumnFamily(
- *cfOptions, cfname, &handle);
- env->ReleaseStringUTFChars(jstr, cfname);
+ *cfOptions, reinterpret_cast(cfname), &handle);
+ env->ReleaseByteArrayElements(byteArray, cfname, 0);
if (s.ok()) {
return reinterpret_cast(handle);