[
https://issues.apache.org/jira/browse/AXIS2-5072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051163#comment-13051163
]
Jason Tholstrup commented on AXIS2-5072:
----------------------------------------
Sagara,
> I'm not sure what kind of fix you expecting by asking to reopen it ? you want
> to simply skip that property instead of throwing a exception or some other
> idea ?
Yes, this is exactly what I would expect of the class. If you note the wsdl
produced, it politely ignores the missing read method and does not list
postalCode so there is at least one precedent already in axis2 for this
behavior. Furthermore, since the spec itself allows for read-only and
write-only properties, this does not seem like something that should be
considered an exception as it is completely valid.
Now, I do understand that there may be other code that relies on this behavior
in Axis2. That's why I reached out to you guys to see if you were aware of any
impact this might have. I did notice the comment in svn revision 692771 (on
BeanUtil) by gdaniels which contains the following text.
"RECOMMENDATION - There is some scary code in BeanUtil. Dead code, weird
logic, etc. It could use a thorough review, IMO."
It seems that others with more Axis2 experience are also a bit confused by the
code in BeanUtil. Honestly I'm not sure why you are not leveraging
commons-BeanUtils on this but I'm sure there is some reason I'm just not aware
of. Anyway the exception I'm getting originates at line 190 of BeanUtil.
If I need to create a work around on my side I can, but I would still consider
this a bug unless there is some overriding reason that axis needs to function
this way.
Thanks for the help,
Jason
> 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]