diff options
author | Damian Minkov <damencho@jitsi.org> | 2010-09-23 13:33:10 +0000 |
---|---|---|
committer | Damian Minkov <damencho@jitsi.org> | 2010-09-23 13:33:10 +0000 |
commit | 13ab8122831e41746fd546eb3691e121bb8ce396 (patch) | |
tree | f898252359a226265ab11ec2b999766950f4ab3c /src/net | |
parent | 834e076de628733a26e6105e0ce400e1f26c0b1b (diff) | |
download | jitsi-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.java | 6 | ||||
-rw-r--r-- | src/net/java/sip/communicator/impl/protocol/sip/xcap/XCapClientImpl.java | 15 |
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) |