axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andreas Veithen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AXIS2-5072) BeanUtil bombs on missing setter
Date Fri, 17 Jun 2011 18:57:47 GMT

    [ https://issues.apache.org/jira/browse/AXIS2-5072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051251#comment-13051251
] 

Andreas Veithen commented on AXIS2-5072:
----------------------------------------

I just read the various comments, and I think there is one important piece of information
missing from the discussion: the method signature isModifiedAttribute(int index) actually
does define a JavaBeans property, but it is a so called "indexed property" (see the Javadoc
of IndexedPropertyDescriptor). My guess is that in some place the Axis2 code is missing a
check to skip indexed properties, probably in BeanUtil.

Accidentally introducing indexed property is something that doesn't happen frequently, which
would explain why this issue went unnoticed for some time. This also means that the risk of
breaking things by adding a condition to skip indexed properties is actually small.



> BeanUtil bombs on missing setter
> --------------------------------
>
>                 Key: AXIS2-5072
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5072
>             Project: Axis2
>          Issue Type: Bug
>          Components: adb
>    Affects Versions: 1.6.0
>         Environment: OSX
>            Reporter: Jason Tholstrup
>            Assignee: Sagara Gunathunga 
>              Labels: adb, beanutil
>             Fix For: 1.7.0
>
>
> First off, thanks for all your work on axis.
> I am currently upgrading from Axis2 1.3 to version 1.6  and I've run into an issue. 
BeanUtil bombs out on a missing setter property that is not in my WSDL when building response
objects on my server side code (see stack trace below).  This "modifiedAttribute" property
has a signature of isModifiedAttribute(int index) and is not included in any wsdl yet this
section still throws an error.  Is there a reason elsewhere in the code where it makes sense
to throw an exception if a property does not have a getter and a setter?  To me the appropriate
decision would seem to be to ignore anything that did not have both.  This seems to be the
decision that my 1.3 version of the code went with since I wasn't seeing this issue before.
 Any thoughts would be appreciated. 
> Thanks,
> Jason Tholstrup
> 14:24:32.129 ERROR [http-8080-8]  o.a.a.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic
line:210 - org.apache.axis2.AxisFault: Property 'modifiedAttribute' in bean class 'com.nicusa.db.tables.Item'is
not readable.
> java.lang.RuntimeException: org.apache.axis2.AxisFault: Property 'modifiedAttribute'
in bean class 'com.nicusa.db.tables.Item'is not readable.
> 	at org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:276)
~[axis2-adb-1.6.0.jar:1.6.0]
> 	at org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:129)
~[axis2-adb-1.6.0.jar:1.6.0]
> 	at org.apache.axis2.databinding.utils.BeanUtil.getPullParser(BeanUtil.java:72) ~[axis2-adb-1.6.0.jar:1.6.0]
> 	at org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.processProperties(ADBXMLStreamReaderImpl.java:994)
~[axis2-adb-1.6.0.jar:1.6.0]
> 	at org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.next(ADBXMLStreamReaderImpl.java:850)
~[axis2-adb-1.6.0.jar:1.6.0]
> 	at org.apache.axis2.util.StreamWrapper.next(StreamWrapper.java:71) ~[axis2-kernel-1.6.0.jar:1.6.0]
> 	at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)
~[axiom-api-1.2.11.jar:1.2.11]
> 	at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214) ~[axiom-api-1.2.11.jar:1.2.11]
> 	at org.apache.axiom.om.impl.llom.OMSerializableImpl.build(OMSerializableImpl.java:78)
~[axiom-impl-1.2.11.jar:1.2.11]
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.build(OMElementImpl.java:722) ~[axiom-impl-1.2.11.jar:1.2.11]
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:700) ~[axiom-impl-1.2.11.jar:1.2.11]
> 	at org.apache.axiom.om.impl.llom.OMNodeImpl.setParent(OMNodeImpl.java:105) ~[axiom-impl-1.2.11.jar:1.2.11]
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:296) ~[axiom-impl-1.2.11.jar:1.2.11]
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:212) ~[axiom-impl-1.2.11.jar:1.2.11]
> 	at org.apache.axis2.rpc.receivers.RPCUtil.processResponse(RPCUtil.java:105) ~[axis2-adb-1.6.0.jar:1.6.0]
> 	at org.apache.axis2.rpc.receivers.RPCUtil.processResponseAsDocLitWrapped(RPCUtil.java:456)
~[axis2-adb-1.6.0.jar:1.6.0]
> 	at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:153)
~[axis2-adb-1.6.0.jar:1.6.0]
> 	at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
[axis2-kernel-1.6.0.jar:1.6.0]
> 	at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
[axis2-kernel-1.6.0.jar:1.6.0]
> 	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181) [axis2-kernel-1.6.0.jar:1.6.0]
> 	at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
[axis2-transport-http-1.6.0.jar:na]
> 	at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146) [axis2-transport-http-1.6.0.jar:na]
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) [servlet-api.jar:na]
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na]
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
[catalina.jar:6.0.29]
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[catalina.jar:6.0.29]
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
[catalina.jar:6.0.29]
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
[catalina.jar:6.0.29]
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [catalina.jar:6.0.29]
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [catalina.jar:6.0.29]
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
[catalina.jar:6.0.29]
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) [catalina.jar:6.0.29]
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) [tomcat-coyote.jar:6.0.29]
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
[tomcat-coyote.jar:6.0.29]
> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) [tomcat-coyote.jar:6.0.29]
> 	at java.lang.Thread.run(Thread.java:680) [na:1.6.0_24]
> Caused by: org.apache.axis2.AxisFault: Property 'modifiedAttribute' in bean class 'com.nicusa.db.tables.Item'is
not readable.
> 	at org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:189)
~[axis2-adb-1.6.0.jar:1.6.0]
> 	... 35 common frames omitted

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
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