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,28 +86,32 @@ public class IQvCardHandler extends IQHandler { ...@@ -86,28 +86,32 @@ 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
VCardManager vManager = VCardManager.getInstance(); if (recipient.getNode() != null) {
Collection<String> names = vManager.getVCardPropertyNames(user.getUsername()); User user = userManager.getUser(recipient.getNode());
for (String name : names) { VCardManager vManager = VCardManager.getInstance();
String path = name.replace(':', '/'); Collection<String> names = vManager.getVCardPropertyNames(user.getUsername());
Element node = DocumentHelper.makeElement(vcard, path); for (String name : names) {
node.setText(vManager.getVCardProperty(user.getUsername(), name)); String path = name.replace(':', '/');
Element node = DocumentHelper.makeElement(vcard, path);
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.setError(PacketError.Condition.item_not_found); result.setChildElement(packet.getChildElement().createCopy());
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