In WebSphere Application Server v8.0 there is a behavior change associated with the
SipFactory createRequest()
and
createAddress()
methods which use string address parameters.
The specific
javax.servlet.sip.SipFactory
methods associated
with this change and which are flagged by this rule are the following:
-
Address createAddress(java.lang.String addr)
-
SipServletRequest createRequest(SipApplicationSession appSession,
java.lang.String method,
java.lang.String from,
java.lang.String to)
throws ServletParseException
This rule provides the opportunity to inspect code which may be affected by the
behavior change. The details of the behavior change are as follows:
- The Feature Pack for Communications Enabled Applications (CEA Feature Pack) added support for
SIP Servlet Specification 1.1, JSR 289.
- With respect to
createRequest()
and
createAddress()
methods the JSR289 API states:
"... if either of the from or to argument is a SIP URI containing parameters, the URI must be enclosed in
angle brackets. Otherwise the address will be parsed as if the parameter belongs to the address and not the URI."
- However the CEA Feature Pack, as originally shipped was not following the API.
Instead of doing what was mentioned earlier, parameters that are not encapsulated by angle brackets
are treated as URI parameters. For example according to the JSR,
-
sip:asaf@ibm.com;param1=1
should be equal to
-
<sip:asaf@ibm.com>;param1=1
but instead it was read as
-
<sip:asaf@ibm.com;param1=1>
.
- In a CEA Feature Pack service release a custom property,
sip.jsr289.parse.address
,
was added to enable the correct behavior.
- In WebSphere Version 8.0 the behavior is changed so that the default behavior is the correct API compliant behavior.
In version 8.0 if the custom property is set to false then the original behavior is obtained.
For additional information see the documentation: