[
http://jira.amdatu.org/jira/browse/AMDATU-285?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ivo Ladage - van Doorn updated AMDATU-285:
------------------------------------------
Attachment: DispatcherPerformanceTest.java
Attached the integration test with which this can be reproduced. Just copy the
class to \integration-tests\src\test\java\org\amdatu\test\integration\tests and
run:
mvn clean install -Dtest=DispatcherPerformanceTest
> StackOverflowError in FilterHandler of dispatcher
> -------------------------------------------------
>
> Key: AMDATU-285
> URL: http://jira.amdatu.org/jira/browse/AMDATU-285
> Project: Amdatu
> Issue Type: Bug
> Components: Amdatu Web
> Affects Versions: 0.1.0
> Reporter: Ivo Ladage - van Doorn
> Assignee: Bram de Kruijff
> Priority: Blocker
> Fix For: 0.1.0
>
> Attachments: DispatcherPerformanceTest.java
>
>
> I created a small performance tests which:
> - registers a single servlet
> - registers 50 filters and 50 tenants
> - fires 2000 GET requests to the servlet (synchronously in a single thread)
> When doing this, this always results in a StackOverflowError in the
> dispatcher:
> INFO: Added tenant tenant_50 in 1026 ms [pax-exam-probe]
> INFO: Running single performance test with 50 filters and 50 tenants.
> [pax-exam-probe]
> WARNING: Error for /test/servlet [org.apache.felix.http.jetty]
> null
> java.lang.StackOverflowError
> at java.lang.Character.codePointAt(Character.java:2335)
> at java.util.regex.Pattern$CharProperty.match(Pattern.java:3344)
> at java.util.regex.Pattern$Curly.match0(Pattern.java:3760)
> at java.util.regex.Pattern$Curly.match(Pattern.java:3744)
> at java.util.regex.Matcher.match(Matcher.java:1127)
> at java.util.regex.Matcher.matches(Matcher.java:502)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.matchesPath(FilterHandler.java:78)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:63)
> at
> org.amdatu.web.dispatcher.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> at
> org.amdatu.test.integration.mock.TestFilter.doFilter(TestFilter.java:24)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:91)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:67)
> at
> org.amdatu.web.dispatcher.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> at
> org.amdatu.test.integration.mock.TestFilter.doFilter(TestFilter.java:24)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:91)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:67)
> at
> org.amdatu.web.dispatcher.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> at
> org.amdatu.test.integration.mock.TestFilter.doFilter(TestFilter.java:24)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:91)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:67)
> at
> org.amdatu.web.dispatcher.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> at
> org.amdatu.test.integration.mock.TestFilter.doFilter(TestFilter.java:24)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:91)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:67)
> at
> org.amdatu.web.dispatcher.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> at
> org.amdatu.test.integration.mock.TestFilter.doFilter(TestFilter.java:24)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:91)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:67)
> at
> org.amdatu.web.dispatcher.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> at
> org.amdatu.test.integration.mock.TestFilter.doFilter(TestFilter.java:24)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:91)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:67)
> at
> org.amdatu.web.dispatcher.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> at
> org.amdatu.test.integration.mock.TestFilter.doFilter(TestFilter.java:24)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:91)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:67)
> at
> org.amdatu.web.dispatcher.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> ...
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira