From 1569081efe7e538b260ccde9d2acb7cb2ba8d95f Mon Sep 17 00:00:00 2001 From: mguessan Date: Tue, 9 Aug 2011 13:17:13 +0000 Subject: [PATCH] Caldav: additional fix for CRLF in urlcompname git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1771 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/exchange/ews/EwsExchangeSession.java | 5 +---- src/java/davmail/util/StringUtil.java | 5 +++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/java/davmail/exchange/ews/EwsExchangeSession.java b/src/java/davmail/exchange/ews/EwsExchangeSession.java index 38966925..40e30a9f 100644 --- a/src/java/davmail/exchange/ews/EwsExchangeSession.java +++ b/src/java/davmail/exchange/ews/EwsExchangeSession.java @@ -1000,7 +1000,7 @@ public class EwsExchangeSession extends ExchangeSession { permanentUrl = response.get(Field.get("permanenturl").getResponseName()); etag = response.get(Field.get("etag").getResponseName()); displayName = response.get(Field.get("displayname").getResponseName()); - itemName = response.get(Field.get("urlcompname").getResponseName()); + itemName = StringUtil.decodeUrlcompname(response.get(Field.get("urlcompname").getResponseName())); // workaround for missing urlcompname in Exchange 2010 if (itemName == null) { itemName = StringUtil.base64ToUrl(itemId.id) + ".EML"; @@ -1182,9 +1182,6 @@ public class EwsExchangeSession extends ExchangeSession { // workaround for missing urlcompname in Exchange 2010 if (itemName == null) { itemName = StringUtil.base64ToUrl(itemId.id) + ".EML"; - } else if (itemName.indexOf('\n') >= 0) { - // encode line feed - itemName = itemName.replaceAll("\n", "_x000D__x000A_"); } String instancetype = response.get(Field.get("instancetype").getResponseName()); boolean isrecurring = "true".equals(response.get(Field.get("isrecurring").getResponseName())); diff --git a/src/java/davmail/util/StringUtil.java b/src/java/davmail/util/StringUtil.java index 76c8ccc4..d16827e5 100644 --- a/src/java/davmail/util/StringUtil.java +++ b/src/java/davmail/util/StringUtil.java @@ -144,7 +144,7 @@ public final class StringUtil { private static final Pattern URLENCODED_LT_PATTERN = Pattern.compile("%3C"); private static final Pattern URLENCODED_GT_PATTERN = Pattern.compile("%3E"); private static final Pattern URLENCODED_QUOTE_PATTERN = Pattern.compile("%22"); - private static final Pattern URLENCODED_X0D0A_PATTERN = Pattern.compile("\r\n"); + private static final Pattern URLENCODED_X0D0A_PATTERN = Pattern.compile("\n"); private static final Pattern URLENCODED_PERCENT_PATTERN = Pattern.compile("%25"); private static final Pattern ENCODED_AMP_PATTERN = Pattern.compile("&"); @@ -351,7 +351,8 @@ public final class StringUtil { if (result.indexOf("%22") >= 0) { result = URLENCODED_QUOTE_PATTERN.matcher(result).replaceAll("\""); } - if (result.indexOf("\r\n") >= 0) { + // CRLF is replaced with LF in response + if (result.indexOf('\n') >= 0) { result = URLENCODED_X0D0A_PATTERN.matcher(result).replaceAll("_x000D__x000A_"); } if (result.indexOf("%25") >= 0) {