[
http://jira.amdatu.org/jira/browse/AMDATU-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=10968#comment-10968
]
Ivo Ladage - van Doorn edited comment on AMDATU-303 at 2/16/11 9:11 AM:
------------------------------------------------------------------------
You're right, I was just assuming it was a concurrency issue as I encountered
it in the JMeter plan running 10 simultaneous threads. Didn't look into the
issue yet.
You can easily reproduce it by invoking this request;
http://localhost:3737/rest/users?filter=sdfxdvd
It is under test by UserAdminRESTTest, but the test does not test this specific
method very thoroughly, will add that. See if I can break up some code and
implement that part as unit test instead.
There is DEBUG logging here indeed, but unfortunately we have no guarded
logging in the OSGi LogService as you mentioned before. I will add some check
to enable/disable this at compile time, as the information printed there is
very useful during development.
was (Author: ivol):
You're right, I was just assuming it was a concurrency issue as I
encountered it in the JMeter plan running 10 simultaneous threads. Didn't look
into the issue yet.
You can easily reproduce it by invoking this request;
http://localhost:3737/rest/users?filter=sdfxdvd
It is under test by UserAdminRESTTest, but the test does not test this specific
method very thoroughly, will add that.
There is DEBUG logging here indeed, but unfortunately we have no guarded
logging in the OSGi LogService as you mentioned before. I will add some check
to enable/disable this at compile time, as the information printed there is
very useful during development.
> Concurrency issue in UserAdmin REST service
> -------------------------------------------
>
> Key: AMDATU-303
> URL: http://jira.amdatu.org/jira/browse/AMDATU-303
> Project: Amdatu
> Issue Type: Bug
> Components: Amdatu Auth
> Affects Versions: 0.1.0
> Reporter: Ivo Ladage - van Doorn
> Assignee: Ivo Ladage - van Doorn
> Fix For: 0.1.1
>
>
> If you run the JMeter test plan to test the UserAdmin REST service (Amdatu
> UserAdmin - 0.1.0.jmx), then open the UserAdmin gadget in the dashboard
> yourself simultanously, you will get this error;
> [2011-02-11 16:27:50] WARNING: /rest/users [org.apache.felix.http.jetty]
> -1
> java.lang.ArrayIndexOutOfBoundsException: -1
> at java.util.ArrayList.get(ArrayList.java:324)
> at
> org.amdatu.authorization.useradmin.rest.service.ResourceBase.getRoles(ResourceBase.java:140)
> at
> org.amdatu.authorization.useradmin.rest.service.UsersResource.getUsers(UsersResource.java:105)
> at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:51)
> at
> org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:33)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)
> at
> org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationPara
> metersHandler.java:54)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)
> at
> org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleResourceMethod(FindResourceMethodHan
> dler.java:151)
> at
> org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.ja
> va:65)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)
> at
> org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:9
> 3)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)
> at
> org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)
> at
> org.apache.wink.server.internal.handlers.OptionsMethodHandler.handleRequest(OptionsMethodHandler.java:46)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)
> at
> org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:48)
> at
> org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:163)
> at
> org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:137)
> at
> org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:116)
> at
> org.amdatu.web.rest.wink.service.WinkRestServlet.service(WinkRestServlet.java:73)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.amdatu.web.rest.wink.service.WinkRestServlet.service(WinkRestServlet.java:86)
> at
> org.amdatu.web.dispatcher.handler.ServletHandler.doHandle(ServletHandler.java:105)
> at
> org.amdatu.web.dispatcher.handler.ServletHandler.handle(ServletHandler.java:67)
> at
> org.amdatu.web.dispatcher.dispatch.CustomServletPipeline$Dispatcher.forward(CustomServletPipeline.java:78)
> at
> org.amdatu.web.rest.wink.service.WinkServletFilter.doFilter(WinkServletFilter.java:80)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:98)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:71)
> at
> org.amdatu.web.dispatcher.dispatch.CustomFilterChain.doFilter(CustomFilterChain.java:53)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:36)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:74)
> at
> org.amdatu.web.dispatcher.dispatch.CustomFilterChain.doFilter(CustomFilterChain.java:53)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:36)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:74)
> at
> org.amdatu.web.dispatcher.dispatch.CustomFilterChain.doFilter(CustomFilterChain.java:53)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:36)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:74)
> at
> org.amdatu.web.dispatcher.dispatch.CustomFilterChain.doFilter(CustomFilterChain.java:53)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:36)
> at
> org.amdatu.web.dispatcher.dispatch.CustomFilterPipeline.dispatch(CustomFilterPipeline.java:58)
> at
> org.amdatu.web.dispatcher.dispatch.ExtenderFilterChain.doFilter(ExtenderFilterChain.java:54)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:36)
> at
> org.amdatu.web.tenantresolver.hostname.service.HostnameTenantResolverExtenderFilter.doFilter(HostnameTenantRe
> solverExtenderFilter.java:76)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:98)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:71)
> at
> org.amdatu.web.dispatcher.dispatch.ExtenderFilterChain.doFilter(ExtenderFilterChain.java:51)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:36)
> at
> org.amdatu.web.tenantresolver.parameter.service.ParameterTenantResolverExtenderFilter.doFilter(ParameterTenan
> tResolverExtenderFilter.java:71)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:98)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:71)
> at
> org.amdatu.web.dispatcher.dispatch.ExtenderFilterChain.doFilter(ExtenderFilterChain.java:51)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:36)
> at
> org.amdatu.opensocial.profile.service.TenantHostnameDispatchExtenderFilter.doFilter(TenantHostnameDispatchExt
> enderFilter.java:77)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:98)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:71)
> at
> org.amdatu.web.dispatcher.dispatch.ExtenderFilterChain.doFilter(ExtenderFilterChain.java:51)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:36)
> at
> org.amdatu.opensocial.shindig.service.TenantHostnameDispatchExtenderFilter.doFilter(TenantHostnameDispatchExt
> enderFilter.java:61)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.doHandle(FilterHandler.java:98)
> at
> org.amdatu.web.dispatcher.handler.FilterHandler.handle(FilterHandler.java:71)
> at
> org.amdatu.web.dispatcher.dispatch.ExtenderFilterChain.doFilter(ExtenderFilterChain.java:51)
> at
> org.amdatu.web.dispatcher.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:36)
> at
> org.amdatu.web.dispatcher.dispatch.ExtenderFilterPipeline.dispatch(ExtenderFilterPipeline.java:47)
> at
> org.amdatu.web.dispatcher.service.DispatcherServiceImpl.dispatchRequest(DispatcherServiceImpl.java:161)
> at
> org.amdatu.web.dispatcher.filter.DispatchInterceptFilter.doFilter(DispatchInterceptFilter.java:81)
> at
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:80)
> at
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:68)
> at
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> at
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> at
> org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
> at
> org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
> at
> org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:55)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
> at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:326)
> at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:915)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
Amdatu-developers mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-developers