HTTP Status 500 – Internal Server Error


Type Exception Report

Message Range [15, -1) out of bounds for length 40

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

java.lang.StringIndexOutOfBoundsException: Range [15, -1) out of bounds for length 40
	java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
	java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
	java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
	java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
	java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
	java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
	java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
	java.base/java.lang.String.checkBoundsBeginEnd(String.java:4589)
	java.base/java.lang.String.substring(String.java:2703)
	at.generalsolutions.components.base.authentication.AuthenticationService.lambda$extractPathContainedApikey$15(AuthenticationService.java:273)
	java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
	java.base/java.util.HashMap$KeySpliterator.tryAdvance(HashMap.java:1728)
	java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at.generalsolutions.components.base.authentication.AuthenticationService.extractPathContainedApikey(AuthenticationService.java:274)
	at.generalsolutions.components.base.authentication.AuthenticationService.lambda$extractApiKey$13(AuthenticationService.java:257)
	java.base/java.util.Optional.or(Optional.java:313)
	at.generalsolutions.components.base.authentication.AuthenticationService.extractApiKey(AuthenticationService.java:257)
	at.generalsolutions.components.base.authentication.AuthenticationService.authenticate(AuthenticationService.java:135)
	at.generalsolutions.web.internal.ApiAuthenticationFilter.doFilter(ApiAuthenticationFilter.java:60)
	common.utils.SessionServletFilter.doFilter(SessionServletFilter.java:88)
	org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:186)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	common.utils.servlet.quota.AbstractQuotaFilter.bypassRequest(AbstractQuotaFilter.java:128)
	common.utils.servlet.quota.AbstractQuotaFilter.doFilter(AbstractQuotaFilter.java:83)
	utils.context.RequestThreadContextFilter.doFilter(RequestThreadContextFilter.java:39)
	common.utils.EncodingFilter.doFilter(EncodingFilter.java:31)

Note The full stack trace of the root cause is available in the server logs.


Apache Tomcat/9.0.71