Start a Conversation

Unsolved

This post is more than 5 years old

2429

June 9th, 2015 08:00

Web Services API java.util.ConcurrentModificationException

Hello all, I'm running into an exception periodically using the WATCH4NET web service api. The top level exception reports "can't get valid user",  however the cause the of the exception is a current modification on array list sorting. I happens quite often, seems like this area of code is not thread safe. There are multiple threads/users accessing the web services api.

Has anyone seen/experienced this issue? Any feed back would be great!



Version: EMC M&R v6.5u1 - 54340


SEVERE

javax.xml.ws.soap.SOAPFaultException: can't get valid user

at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178)

at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:125)

at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)

at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)

at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:135)

at com.sun.proxy.$Proxy83.getDistinctPropertyValues(Unknown Source)

at com.cirba.emcsrm.EmcSrmClient.getDistinctPropertyValues(EmcSrmClient.java:207)

at com.cirba.emcsrm.EmcSrmClient.getPropertyValue(EmcSrmClient.java:466)

at com.cirba.emcsrm.EmcSrmRequestAdministrator.getConfigPropertyValue(EmcSrmRequestAdministrator.java:1221)

at com.cirba.emcsrm.EmcSrmRequestAdministrator.addConfigTableRows(EmcSrmRequestAdministrator.java:969)

at com.cirba.emcsrm.EmcSrmRequestAdministrator.processTableRows(EmcSrmRequestAdministrator.java:926)

at com.cirba.emcsrm.EmcSrmRequestAdministrator.processObject(EmcSrmRequestAdministrator.java:873)

at com.cirba.emcsrm.EmcSrmRequestAdministrator.executeEntity(EmcSrmRequestAdministrator.java:811)

at com.cirba.emcsrm.EmcSrmRequestAdministrator$Entity.run(EmcSrmRequestAdministrator.java:790)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.SecurityException: can't get valid user

at com.watch4net.apg.v2.remote.security.ApplicationUserMapperProvider.getUser(ApplicationUserMapperProvider.java:61)

at com.watch4net.apg.v2.remote.impl.DatabaseAccessor.getUser(DatabaseAccessor.java:110)

at com.watch4net.apg.v2.remote.impl.DatabaseAccessor.getDistinctPropertyValues(DatabaseAccessor.java:168)

at sun.reflect.GeneratedMethodAccessor298.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:483)

at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:246)

at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146)

at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:258)

at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)

at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:598)

at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:557)

at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:542)

at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:439)

at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)

at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:444)

at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)

at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)

at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)

at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160)

at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.watch4net.apg.logging.webapp.MDCPopulatingFilter.doFilter(MDCPopulatingFilter.java:76)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.watch4net.apg.v2.gui.tomcat.SSLDownloadHeaderFixFilter.doFilter(SourceFile:51)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)

at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:394)

at com.watch4net.apg.v2.gui.tomcat.SessionIdRegenValve.invoke(SourceFile:82)

at com.watch4net.apg.v2.gui.tomcat.LoggingValve.invoke(SourceFile:40)

at com.watch4net.apg.v2.gui.tomcat.EncodingFixValve.invoke(SourceFile:26)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

... 1 more

Caused by: java.util.ConcurrentModificationException

at java.util.ArrayList.sort(ArrayList.java:1456)

at java.util.Collections.sort(Collections.java:141)

at com.watch4net.apg.v2.gui.tree.RealNode.sortRealChildren(RealNode.java:192)

at com.watch4net.apg.v2.gui.tree.TreeUtils.sortRealChildren(TreeUtils.java:86)

at com.watch4net.apg.v2.gui.tree.TreeUtils.sortAndResolve(TreeUtils.java:69)

at com.watch4net.apg.v2.gui.user.RootNode.initialize(RootNode.java:193)

at com.watch4net.apg.v2.gui.master.MasterUtils.loadUser(MasterUtils.java:279)

at com.watch4net.apg.v2.gui.master.MasterUtils.loadUser(MasterUtils.java:236)

at com.watch4net.apg.v2.gui.master.MasterUtils.loadUser(MasterUtils.java:190)

at com.watch4net.apg.v2.remote.security.MasterDatabaseAccessorMapper.loadUser(MasterDatabaseAccessorMapper.java:85)

at com.watch4net.apg.v2.remote.security.MasterDatabaseAccessorMapper.getApplicationUser(MasterDatabaseAccessorMapper.java:51)

at com.watch4net.apg.v2.remote.security.ApplicationUserMapperProvider.getUser(ApplicationUserMapperProvider.java:59)

... 46 more

No Responses!
No Events found!

Top