11use arrow:: ipc:: writer:: FileWriter ;
22use datafusion:: dataframe:: DataFrame ;
33use datafusion:: prelude:: SessionContext ;
4- use jni:: objects:: { JClass , JObject , JString , JValue } ;
4+ use jni:: objects:: { JClass , JObject , JString } ;
55use jni:: sys:: jlong;
66use jni:: JNIEnv ;
77use std:: convert:: Into ;
@@ -12,7 +12,7 @@ use tokio::runtime::Runtime;
1212
1313#[ no_mangle]
1414pub extern "system" fn Java_org_apache_arrow_datafusion_DataFrames_collectDataframe (
15- env : JNIEnv ,
15+ mut env : JNIEnv ,
1616 _class : JClass ,
1717 runtime : jlong ,
1818 dataframe : jlong ,
@@ -39,21 +39,21 @@ pub extern "system" fn Java_org_apache_arrow_datafusion_DataFrames_collectDatafr
3939 . new_string ( "" . to_string ( ) )
4040 . expect ( "Couldn't create java string!" ) ;
4141 let ba = env
42- . byte_array_from_slice ( & buff. get_ref ( ) )
42+ . byte_array_from_slice ( buff. get_ref ( ) )
4343 . expect ( "cannot create empty byte array" ) ;
4444 env. call_method (
4545 callback,
4646 "accept" ,
4747 "(Ljava/lang/Object;Ljava/lang/Object;)V" ,
48- & [ err_message. into ( ) , ba . into ( ) ] ,
48+ & [ ( & err_message) . into ( ) , ( & ba ) . into ( ) ] ,
4949 )
5050 . expect ( "failed to call method" ) ;
5151 } ) ;
5252}
5353
5454#[ no_mangle]
5555pub extern "system" fn Java_org_apache_arrow_datafusion_DataFrames_showDataframe (
56- env : JNIEnv ,
56+ mut env : JNIEnv ,
5757 _class : JClass ,
5858 runtime : jlong ,
5959 dataframe : jlong ,
@@ -63,28 +63,26 @@ pub extern "system" fn Java_org_apache_arrow_datafusion_DataFrames_showDataframe
6363 let dataframe = unsafe { & mut * ( dataframe as * mut Arc < DataFrame > ) } ;
6464 runtime. block_on ( async {
6565 let r = dataframe. show ( ) . await ;
66- let err_message: JValue = match r {
67- Ok ( _) => JValue :: Void ,
68- Err ( err) => {
69- let err_message = env
70- . new_string ( err. to_string ( ) )
71- . expect ( "Couldn't create java string!" ) ;
72- err_message. into ( )
73- }
66+ let err_message = match r {
67+ Ok ( _) => "" . to_string ( ) ,
68+ Err ( err) => err. to_string ( ) ,
7469 } ;
70+ let err_message = env
71+ . new_string ( err_message)
72+ . expect ( "Couldn't create java string!" ) ;
7573 env. call_method (
7674 callback,
7775 "accept" ,
7876 "(Ljava/lang/Object;)V" ,
79- & [ err_message. into ( ) ] ,
77+ & [ ( & err_message) . into ( ) ] ,
8078 )
8179 . expect ( "failed to call method" ) ;
8280 } ) ;
8381}
8482
8583#[ no_mangle]
8684pub extern "system" fn Java_org_apache_arrow_datafusion_DataFrames_writeParquet (
87- env : JNIEnv ,
85+ mut env : JNIEnv ,
8886 _class : JClass ,
8987 runtime : jlong ,
9088 dataframe : jlong ,
@@ -94,33 +92,31 @@ pub extern "system" fn Java_org_apache_arrow_datafusion_DataFrames_writeParquet(
9492 let runtime = unsafe { & mut * ( runtime as * mut Runtime ) } ;
9593 let dataframe = unsafe { & mut * ( dataframe as * mut Arc < DataFrame > ) } ;
9694 let path: String = env
97- . get_string ( path)
95+ . get_string ( & path)
9896 . expect ( "Couldn't get path as string!" )
9997 . into ( ) ;
10098 runtime. block_on ( async {
10199 let r = dataframe. write_parquet ( & path, None ) . await ;
102- let err_message: JValue = match r {
103- Ok ( _) => JValue :: Void ,
104- Err ( err) => {
105- let err_message = env
106- . new_string ( err. to_string ( ) )
107- . expect ( "Couldn't create java string!" ) ;
108- err_message. into ( )
109- }
100+ let err_message = match r {
101+ Ok ( _) => "" . to_string ( ) ,
102+ Err ( err) => err. to_string ( ) ,
110103 } ;
104+ let err_message = env
105+ . new_string ( err_message)
106+ . expect ( "Couldn't create java string!" ) ;
111107 env. call_method (
112108 callback,
113109 "accept" ,
114110 "(Ljava/lang/Object;)V" ,
115- & [ err_message. into ( ) ] ,
111+ & [ ( & err_message) . into ( ) ] ,
116112 )
117113 . expect ( "failed to call method" ) ;
118114 } ) ;
119115}
120116
121117#[ no_mangle]
122118pub extern "system" fn Java_org_apache_arrow_datafusion_DataFrames_writeCsv (
123- env : JNIEnv ,
119+ mut env : JNIEnv ,
124120 _class : JClass ,
125121 runtime : jlong ,
126122 dataframe : jlong ,
@@ -130,33 +126,31 @@ pub extern "system" fn Java_org_apache_arrow_datafusion_DataFrames_writeCsv(
130126 let runtime = unsafe { & mut * ( runtime as * mut Runtime ) } ;
131127 let dataframe = unsafe { & mut * ( dataframe as * mut Arc < DataFrame > ) } ;
132128 let path: String = env
133- . get_string ( path)
129+ . get_string ( & path)
134130 . expect ( "Couldn't get path as string!" )
135131 . into ( ) ;
136132 runtime. block_on ( async {
137133 let r = dataframe. write_csv ( & path) . await ;
138- let err_message: JValue = match r {
139- Ok ( _) => JValue :: Void ,
140- Err ( err) => {
141- let err_message = env
142- . new_string ( err. to_string ( ) )
143- . expect ( "Couldn't create java string!" ) ;
144- err_message. into ( )
145- }
134+ let err_message = match r {
135+ Ok ( _) => "" . to_string ( ) ,
136+ Err ( err) => err. to_string ( ) ,
146137 } ;
138+ let err_message = env
139+ . new_string ( err_message)
140+ . expect ( "Couldn't create java string!" ) ;
147141 env. call_method (
148142 callback,
149143 "accept" ,
150144 "(Ljava/lang/Object;)V" ,
151- & [ err_message. into ( ) ] ,
145+ & [ ( & err_message) . into ( ) ] ,
152146 )
153147 . expect ( "failed to call method" ) ;
154148 } ) ;
155149}
156150
157151#[ no_mangle]
158152pub extern "system" fn Java_org_apache_arrow_datafusion_DataFrames_registerTable (
159- env : JNIEnv ,
153+ mut env : JNIEnv ,
160154 _class : JClass ,
161155 runtime : jlong ,
162156 dataframe : jlong ,
@@ -168,25 +162,23 @@ pub extern "system" fn Java_org_apache_arrow_datafusion_DataFrames_registerTable
168162 let dataframe = unsafe { & mut * ( dataframe as * mut Arc < DataFrame > ) } ;
169163 let context = unsafe { & mut * ( session as * mut SessionContext ) } ;
170164 let name: String = env
171- . get_string ( name)
165+ . get_string ( & name)
172166 . expect ( "Couldn't get name as string!" )
173167 . into ( ) ;
174168 runtime. block_on ( async {
175169 let r = context. register_table ( name. as_str ( ) , dataframe. clone ( ) ) ;
176- let err_message: JValue = match r {
177- Ok ( _) => JValue :: Void ,
178- Err ( err) => {
179- let err_message = env
180- . new_string ( err. to_string ( ) )
181- . expect ( "Couldn't create java string!" ) ;
182- err_message. into ( )
183- }
170+ let err_message = match r {
171+ Ok ( _) => "" . to_string ( ) ,
172+ Err ( err) => err. to_string ( ) ,
184173 } ;
174+ let err_message = env
175+ . new_string ( err_message)
176+ . expect ( "Couldn't create java string!" ) ;
185177 env. call_method (
186178 callback,
187179 "accept" ,
188180 "(Ljava/lang/Object;)V" ,
189- & [ err_message. into ( ) ] ,
181+ & [ ( & err_message) . into ( ) ] ,
190182 )
191183 . expect ( "failed to call method" ) ;
192184 } ) ;
0 commit comments