@@ -171,10 +171,10 @@ void generateCode(SwiftWriter swiftWriter, String javaFullName, String swiftType
171171 String jniMethodTemplate ;
172172 if (returnSwiftType != null ) {
173173 if (!isStatic ) {
174- jniMethodTemplate = "guard let result = JNI.CallObjectMethod(jniObject, %s.javaMethod%s" ;
174+ jniMethodTemplate = "let optionalResult = JNI.CallObjectMethod(jniObject, %s.javaMethod%s" ;
175175 }
176176 else {
177- jniMethodTemplate = "guard let result = JNI.CallStaticObjectMethod(javaClass, %s.javaMethod%s" ;
177+ jniMethodTemplate = "let optionalResult = JNI.CallStaticObjectMethod(javaClass, %s.javaMethod%s" ;
178178 }
179179 }
180180 else {
@@ -185,67 +185,38 @@ void generateCode(SwiftWriter swiftWriter, String javaFullName, String swiftType
185185 jniMethodTemplate = "JNI.CallStaticVoidMethod(javaClass, %s.javaMethod%s" ;
186186 }
187187 }
188-
189188 swiftWriter .emit (String .format (jniMethodTemplate , swiftType , javaMethodName ));
190-
191189 for (SwiftParamDescriptor param : params ) {
192190 swiftWriter .emit (String .format (", java%s" , param .name ));
193191 }
192+ swiftWriter .emitStatement (")" );
194193
195- if (returnSwiftType != null ) {
196- swiftWriter .emit (") else {" );
197- swiftWriter .emitStatement ("if let throwable = JNI.ExceptionCheck() {" );
198- if (isThrown ) {
199- swiftWriter .emitStatement ("if let error = try? NSError.from(javaObject: throwable) {" );
200- swiftWriter .emitStatement ("throw error" );
201- swiftWriter .emitStatement ("}" );
202- swiftWriter .emitStatement ("else {" );
203- swiftWriter .emitStatement ("fatalError(\" JavaException\" )" );
204- swiftWriter .emitStatement ("}" );
205- }
206- else {
207- swiftWriter .emitStatement ("if let error = try? NSError.from(javaObject: throwable) {" );
208- swiftWriter .emitStatement ("fatalError(\" JavaException: \\ (error) \" )" );
209- swiftWriter .emitStatement ("}" );
210- swiftWriter .emitStatement ("else {" );
211- swiftWriter .emitStatement ("fatalError(\" JavaException\" )" );
212- swiftWriter .emitStatement ("}" );
213- }
194+ swiftWriter .emitStatement ("if let throwable = JNI.ExceptionCheck() {" );
195+ swiftWriter .emitStatement ("let javaThrowable = Throwable(javaObject: throwable)" );
196+ swiftWriter .emitStatement ("javaThrowable.printStackTrace()" );
197+ if (isThrown ) {
198+ swiftWriter .emitStatement ("if let error = try? NSError.from(javaObject: throwable) {" );
199+ swiftWriter .emitStatement ("throw error" );
214200 swiftWriter .emitStatement ("}" );
215201 swiftWriter .emitStatement ("else {" );
216- if (isReturnTypeOptional ) {
217- swiftWriter .emitStatement ("return nil" );
218- }
219- else {
220- swiftWriter .emitStatement ("fatalError(\" Don't support nil here!\" )" );
221- }
222- swiftWriter .emitStatement ("}" );
202+ swiftWriter .emitStatement ("fatalError(\" UnknownJavaException\" )" );
223203 swiftWriter .emitStatement ("}" );
224204 }
225205 else {
226- swiftWriter .emit (")\n " );
227-
228- swiftWriter .emitStatement ("if let throwable = JNI.ExceptionCheck() {" );
229- if (isThrown ) {
230- swiftWriter .emitStatement ("if let error = try? NSError.from(javaObject: throwable) {" );
231- swiftWriter .emitStatement ("throw error" );
232- swiftWriter .emitStatement ("}" );
233- swiftWriter .emitStatement ("else {" );
234- swiftWriter .emitStatement ("fatalError(\" JavaException\" )" );
235- swiftWriter .emitStatement ("}" );
206+ swiftWriter .emitStatement ("fatalError(\" \\ (javaThrowable.className()): \\ (javaThrowable.getMessage())\\ (javaThrowable.stackTraceString())\" )" );
207+ }
208+ swiftWriter .emitStatement ("}" );
209+
210+ if (returnSwiftType != null ) {
211+ swiftWriter .emitStatement ("guard let result = optionalResult else {" );
212+ if (isReturnTypeOptional ) {
213+ swiftWriter .emitStatement ("return nil" );
236214 }
237215 else {
238- swiftWriter .emitStatement ("if let error = try? NSError.from(javaObject: throwable) {" );
239- swiftWriter .emitStatement ("fatalError(\" JavaException: \\ (error) \" )" );
240- swiftWriter .emitStatement ("}" );
241- swiftWriter .emitStatement ("else {" );
242- swiftWriter .emitStatement ("fatalError(\" JavaException\" )" );
243- swiftWriter .emitStatement ("}" );
216+ swiftWriter .emitStatement ("fatalError(\" Don't support nil here!\" )" );
244217 }
245218 swiftWriter .emitStatement ("}" );
246- }
247219
248- if (returnSwiftType != null ) {
249220 swiftWriter .emitStatement ("defer {" );
250221 swiftWriter .emitStatement ("JNI.DeleteLocalRef(result)" );
251222 swiftWriter .emitStatement ("}" );
@@ -254,13 +225,7 @@ void generateCode(SwiftWriter swiftWriter, String javaFullName, String swiftType
254225 swiftWriter .emitStatement ("}" );
255226 swiftWriter .emitStatement ("catch {" );
256227 swiftWriter .emitStatement ("let errorString = String(reflecting: type(of: error)) + String(describing: error)" );
257- if (returnSwiftType == null ) {
258- swiftWriter .emitStatement ("assert(false, errorString)" );
259- swiftWriter .emitStatement ("return" );
260- }
261- else {
262- swiftWriter .emitStatement ("fatalError(errorString)" );
263- }
228+ swiftWriter .emitStatement ("fatalError(errorString)" );
264229 swiftWriter .emitStatement ("}" );
265230 }
266231
0 commit comments