Skip to content

Commit 8f08835

Browse files
committed
improved makeAccessible usage in framework
1 parent d68be99 commit 8f08835

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

src/main/java/com/igormaznitsa/jbbp/io/AbstractMappedClassFieldObserver.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,9 @@ protected void processObject(final Object obj, final Field field, final Object c
109109
final Class<?> clazzToProcess = listOfClassHierarchy.get(i);
110110
final Bin clazzAnno = clazzToProcess.getAnnotation(Bin.class);
111111
for (final Field f : clazzToProcess.getDeclaredFields()) {
112-
JBBPUtils.makeAccessible(f);
112+
if (!f.isAccessible()){
113+
JBBPUtils.makeAccessible(f);
114+
}
113115
final int modifiers = f.getModifiers();
114116
if (Modifier.isTransient(modifiers) || Modifier.isStatic(modifiers) || f.getName().indexOf('$') >= 0) {
115117
continue;
@@ -136,8 +138,8 @@ protected void processObject(final Object obj, final Field field, final Object c
136138
}
137139
}
138140

139-
if (field!=null){
140-
field.setAccessible(true);
141+
if (field!=null && !field.isAccessible()){
142+
JBBPUtils.makeAccessible(field);
141143
}
142144

143145
final Bin clazzAnno = obj.getClass().getAnnotation(Bin.class);

src/main/java/com/igormaznitsa/jbbp/mapper/JBBPMapper.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,9 @@ public static Object map(final JBBPFieldStruct rootStructure, final Object mappi
269269
continue;
270270
}
271271

272-
JBBPUtils.makeAccessible(mappingField);
272+
if (!mappingField.isAccessible()){
273+
JBBPUtils.makeAccessible(mappingField);
274+
}
273275

274276
final Bin fieldAnno = mappingField.getAnnotation(Bin.class);
275277
final Bin mappedAnno;

src/main/java/com/igormaznitsa/jbbp/utils/JBBPTextWriterExtraAdapter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ public void onReachedMaxValueNumberForLine(final JBBPTextWriter context) throws
7474
public Object extractFieldValue(final Object instance, final Field field) {
7575
JBBPUtils.assertNotNull(field, "Field must not be null");
7676
try {
77-
JBBPUtils.makeAccessible(field);
77+
if (!field.isAccessible()){
78+
JBBPUtils.makeAccessible(field);
79+
}
7880
return field.get(instance);
7981
}
8082
catch (Exception ex) {

0 commit comments

Comments
 (0)