You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2003/03/19 20:52:23 UTC
DO NOT REPLY [Bug 17161] -
LocalSender removes attachments from request message
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17161>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17161
LocalSender removes attachments from request message
Eric.D.Friedman@wellsfargo.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |
------- Additional Comments From Eric.D.Friedman@wellsfargo.com 2003-03-19 19:52 -------
LocalSender throws a NullPointerException because of this patch.
The reason is that this code:
serverRequest.getAttachmentsImpl().
setAttachmentParts(clientRequest.getAttachmentsImpl().
getAttachments());
does not check whether the return value of getAttachmentsImpl() on either
serverRequest or clientRequest is null, which it can be if attachment support is
not enabled.
Two possible fixes:
1. just check for null in both cases and do not copy attachments if either value
is null;
2. add a method to Message:
public boolean isAttachmentSupportEnabled() {
return mAttachments != null;
}
This has the advantage of hiding the fact that a null value on message's member
variable has more semantic meaning than one might otherwise guess.
It also raises a question: what to do when the client message has attachments
and the server doesn't support them: raise an exception? silently drop them?
In short, the minimum fix is this:
Attachments serverAttachments = serverRequest.getAttachmentsImpl();
Attachments clientAttachments = clientRequest.getAttachmentsImpl();
if (null != clientAttachments && null != serverAttachments) {
serverAttachments.setAttachmentParts(clientAttachments.getAttachments());
}
A better fix would be this:
[ in Message.java ]
public boolean isAttachmentSupportEnabled() {
return null != mAttachments;
}
and in LocalSender:
if (clientRequest.isAttachmentsSupportEnabled()
&& serverRequest.isAttachmentsSupportEnabled()) {
serverRequest.getAttachmentsImpl().
setAttachmentParts(clientRequest.getAttachmentsImpl().
getAttachments());
}
the above portion might change pending the decision about what to happen when
there's a mismatch between the client/server support for attachments -- probably
not a big deal for LocalSender, but definitely a concern elsewhere.