Commit 7e8445b7 authored by Gaston Dombiak's avatar Gaston Dombiak Committed by gaston

Fixed NPE when trying to get the vCard of an anonymous user. JM-212


git-svn-id: http://svn.igniterealtime.org/svn/repos/messenger/trunk@1127 b35dd754-fafc-0310-a699-88a17e54d16e
parent 33726493
...@@ -86,12 +86,13 @@ public class IQvCardHandler extends IQHandler { ...@@ -86,12 +86,13 @@ public class IQvCardHandler extends IQHandler {
result = IQ.createResultIQ(packet); result = IQ.createResultIQ(packet);
} }
else if (type.equals(IQ.Type.get)) { else if (type.equals(IQ.Type.get)) {
User user = userManager.getUser(recipient.getNode());
result = IQ.createResultIQ(packet); result = IQ.createResultIQ(packet);
Element vcard = DocumentHelper.createElement(QName.get("vCard", "vcard-temp")); Element vcard = DocumentHelper.createElement(QName.get("vCard", "vcard-temp"));
result.setChildElement(vcard); result.setChildElement(vcard);
// Only try to get the vCard values of non-anonymous users
if (recipient.getNode() != null) {
User user = userManager.getUser(recipient.getNode());
VCardManager vManager = VCardManager.getInstance(); VCardManager vManager = VCardManager.getInstance();
Collection<String> names = vManager.getVCardPropertyNames(user.getUsername()); Collection<String> names = vManager.getVCardPropertyNames(user.getUsername());
for (String name : names) { for (String name : names) {
...@@ -100,13 +101,16 @@ public class IQvCardHandler extends IQHandler { ...@@ -100,13 +101,16 @@ public class IQvCardHandler extends IQHandler {
node.setText(vManager.getVCardProperty(user.getUsername(), name)); node.setText(vManager.getVCardProperty(user.getUsername(), name));
} }
} }
}
else { else {
result = IQ.createResultIQ(packet); result = IQ.createResultIQ(packet);
result.setChildElement(packet.getChildElement().createCopy());
result.setError(PacketError.Condition.not_acceptable); result.setError(PacketError.Condition.not_acceptable);
} }
} }
catch (UserNotFoundException e) { catch (UserNotFoundException e) {
result = IQ.createResultIQ(packet); result = IQ.createResultIQ(packet);
result.setChildElement(packet.getChildElement().createCopy());
result.setError(PacketError.Condition.item_not_found); result.setError(PacketError.Condition.item_not_found);
} }
return result; return result;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment