erroropenjava-demojava

IllegalStateException: could not price the cart

dev.stacklight.examples.CheckoutController$CartService#total

Events1
First seen14d ago2026-08-09 15:31:34 UTC
Last seen14d ago2026-08-09 15:31:34 UTC
Releasesjava-demo-1.0.0
Events per hour, from the rollups0 in this window · peak 1
15:00
 
 
 
19:00
 
 
 
23:00
 
 
 
03:00
 
 
 
07:00
 
 
 
11:00
 
 
 
Table view
Bucket (UTC)Events
2026-08-22 15:00:000
2026-08-22 16:00:000
2026-08-22 17:00:000
2026-08-22 18:00:000
2026-08-22 19:00:000
2026-08-22 20:00:000
2026-08-22 21:00:000
2026-08-22 22:00:000
2026-08-22 23:00:000
2026-08-23 00:00:000
2026-08-23 01:00:000
2026-08-23 02:00:000
2026-08-23 03:00:000
2026-08-23 04:00:000
2026-08-23 05:00:000
2026-08-23 06:00:000
2026-08-23 07:00:000
2026-08-23 08:00:000
2026-08-23 09:00:000
2026-08-23 10:00:000
2026-08-23 11:00:000
2026-08-23 12:00:000
2026-08-23 13:00:000
2026-08-23 14:00:000

How this group was decided

Every step below is a pure function of the event. The same event always produces the same group.

  1. 1 · Parse the stack trace

    52 frames parsed, 4 belong to the application. Only those decide the group — the same bug reaches the runtime through different framework paths depending on the request.

    • in-appdev.stacklight.examples.CheckoutController$CartService.totalCheckoutController.java:53
    • in-appdev.stacklight.examples.CheckoutController.handledCheckoutController.java:34
    • vendorjdk.internal.reflect.DirectMethodHandleAccessor.invokeDirectMethodHandleAccessor.java:103
    • vendorjava.lang.reflect.Method.invokeMethod.java:580
    • vendororg.springframework.web.method.support.InvocableHandlerMethod.doInvokeInvocableHandlerMethod.java:257
    • vendororg.springframework.web.method.support.InvocableHandlerMethod.invokeForRequestInvocableHandlerMethod.java:190
    • vendororg.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandleServletInvocableHandlerMethod.java:118
    • vendororg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethodRequestMappingHandlerAdapter.java:986
    • vendororg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternalRequestMappingHandlerAdapter.java:891
    • vendororg.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handleAbstractHandlerMethodAdapter.java:87
    • vendororg.springframework.web.servlet.DispatcherServlet.doDispatchDispatcherServlet.java:1088
    • vendororg.springframework.web.servlet.DispatcherServlet.doServiceDispatcherServlet.java:978
    • vendororg.springframework.web.servlet.FrameworkServlet.processRequestFrameworkServlet.java:1014
    • vendororg.springframework.web.servlet.FrameworkServlet.doGetFrameworkServlet.java:903
    • vendorjakarta.servlet.http.HttpServlet.serviceHttpServlet.java:564
    • vendororg.springframework.web.servlet.FrameworkServlet.serviceFrameworkServlet.java:885
    • vendorjakarta.servlet.http.HttpServlet.serviceHttpServlet.java:658
    • vendororg.apache.catalina.core.ApplicationFilterChain.internalDoFilterApplicationFilterChain.java:195
    • vendororg.apache.catalina.core.ApplicationFilterChain.doFilterApplicationFilterChain.java:140
    • vendororg.apache.tomcat.websocket.server.WsFilter.doFilterWsFilter.java:51
    • vendororg.apache.catalina.core.ApplicationFilterChain.internalDoFilterApplicationFilterChain.java:164
    • vendororg.apache.catalina.core.ApplicationFilterChain.doFilterApplicationFilterChain.java:140
    • vendororg.springframework.web.filter.RequestContextFilter.doFilterInternalRequestContextFilter.java:100
    • vendororg.springframework.web.filter.OncePerRequestFilter.doFilterOncePerRequestFilter.java:116
    • vendororg.apache.catalina.core.ApplicationFilterChain.internalDoFilterApplicationFilterChain.java:164
    • vendororg.apache.catalina.core.ApplicationFilterChain.doFilterApplicationFilterChain.java:140
    • vendororg.springframework.web.filter.FormContentFilter.doFilterInternalFormContentFilter.java:93
    • vendororg.springframework.web.filter.OncePerRequestFilter.doFilterOncePerRequestFilter.java:116
    • vendororg.apache.catalina.core.ApplicationFilterChain.internalDoFilterApplicationFilterChain.java:164
    • vendororg.apache.catalina.core.ApplicationFilterChain.doFilterApplicationFilterChain.java:140
    • vendororg.springframework.web.filter.CharacterEncodingFilter.doFilterInternalCharacterEncodingFilter.java:201
    • vendororg.springframework.web.filter.OncePerRequestFilter.doFilterOncePerRequestFilter.java:116
    • vendororg.apache.catalina.core.ApplicationFilterChain.internalDoFilterApplicationFilterChain.java:164
    • vendororg.apache.catalina.core.ApplicationFilterChain.doFilterApplicationFilterChain.java:140
    • vendororg.apache.catalina.core.StandardWrapperValve.invokeStandardWrapperValve.java:167
    • vendororg.apache.catalina.core.StandardContextValve.invokeStandardContextValve.java:90
    • vendororg.apache.catalina.authenticator.AuthenticatorBase.invokeAuthenticatorBase.java:483
    • vendororg.apache.catalina.core.StandardHostValve.invokeStandardHostValve.java:115
    • vendororg.apache.catalina.valves.ErrorReportValve.invokeErrorReportValve.java:93
    • vendororg.apache.catalina.core.StandardEngineValve.invokeStandardEngineValve.java:74
    • vendororg.apache.catalina.connector.CoyoteAdapter.serviceCoyoteAdapter.java:344
    • vendororg.apache.coyote.http11.Http11Processor.serviceHttp11Processor.java:397
    • vendororg.apache.coyote.AbstractProcessorLight.processAbstractProcessorLight.java:63
    • vendororg.apache.coyote.AbstractProtocol$ConnectionHandler.processAbstractProtocol.java:905
    • vendororg.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRunNioEndpoint.java:1741
    • vendororg.apache.tomcat.util.net.SocketProcessorBase.runSocketProcessorBase.java:52
    • vendororg.apache.tomcat.util.threads.ThreadPoolExecutor.runWorkerThreadPoolExecutor.java:1190
    • vendororg.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.runThreadPoolExecutor.java:659
    • vendororg.apache.tomcat.util.threads.TaskThread$WrappingRunnable.runTaskThread.java:63
    • vendorjava.lang.Thread.runThread.java:1583
    • in-appdev.stacklight.examples.CheckoutController$CartService.applyDiscountCheckoutController.java:58
    • in-appdev.stacklight.examples.CheckoutController$CartService.totalCheckoutController.java:51
  2. 2 · Build the fingerprint input

    Line numbers are dropped so that editing a line above the throw site does not open a new group. Values inside the message are replaced with placeholders.

    v1
    platform=java
    service=java-demo
    type=java.lang.IllegalStateException
    frame=dev.stacklight.examples.CheckoutController$CartService#total
    frame=dev.stacklight.examples.CheckoutController#handled
    frame=dev.stacklight.examples.CheckoutController$CartService#applyDiscount
    frame=dev.stacklight.examples.CheckoutController$CartService#total
  3. 3 · Hash it

    SHA-256 of the text above, truncated to 128 bits. The version is part of the group key: a future algorithm opens new groups rather than rewriting these.

    Fingerprint
    9bcc9c871fd6ebe3a6f8b24b543cc088
    Algorithm version
    v1

Latest stored event

2026-08-09 15:31:34 UTC

could not price the cart

java.lang.IllegalStateException: could not price the cart
	at dev.stacklight.examples.CheckoutController$CartService.total(CheckoutController.java:53)
	at dev.stacklight.examples.CheckoutController.handled(CheckoutController.java:34)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:257)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:190)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:986)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:891)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1088)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:978)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.NullPointerException: Cannot invoke "String.length()" because "promoCode" is null
	at dev.stacklight.examples.CheckoutController$CartService.applyDiscount(CheckoutController.java:58)
	at dev.stacklight.examples.CheckoutController$CartService.total(CheckoutController.java:51)
	... 49 more

Similar groups

Trigram similarity computed by Postgres against a GIN index. It catches what a fingerprint cannot — the same fault one refactor away from an existing group. No model is involved.