From 722abf2444599f30748c70de6c0a61240d6e2418 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Tue, 29 Nov 2011 01:36:25 +1300 Subject: [PATCH] Don't get stuck in an infinite loop processing the principal URL. --- src/com/morphoss/acal/activity/serverconfig/TestPort.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/com/morphoss/acal/activity/serverconfig/TestPort.java b/src/com/morphoss/acal/activity/serverconfig/TestPort.java index 618f2f4..e180706 100644 --- a/src/com/morphoss/acal/activity/serverconfig/TestPort.java +++ b/src/com/morphoss/acal/activity/serverconfig/TestPort.java @@ -1,5 +1,6 @@ package com.morphoss.acal.activity.serverconfig; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -213,14 +214,16 @@ public class TestPort { } else if ( thisTag.equals("principal-collection-set") ) { principalCollectionHref = prop.getFirstNodeText("href"); - String userName = requestor.getUserName(); + String userName = URLEncoder.encode(requestor.getUserName(), "UTF-8"); if ( principalCollectionHref.length() > 0 && userName != null ) { principalCollectionHref = principalCollectionHref + - (principalCollectionHref.substring(principalCollectionHref.length()-1) == "/" ? "" : "/") + + (principalCollectionHref.length() > 0 && principalCollectionHref.charAt(principalCollectionHref.length()-1) == '/' ? "" : "/") + userName + "/"; - if ( !principalCollectionHref.equals(responseHref) ) { + if ( !principalCollectionHref.equals(requestPath) ) { return doPropfindPrincipal(principalCollectionHref); } + if ( Constants.debugCheckServerDialog ) Log.println(Constants.LOGD, TAG, + "We've tried this URL already. Let's move on... "+requestPath); } // @todo Next: Try a Depth: 1 propfind on the principalCollectionHref trying to match it to this user } -- 2.11.4.GIT