[
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: [email protected]
For additional commands, e-mail: [email protected]