axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dave Morehouse II (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Commented: (AXIS-2272) Duplicated operation names
Date Sat, 13 Mar 2010 00:17:27 GMT

    [ https://issues.apache.org/jira/browse/AXIS-2272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12844770#action_12844770
] 

Dave Morehouse II commented on AXIS-2272:
-----------------------------------------

I've found a path to reproduce.  On a multi-core/processor server I can cause this issue to
happen every time.  Using Tomcat, simple issue several requests for the list of Web Services
page BEFORE the server is started.  This will cause multiple methods to be generated in JavaServiceDesc,
due to a race condition.  Below I've included the stack traces that show multiple threads
updating the JavaServiceDesc at the same time.  I was able to reproduce this issue using a
simple wget script that launched 3 instances of wget hitting http://localhost:8080/services/

The fix for this issue is to add synchronized to the public loadServiceDescription methods.
 This prevents multiple threads from updating the internal state of the JavaServiceDesc at
the same time.  Since the JavaServiceDesc is cached, once the JavaServiceDesc is in a bad
state, all WSDL generated will continue to be incorrect until the next server restart.


{noformat}
http-8080-3@15af daemon, priority=5, in group 'main', status: 'RUNNING'
	  at org.apache.axis.description.JavaServiceDesc.addOperationDesc(JavaServiceDesc.java:382)
	  at org.apache.axis.description.JavaServiceDesc.createOperationForMethod(JavaServiceDesc.java:1,290)
	  at org.apache.axis.description.JavaServiceDesc.createOperationsForName(JavaServiceDesc.java:1,150)
	  at org.apache.axis.description.JavaServiceDesc.getSyncedOperationsForName(JavaServiceDesc.java:1,112)
	  at org.apache.axis.description.JavaServiceDesc.loadServiceDescByIntrospectionRecursive(JavaServiceDesc.java:962)
	  at org.apache.axis.description.JavaServiceDesc.loadServiceDescByIntrospection(JavaServiceDesc.java:896)
	  at org.apache.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:477)
	  at org.apache.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:286)
	  at org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:500)
	  at org.apache.axis.deployment.wsdd.WSDDDeployment.getDeployedServices(WSDDDeployment.java:503)
	  at org.apache.axis.configuration.FileProvider.getDeployedServices(FileProvider.java:296)
	  at org.apache.axis.transport.http.AxisServlet.reportAvailableServices(AxisServlet.java:482)
	  at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:260)
	  at com.gearworks.servlet.GearworksAxisServlet.doGet(GearworksAxisServlet.java:42)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	  at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	  at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	  at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	  at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	  at com.gearworks.servlet.GearworksAxisServlet.doGet(GearworksAxisServlet.java:33)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	  at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.WebServiceAuthentificatorFilter.doFilter(WebServiceAuthentificatorFilter.java:83)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.RequestThrottleFilter.doFilter(RequestThrottleFilter.java:60)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.ContentLengthServletFilter.doFilter(ContentLengthServletFilter.java:85)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.servlet.LoggingFilter.doFilter(LoggingFilter.java:126)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.WebServiceRedirectFilter.doFilter(WebServiceRedirectFilter.java:59)
	  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.core.StandardHostValve.invoke(StandardHostValve.java:128)
	  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	  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:849)
	  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	  at java.lang.Thread.run(Thread.java:619)

http-8080-2@159d daemon, priority=5, in group 'main', status: 'RUNNING'
	  at org.apache.axis.description.JavaServiceDesc.addOperationDesc(JavaServiceDesc.java:382)
	  at org.apache.axis.description.JavaServiceDesc.createOperationForMethod(JavaServiceDesc.java:1,290)
	  at org.apache.axis.description.JavaServiceDesc.createOperationsForName(JavaServiceDesc.java:1,150)
	  at org.apache.axis.description.JavaServiceDesc.getSyncedOperationsForName(JavaServiceDesc.java:1,112)
	  at org.apache.axis.description.JavaServiceDesc.loadServiceDescByIntrospectionRecursive(JavaServiceDesc.java:962)
	  at org.apache.axis.description.JavaServiceDesc.loadServiceDescByIntrospection(JavaServiceDesc.java:896)
	  at org.apache.axis.description.JavaServiceDesc.loadServiceDescByIntrospection(JavaServiceDesc.java:846)
	  at org.apache.axis.description.JavaServiceDesc.getOperations(JavaServiceDesc.java:410)
	  at org.apache.axis.transport.http.AxisServlet.reportAvailableServices(AxisServlet.java:510)
	  at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:260)
	  at com.gearworks.servlet.GearworksAxisServlet.doGet(GearworksAxisServlet.java:42)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	  at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	  at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	  at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	  at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	  at com.gearworks.servlet.GearworksAxisServlet.doGet(GearworksAxisServlet.java:33)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	  at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.WebServiceAuthentificatorFilter.doFilter(WebServiceAuthentificatorFilter.java:83)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.RequestThrottleFilter.doFilter(RequestThrottleFilter.java:60)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.ContentLengthServletFilter.doFilter(ContentLengthServletFilter.java:85)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.servlet.LoggingFilter.doFilter(LoggingFilter.java:126)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.WebServiceRedirectFilter.doFilter(WebServiceRedirectFilter.java:59)
	  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.core.StandardHostValve.invoke(StandardHostValve.java:128)
	  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	  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:849)
	  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	  at java.lang.Thread.run(Thread.java:619)

