차근차근/Spring

java.lang.IllegalStateException: Can't stop StopWatch: it's not running

예쁜꽃이피었으면 2016. 10. 20. 10:52


단순히.. 데이터 몇개 insert하는 컨트롤러에서 ..


10월 20, 2016 9:59:55 오전 org.apache.catalina.core.StandardWrapperValve invoke

심각: Servlet.service() for servlet [appServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Can't stop StopWatch: it's not running] with root cause

java.lang.IllegalStateException: Can't stop StopWatch: it's not running

at org.springframework.util.StopWatch.stop(StopWatch.java:132)

at oudiga.common.aop.UgbossXMLAdvice.aroundExecuteMethod(UgbossXMLAdvice.java:92)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

at com.sun.proxy.$Proxy29.insertShopReview(Unknown Source)

at oudiga.module.mobile.shopReview.controller.oudigaShopReviewController.insertShopReview(oudigaShopReviewController.java:103)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)

at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)

at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)

at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)


이런 에러가 난다.


DB에 데이터는 들어가는데.. 이게 뭔지.. 찝찝한데 왜 이런지 모르겠다..ㅜ



java.lang.IllegalStateException 검색함

https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalStateException.html


Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java environment or Java application is not in an appropriate state for the requested operation. 라고 한다..


이 방법은 불법 또는 부적절한 때에 불려 것을 통지합니다. 즉, Java 환경 또는 Java 응용 프로그램은 요청 된 작업에 적합한 상태가 아닙니다. 음.. 뭔소리지..




at org.springframework.util.StopWatch.stop(StopWatch.java:132)

이 부분으로 가보니..


/**

* Stop the current task. The results are undefined if timing

* methods are called without invoking at least one pair

* {@link #start()} / {@link #stop()} methods.

* @see #start()

*/

public void stop() throws IllegalStateException {

if (!this.running) {

throw new IllegalStateException("Can't stop StopWatch: it's not running");

}

long lastTime = System.currentTimeMillis() - this.startTimeMillis;

this.totalTimeMillis += lastTime;

this.lastTaskInfo = new TaskInfo(this.currentTaskName, lastTime);

if (this.keepTaskList) {

this.taskList.add(lastTaskInfo);

}

++this.taskCount;

this.running = false;

this.currentTaskName = null;

}


음.. 적어도 한쌍을 시작하지 않고 부르고있다.. 무슨말이지..


아.. 일단 접어두자..







20161107 해결은 했다.


아마.. 나만의 문제일 것 같은데...


프로젝트에서 joinPoint를 체크해서 로그를 찍는 부분이 있는데


java파일명의 끝에 글자를 체크해서 Controller , ServiceImpl , Dao이렇게 구분을 해서 로그를 찍는다


로그를 찍을 때 컨트롤러가 실행되는 시간과 총 소요시간을 나타내 주는데


에러가 나는 부분은 실행은 잘 되지만 갑자기 에러가 났었다..


내가 *ServiceImpl 를 만들 때


S를 대문자로 썼어야 하는데 소문자로 적어둬서.. 문제가 났던 것 같다.


대문자로 수정 후에는 에러가 나지 않는다.


끝!

반응형

'차근차근 > Spring' 카테고리의 다른 글

Missing 'tools.jar'  (0) 2020.12.09
MySQL FULLTEXT 검색  (0) 2020.02.18
naver api 도로명 주소로 위도.경도 얻기  (0) 2016.09.30
sendmail test - htmlemail ( 1 )  (0) 2016.04.22
게시판  (0) 2015.06.15