Author: jean.deruelle
Date: Mon Apr 20 19:07:20 2009
New Revision: 5559

Modified:
trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/dispatchers/InitialRequestDispatcher.java trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/message/SipServletRequestImpl.java

Log:
bug fix for last TCK test failing

Modified: trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/dispatchers/InitialRequestDispatcher.java
==============================================================================
--- trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/dispatchers/InitialRequestDispatcher.java (original) +++ trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/dispatchers/InitialRequestDispatcher.java Mon Apr 20 19:07:20 2009
@@ -483,13 +483,13 @@
* @throws DispatcherException a proble occured while checking the information returned by the AR
         */
private boolean checkRouteModifier(SipApplicationRouterInfo applicationRouterInfo, SipServletRequestImpl sipServletRequest) throws DispatcherException {
-               Request request = (Request) sipServletRequest.getMessage();
- SipRouteModifier sipRouteModifier = applicationRouterInfo.getRouteModifier();
+               final Request request = (Request) 
sipServletRequest.getMessage();
+ final SipRouteModifier sipRouteModifier = applicationRouterInfo.getRouteModifier();
                if(logger.isDebugEnabled()) {
logger.debug("the AR returned the following sip route modifier" + sipRouteModifier);
                }
                if(sipRouteModifier != null) {
-                       String[] routes = applicationRouterInfo.getRoutes();
+                       final String[] routes = 
applicationRouterInfo.getRoutes();
                        switch(sipRouteModifier) {
// ROUTE modifier indicates that SipApplicationRouterInfo.getRoute() returns a valid route,
                                // it is up to container to decide whether it 
is external or internal.

Modified: trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/message/SipServletRequestImpl.java
==============================================================================
--- trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/message/SipServletRequestImpl.java (original) +++ trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/message/SipServletRequestImpl.java Mon Apr 20 19:07:20 2009
@@ -112,7 +112,7 @@
         * Popped route header - when we are the UAS we pop and keep the route
         * header
         */
-       private Address poppedRoute;
+       private AddressImpl poppedRoute;
        private RouteHeader poppedRouteHeader;

        /* Cache the application routing directive in the record route header */
@@ -356,7 +356,8 @@
         * @see javax.servlet.sip.SipServletRequest#getPoppedRoute()
         */
        public Address getPoppedRoute() {
-               if(this.poppedRoute == null && poppedRouteHeader != null) {
+               if((this.poppedRoute == null && poppedRouteHeader != null) ||
+ (poppedRoute != null && poppedRouteHeader != null && !poppedRoute.getAddress().equals(poppedRouteHeader.getAddress()))) { this.poppedRoute = new AddressImpl(poppedRouteHeader.getAddress(), null, getTransaction() == null ? true : false);
                }
                return poppedRoute;

Reply via email to