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

Reply via email to