Compatibility with JDK 9 release candidate build (175)

Includes upgrade to Objenesis 2.6, Gradle 3.5.1, RxJava 2.1.1, JSON Binding API 1.0 final.

Issue: SPR-15686
Issue: SPR-15600
This commit is contained in:
Juergen Hoeller
2017-06-26 18:58:59 +02:00
parent 155a1c6c71
commit 098ff6f0f8
8 changed files with 104 additions and 96 deletions

View File

@@ -581,13 +581,9 @@ public class ReflectivePropertyAccessor implements PropertyAccessor {
private final TypeDescriptor typeDescriptor;
private final boolean needsToBeMadeAccessible;
OptimalPropertyAccessor(InvokerPair target) {
this.member = target.member;
this.typeDescriptor = target.typeDescriptor;
this.needsToBeMadeAccessible = (!Modifier.isPublic(this.member.getModifiers()) ||
!Modifier.isPublic(this.member.getDeclaringClass().getModifiers()));
}
@Override
@@ -625,9 +621,7 @@ public class ReflectivePropertyAccessor implements PropertyAccessor {
if (this.member instanceof Method) {
Method method = (Method) this.member;
try {
if (this.needsToBeMadeAccessible && !method.isAccessible()) {
method.setAccessible(true);
}
ReflectionUtils.makeAccessible(method);
Object value = method.invoke(target);
return new TypedValue(value, this.typeDescriptor.narrow(value));
}
@@ -638,9 +632,7 @@ public class ReflectivePropertyAccessor implements PropertyAccessor {
else {
Field field = (Field) this.member;
try {
if (this.needsToBeMadeAccessible && !field.isAccessible()) {
field.setAccessible(true);
}
ReflectionUtils.makeAccessible(field);
Object value = field.get(target);
return new TypedValue(value, this.typeDescriptor.narrow(value));
}