Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Traced request results in NumberFormatException #53

Closed
ph0bos opened this issue Dec 20, 2014 · 2 comments · Fixed by #54
Closed

Traced request results in NumberFormatException #53

ph0bos opened this issue Dec 20, 2014 · 2 comments · Fixed by #54

Comments

@ph0bos
Copy link

ph0bos commented Dec 20, 2014

I am running 2.4 and have noticed when making a request from an Apache HTTP Client to a Spring MVC server a NumberFormatException occurs.It appears as though the TraceId is being passed from client as hex whilst the server expects a long.

Request Header Debug Log

2014-12-20 16:48:26,509 DEBUG | org.apache.http.headers                                          | http-outgoing-0 >> X-B3-Sampled: true 
2014-12-20 16:48:26,509 DEBUG | org.apache.http.headers                                          | http-outgoing-0 >> X-B3-TraceId: 9d3ce26024765927 
2014-12-20 16:48:26,509 DEBUG | org.apache.http.headers                                          | http-outgoing-0 >> X-B3-SpanId: 9d3ce26024765927 
2014-12-20 16:48:26,509 DEBUG | org.apache.http.headers                                          | http-outgoing-0 >> X-B3-SpanName: <NAME REMOVED> 

Traced Apache HTTP Client to Spring MVC results

2014-12-20 16:33:20,345 ERROR | o.a.c.c.C.[.[.[<PATH REMOVED>].[dispatcherServlet]    | Servlet.service() for servlet dispatcherServlet threw exception 
java.lang.NumberFormatException: For input string: "c50c96694912f142"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_25]
    at java.lang.Long.parseLong(Long.java:592) ~[na:1.8.0_25]
    at java.lang.Long.valueOf(Long.java:776) ~[na:1.8.0_25]
    at com.github.kristofa.brave.ServletHandlerInterceptor$1.apply(ServletHandlerInterceptor.java:20) ~[brave-impl-spring-2.4.jar:na]
    at com.github.kristofa.brave.ServletHandlerInterceptor$1.apply(ServletHandlerInterceptor.java:17) ~[brave-impl-spring-2.4.jar:na]
    at com.google.common.base.Present.transform(Present.java:71) ~[guava-17.0.jar:na]
    at com.github.kristofa.brave.ServletHandlerInterceptor.updateServerState(ServletHandlerInterceptor.java:84) ~[brave-impl-spring-2.4.jar:na]
    at com.github.kristofa.brave.ServletHandlerInterceptor.beginTrace(ServletHandlerInterceptor.java:78) ~[brave-impl-spring-2.4.jar:na]
    at com.github.kristofa.brave.ServletHandlerInterceptor.preHandle(ServletHandlerInterceptor.java:36) ~[brave-impl-spring-2.4.jar:na]
    at org.springframework.web.servlet.HandlerExecutionChain.applyPreHandle(HandlerExecutionChain.java:130) ~[spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938) ~[spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) ~[spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) ~[spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) ~[spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) ~[tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) ~[spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) ~[tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) ~[tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) ~[tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:488) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:467) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:338) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:428) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:201) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1695) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-7.0.55.jar:7.0.55]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25]
@kristofa
Copy link
Member

I'll try to make a patch release still this year.

@kristofa
Copy link
Member

This bug fix is part of the 2.4.1 release which should be available in Maven Central soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants