@@ -171,10 +171,10 @@ void generateCode(SwiftWriter swiftWriter, String javaFullName, String swiftType
171
171
String jniMethodTemplate ;
172
172
if (returnSwiftType != null ) {
173
173
if (!isStatic ) {
174
- jniMethodTemplate = "guard let result = JNI.CallObjectMethod(jniObject, %s.javaMethod%s" ;
174
+ jniMethodTemplate = "let optionalResult = JNI.CallObjectMethod(jniObject, %s.javaMethod%s" ;
175
175
}
176
176
else {
177
- jniMethodTemplate = "guard let result = JNI.CallStaticObjectMethod(javaClass, %s.javaMethod%s" ;
177
+ jniMethodTemplate = "let optionalResult = JNI.CallStaticObjectMethod(javaClass, %s.javaMethod%s" ;
178
178
}
179
179
}
180
180
else {
@@ -185,67 +185,38 @@ void generateCode(SwiftWriter swiftWriter, String javaFullName, String swiftType
185
185
jniMethodTemplate = "JNI.CallStaticVoidMethod(javaClass, %s.javaMethod%s" ;
186
186
}
187
187
}
188
-
189
188
swiftWriter .emit (String .format (jniMethodTemplate , swiftType , javaMethodName ));
190
-
191
189
for (SwiftParamDescriptor param : params ) {
192
190
swiftWriter .emit (String .format (", java%s" , param .name ));
193
191
}
192
+ swiftWriter .emitStatement (")" );
194
193
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" );
214
200
swiftWriter .emitStatement ("}" );
215
201
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\" )" );
223
203
swiftWriter .emitStatement ("}" );
224
204
}
225
205
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" );
236
214
}
237
215
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!\" )" );
244
217
}
245
218
swiftWriter .emitStatement ("}" );
246
- }
247
219
248
- if (returnSwiftType != null ) {
249
220
swiftWriter .emitStatement ("defer {" );
250
221
swiftWriter .emitStatement ("JNI.DeleteLocalRef(result)" );
251
222
swiftWriter .emitStatement ("}" );
@@ -254,13 +225,7 @@ void generateCode(SwiftWriter swiftWriter, String javaFullName, String swiftType
254
225
swiftWriter .emitStatement ("}" );
255
226
swiftWriter .emitStatement ("catch {" );
256
227
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)" );
264
229
swiftWriter .emitStatement ("}" );
265
230
}
266
231
0 commit comments