개발/JAVA

NullPointerException

쵸코푸들이장군 2018. 12. 24. 18:16

[env] spring-boot

잘 되다가 갑자기 NullPointerException에 시달렸다.


[ip-172-31-58-193] 2018:12:24 01:01:09.933 ERROR --- [http-nio-8080-exec-1] o.s.b.web.support.ErrorPageFilter : Forwarding to error page from request [/api/aaaaa/bbbbb/ccccc/ddddd/eeeeee/fff] due to exception [null]

[ip-172-31-58-193] java.lang.NullPointerException: null

[ip-172-31-58-193]      at org.springframework.validation.beanvalidation.SpringValidatorAdapter.processConstraintViolations(SpringValidatorAdapter.java:123)

[ip-172-31-58-193]      at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:94)

[ip-172-31-58-193]      at com.test.common.engine.validator.CollectionValidator.validate(CollectionValidator.java:35)

[ip-172-31-58-193]      at com.test.common.engine.aop.ValidHandler.valid(ValidHandler.java:72)

[ip-172-31-58-193]      at sun.reflect.GeneratedMethodAccessor258.invoke(Unknown Source)

[ip-172-31-58-193]      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

[ip-172-31-58-193]      at java.lang.reflect.Method.invoke(Method.java:498)

[ip-172-31-58-193]      at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)

[ip-172-31-58-193]      at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)

[ip-172-31-58-193]      at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)

[ip-172-31-58-193]      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

[ip-172-31-58-193]      at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)

[ip-172-31-58-193]      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

[ip-172-31-58-193]      at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:656)

[ip-172-31-58-193]      at com.test.my.promotion.controller.PromotionRakebackAchievementController$$EnhancerBySpringCGLIB$$4ccc77c2.setPromotionRakebackAchievementOptedIn(<generated>)

[ip-172-31-58-193]      at sun.reflect.GeneratedMethodAccessor516.invoke(Unknown Source)

[ip-172-31-58-193]      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

[ip-172-31-58-193]      at java.lang.reflect.Method.invoke(Method.java:498)

[ip-172-31-58-193]      at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:220)

[ip-172-31-58-193]      at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)

[ip-172-31-58-193]      at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)

[ip-172-31-58-193]      at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)

[ip-172-31-58-193]      at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)

[ip-172-31-58-193]      at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)

[ip-172-31-58-193]      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)

[ip-172-31-58-193]      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)

[ip-172-31-58-193]      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)

[ip-172-31-58-193]      at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:883)

[ip-172-31-58-193]      at javax.servlet.http.HttpServlet.service(HttpServlet.java:664)

[ip-172-31-58-193]      at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)

[ip-172-31-58-193]      at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)

[ip-172-31-58-193]      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)

[ip-172-31-58-193]      at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)

[ip-172-31-58-193]      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)

[ip-172-31-58-193]      at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:89)

[ip-172-31-58-193]      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)

[ip-172-31-58-193]      at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)

[ip-172-31-58-193]      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)

[ip-172-31-58-193]      at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)

[ip-172-31-58-193]      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)

[ip-172-31-58-193]      at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:117)

[ip-172-31-58-193]      at org.springframework.boot.web.support.ErrorPageFilter.access$000(ErrorPageFilter.java:61)

[ip-172-31-58-193]      at org.springframework.boot.web.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:92)

[ip-172-31-58-193]      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

[ip-172-31-58-193]      at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:110)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)

[ip-172-31-58-193]      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)

[ip-172-31-58-193]      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)

[ip-172-31-58-193]      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

[ip-172-31-58-193]      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)

[ip-172-31-58-193]      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

[ip-172-31-58-193]      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)

[ip-172-31-58-193]      at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)

[ip-172-31-58-193]      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

[ip-172-31-58-193]      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)

[ip-172-31-58-193]      at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)

[ip-172-31-58-193]      at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

[ip-172-31-58-193]      at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)

[ip-172-31-58-193]      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)

[ip-172-31-58-193]      at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

[ip-172-31-58-193]      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

[ip-172-31-58-193]      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

[ip-172-31-58-193]      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

[ip-172-31-58-193]      at java.lang.Thread.run(Thread.java:745) 


아무런 정보 없이 계속 생겼고 소스를 확인해 보았다.

Request Body Parameters

 @Data

@ApiModel(value = "TestRakebackAchievementForm.OptedIn")

public static class OptedIn {
private String playerId;

@NotNull
private BigDecimal completeAmount;

private BigDecimal stepAmount;

@Digits(integer = 10, fraction = 2)
private BigDecimal bonusAmount;

private Integer expiryDays;

}


원인 @Digits(integer = 10, fraction = 2)

해당 설정보다 큰 숫자가 들어와서 생긴 오류였다.

저걸 지워주니 잘 됐음..왜지...

http://napsis.blog.me/221426306023