@@ -278,6 +278,9 @@ private static List<Binding> getFields(Map<String, Type> lookup, Class clazz, bo
278
278
if (Modifier .isStatic (field .getModifiers ())) {
279
279
continue ;
280
280
}
281
+ if (Modifier .isTransient (field .getModifiers ())) {
282
+ continue ;
283
+ }
281
284
if (includingPrivate ) {
282
285
field .setAccessible (true );
283
286
}
@@ -288,12 +291,16 @@ private static List<Binding> getFields(Map<String, Type> lookup, Class clazz, bo
288
291
}
289
292
290
293
private static Binding createBindingFromField (Map <String , Type > lookup , Class clazz , Field field ) {
291
- Binding binding = new Binding (clazz , lookup , field .getGenericType ());
292
- binding .fromNames = new String []{field .getName ()};
293
- binding .name = field .getName ();
294
- binding .annotations = field .getAnnotations ();
295
- binding .field = field ;
296
- return binding ;
294
+ try {
295
+ Binding binding = new Binding (clazz , lookup , field .getGenericType ());
296
+ binding .fromNames = new String []{field .getName ()};
297
+ binding .name = field .getName ();
298
+ binding .annotations = field .getAnnotations ();
299
+ binding .field = field ;
300
+ return binding ;
301
+ } catch (Exception e ) {
302
+ throw new JsonException ("failed to create binding for field: " + field , e );
303
+ }
297
304
}
298
305
299
306
private static List <Field > getAllFields (Class clazz , boolean includingPrivate ) {
@@ -338,13 +345,17 @@ private static List<Binding> getSetters(Map<String, Type> lookup, Class clazz, b
338
345
if (includingPrivate ) {
339
346
method .setAccessible (true );
340
347
}
341
- String fromName = translateSetterName (methodName );
342
- Binding binding = new Binding (clazz , lookup , paramTypes [0 ]);
343
- binding .fromNames = new String []{fromName };
344
- binding .name = fromName ;
345
- binding .method = method ;
346
- binding .annotations = method .getAnnotations ();
347
- setters .add (binding );
348
+ try {
349
+ String fromName = translateSetterName (methodName );
350
+ Binding binding = new Binding (clazz , lookup , paramTypes [0 ]);
351
+ binding .fromNames = new String []{fromName };
352
+ binding .name = fromName ;
353
+ binding .method = method ;
354
+ binding .annotations = method .getAnnotations ();
355
+ setters .add (binding );
356
+ } catch (Exception e ) {
357
+ throw new JsonException ("failed to create binding from setter: " + method , e );
358
+ }
348
359
}
349
360
return setters ;
350
361
}
0 commit comments