Skip to content

Commit 3413362

Browse files
committed
fix(java): avoid double JNI env borrow for metadata
1 parent cb7b97b commit 3413362

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

java/lance-jni/src/blocking_dataset.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2387,6 +2387,8 @@ fn inner_list_tags<'local>(
23872387
} else {
23882388
JObject::null()
23892389
};
2390+
let java_metadata =
2391+
crate::traits::JLance(tag_contents.metadata.as_deref()).into_java(env)?;
23902392
let java_tag = env.new_object(
23912393
"org/lance/Tag",
23922394
"(Ljava/lang/String;Ljava/lang/String;JILjava/lang/String;)V",
@@ -2395,9 +2397,7 @@ fn inner_list_tags<'local>(
23952397
JValue::Object(&branch_name),
23962398
JValue::Long(tag_contents.version as i64),
23972399
JValue::Int(tag_contents.manifest_size as i32),
2398-
JValue::Object(
2399-
&crate::traits::JLance(tag_contents.metadata.as_deref()).into_java(env)?,
2400-
),
2400+
JValue::Object(&java_metadata),
24012401
],
24022402
)?;
24032403
env.call_method(
@@ -2558,6 +2558,7 @@ fn inner_list_branches<'local>(
25582558
} else {
25592559
JObject::null()
25602560
};
2561+
let java_metadata = crate::traits::JLance(contents.metadata.as_deref()).into_java(env)?;
25612562
let jbranch = env.new_object(
25622563
"org/lance/Branch",
25632564
"(Ljava/lang/String;Ljava/lang/String;JJILjava/lang/String;)V",
@@ -2567,9 +2568,7 @@ fn inner_list_branches<'local>(
25672568
JValue::Long(contents.parent_version as i64),
25682569
JValue::Long(contents.create_at as i64),
25692570
JValue::Int(contents.manifest_size as i32),
2570-
JValue::Object(
2571-
&crate::traits::JLance(contents.metadata.as_deref()).into_java(env)?,
2572-
),
2571+
JValue::Object(&java_metadata),
25732572
],
25742573
)?;
25752574
env.call_method(

0 commit comments

Comments
 (0)