aboutsummaryrefslogtreecommitdiffstats
path: root/src/net
diff options
context:
space:
mode:
authorDamian Minkov <damencho@jitsi.org>2010-09-23 13:33:10 +0000
committerDamian Minkov <damencho@jitsi.org>2010-09-23 13:33:10 +0000
commit13ab8122831e41746fd546eb3691e121bb8ce396 (patch)
treef898252359a226265ab11ec2b999766950f4ab3c /src/net
parent834e076de628733a26e6105e0ce400e1f26c0b1b (diff)
downloadjitsi-13ab8122831e41746fd546eb3691e121bb8ce396.zip
jitsi-13ab8122831e41746fd546eb3691e121bb8ce396.tar.gz
jitsi-13ab8122831e41746fd546eb3691e121bb8ce396.tar.bz2
Fix xcap to gracefully handle 200 ok responses with no content.
Diffstat (limited to 'src/net')
-rw-r--r--src/net/java/sip/communicator/impl/protocol/sip/ServerStoredContactListSipImpl.java6
-rw-r--r--src/net/java/sip/communicator/impl/protocol/sip/xcap/XCapClientImpl.java15
2 files changed, 15 insertions, 6 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/ServerStoredContactListSipImpl.java b/src/net/java/sip/communicator/impl/protocol/sip/ServerStoredContactListSipImpl.java
index 41688c1..b981681 100644
--- a/src/net/java/sip/communicator/impl/protocol/sip/ServerStoredContactListSipImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/sip/ServerStoredContactListSipImpl.java
@@ -865,7 +865,11 @@ public class ServerStoredContactListSipImpl
}
catch (XCapException e)
{
- logger.error(e);
+ logger.error("Error initializing serverside list!", e);
+
+ // if for some reason we cannot init the contact list
+ // disconnect xcap client
+ sipProvider.getXCapClient().disconnect();
}
}
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/xcap/XCapClientImpl.java b/src/net/java/sip/communicator/impl/protocol/sip/xcap/XCapClientImpl.java
index 411a981..0ace782 100644
--- a/src/net/java/sip/communicator/impl/protocol/sip/xcap/XCapClientImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/sip/xcap/XCapClientImpl.java
@@ -619,17 +619,22 @@ public class XCapClientImpl extends BaseHttpXCapClient implements XCapClient
}
throw new XCapException(errorMessage);
}
+
+ // an empty list
+ if (StringUtils.isNullOrEmpty(response.getContentType())
+ || (content == null || content.length == 0))
+ {
+ return null;
+ }
+
if (!contentType.equals(response.getContentType()))
{
String errorMessage = String.format(
"XCAP server returns invalid content type: %1s",
- contentType);
+ response.getContentType());
throw new XCapException(errorMessage);
}
- if (content == null || content.length == 0)
- {
- return null;
- }
+
return new String(content, "UTF-8");
}
catch (IOException e)