http-8080-1@158a daemon, priority=5, in group 'main', status: 'RUNNING'
	  at org.apache.axis.description.JavaServiceDesc.addOperationDesc(JavaServiceDesc.java:382)
	  at org.apache.axis.description.JavaServiceDesc.createOperationForMethod(JavaServiceDesc.java:1,290)
	  at org.apache.axis.description.JavaServiceDesc.createOperationsForName(JavaServiceDesc.java:1,150)
	  at org.apache.axis.description.JavaServiceDesc.getSyncedOperationsForName(JavaServiceDesc.java:1,112)
	  at org.apache.axis.description.JavaServiceDesc.loadServiceDescByIntrospectionRecursive(JavaServiceDesc.java:962)
	  at org.apache.axis.description.JavaServiceDesc.loadServiceDescByIntrospection(JavaServiceDesc.java:896)
	  at org.apache.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:477)
	  at org.apache.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:286)
	  at org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:500)
	  at org.apache.axis.deployment.wsdd.WSDDDeployment.getDeployedServices(WSDDDeployment.java:503)
	  at org.apache.axis.configuration.FileProvider.getDeployedServices(FileProvider.java:296)
	  at org.apache.axis.transport.http.AxisServlet.reportAvailableServices(AxisServlet.java:482)
	  at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:260)
	  at com.gearworks.servlet.GearworksAxisServlet.doGet(GearworksAxisServlet.java:42)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	  at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	  at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	  at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	  at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	  at com.gearworks.servlet.GearworksAxisServlet.doGet(GearworksAxisServlet.java:33)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	  at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.WebServiceAuthentificatorFilter.doFilter(WebServiceAuthentificatorFilter.java:83)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.RequestThrottleFilter.doFilter(RequestThrottleFilter.java:60)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.ContentLengthServletFilter.doFilter(ContentLengthServletFilter.java:85)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.servlet.LoggingFilter.doFilter(LoggingFilter.java:126)
	  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	  at com.gearworks.webservice.security.servlet.WebServiceRedirectFilter.doFilter(WebServiceRedirectFilter.java:59)
	  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.core.StandardHostValve.invoke(StandardHostValve.java:128)
	  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	  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:849)
	  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	  at java.lang.Thread.run(Thread.java:619)
{noformat}

> Duplicated operation names
> --------------------------
>
>                 Key: AXIS-2272
>                 URL: https://issues.apache.org/jira/browse/AXIS-2272
>             Project: Axis
>          Issue Type: Bug
>          Components: WSDL processing
>    Affects Versions: 1.2.1
>         Environment: Server - jakarta tomcat 5.0.28, spring framework 1.2.5
> OS - Windows server 2003
> Java - java full version "1.4.2_07-b05"
> Client - Macromedia flex running in MS IE 6.0
>            Reporter: Alex Grivnin
>         Attachments: axis.zip
>
>
> Axis generates invalid WSDL - more specifically operation names appears to be duplicated
in WSDL.
> This happens sporadically and I do not have a specific scenario to reproduce it.  But
I'll try to describe the application flow and may be it will provide some hint... 
> Our application runs on a Tomcat server 5.0.28, it uses spring framework 1.2.5 for binding
Axis beans which are exposed to the client. See wsdd fragment at the end of the message as
well as spring context.
> At some point client (Macromedia flesh) requests wsdl before calling a web service and
gets an exception that fetched WSDL is not supported (as it contains duplicated operation
names).
> Configuration files:
> --------------------------
>  ------- WSDD fragment ----------
> 	<service name="filtersWS" provider="Handler" style="java:RPC">
> 		<parameter name="handlerClass" value="com.mercury.onyx.client.services.axis.SpringBeanRPCProvider"/>
> 		<parameter name="methodName" value="deleteFilter,getFilter,saveUserFilter,getUserViews,getUserFilterCategories"/>
> 		<parameter name="springBean" value="filtersWS"/>
> 		<beanMapping languageSpecificType="java:com.mercury.onyx.client.services.vo.FilterCategoryVO"
qname="ns3:FilterCategoryVO" xmlns:ns3="someNamespace"/>
> 		<beanMapping languageSpecificType="java:com.mercury.onyx.client.services.vo.FilterVO"
qname="ns3:FilterVO" xmlns:ns3="someNamespace"/>
> 		<beanMapping languageSpecificType="java:com.mercury.onyx.client.services.vo.FilterDefinitionVO"
qname="ns3:FilterDefinitionVO" xmlns:ns3="someNamespace"/>
> 		<beanMapping languageSpecificType="java:com.mercury.onyx.client.services.vo.FilterConstraintVO"
qname="ns3:FilterConstraintVO" xmlns:ns3="someNamespace"/>
> 		<beanMapping languageSpecificType="java:com.mercury.onyx.client.services.vo.ViewVO"
qname="ns3:ViewVO" xmlns:ns3="someNamespace"/>
> 		<beanMapping languageSpecificType="java:com.mercury.onyx.client.services.vo.AttributeVO"
qname="ns3:AttributeVO" xmlns:ns3="someNamespace"/>
> 	</service>
>  ------- End of WSDD fragment ----------
>  ------- Spring bean context -------------
> 	<bean id="filtersWS" class="com.mercury.onyx.client.services.webservices.FiltersWS">
> 		<property name="filterDAO">
> 			<ref bean="filterDAO"/>
> 		</property>
> 		<property name="viewDAO">
> 			<ref bean="viewDAO"/>
> 		</property>
> 		<property name="userDAO">
> 			<ref bean="userDAO"/>
> 		</property>
> 	</bean>
>  ------- End of Spring bean context -------------

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message