Avoid defensive checks against java.time API

Issue: SPR-13188
This commit is contained in:
Juergen Hoeller
2016-11-22 14:55:03 +01:00
parent a0fee4657d
commit 85b0ce1ef7
5 changed files with 22 additions and 72 deletions

View File

@@ -70,7 +70,7 @@ public class ServletRequestMethodArgumentResolver implements HandlerMethodArgume
Principal.class.isAssignableFrom(paramType) ||
Locale.class == paramType ||
TimeZone.class == paramType ||
"java.time.ZoneId".equals(paramType.getName()) ||
ZoneId.class == paramType ||
InputStream.class.isAssignableFrom(paramType) ||
Reader.class.isAssignableFrom(paramType) ||
HttpMethod.class == paramType);
@@ -110,8 +110,9 @@ public class ServletRequestMethodArgumentResolver implements HandlerMethodArgume
TimeZone timeZone = RequestContextUtils.getTimeZone(request);
return (timeZone != null ? timeZone : TimeZone.getDefault());
}
else if ("java.time.ZoneId".equals(paramType.getName())) {
return ZoneIdResolver.resolveZoneId(request);
else if (ZoneId.class == paramType) {
TimeZone timeZone = RequestContextUtils.getTimeZone(request);
return (timeZone != null ? timeZone.toZoneId() : ZoneId.systemDefault());
}
else if (InputStream.class.isAssignableFrom(paramType)) {
return request.getInputStream();
@@ -126,16 +127,4 @@ public class ServletRequestMethodArgumentResolver implements HandlerMethodArgume
}
}
/**
* Inner class to avoid a hard-coded dependency on Java 8's {@link java.time.ZoneId}.
*/
private static class ZoneIdResolver {
public static Object resolveZoneId(HttpServletRequest request) {
TimeZone timeZone = RequestContextUtils.getTimeZone(request);
return (timeZone != null ? timeZone.toZoneId() : ZoneId.systemDefault());
}
}
}