From 8c358cb8f1b2e0c77fcdf89e1e56d7c87dce0953 Mon Sep 17 00:00:00 2001 From: George Politis <666f6f@java.net> Date: Fri, 28 Aug 2009 14:04:16 +0000 Subject: [PATCH] Otr Plugin: Fixed otr.w3c.dom.DOMException for ICQ protocol. Also make sure we deliver the transformed message. --- .../icq/OperationSetBasicInstantMessagingIcqImpl.java | 6 ++++-- .../java/sip/communicator/plugin/otr/ScOtrEngineImpl.java | 8 ++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/net/java/sip/communicator/impl/protocol/icq/OperationSetBasicInstantMessagingIcqImpl.java b/src/net/java/sip/communicator/impl/protocol/icq/OperationSetBasicInstantMessagingIcqImpl.java index eccbbd80c..076fb38b9 100644 --- a/src/net/java/sip/communicator/impl/protocol/icq/OperationSetBasicInstantMessagingIcqImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/icq/OperationSetBasicInstantMessagingIcqImpl.java @@ -177,14 +177,16 @@ public void sendInstantMessage(Contact to, Message message) if (msgDeliveryPendingEvt == null) return; + String transformedContent = msgDeliveryPendingEvt.getSourceMessage().getContent(); + if (to.getPresenceStatus().isOnline()) { //do not add the conversation listener in here. we'll add it //inside the icbm listener - imConversation.sendMessage(new SimpleMessage(messageContent)); + imConversation.sendMessage(new SimpleMessage(transformedContent)); } else - imConversation.sendMessage(new SimpleMessage(messageContent), true); + imConversation.sendMessage(new SimpleMessage(transformedContent), true); MessageDeliveredEvent msgDeliveredEvt = new MessageDeliveredEvent( message, to, System.currentTimeMillis()); diff --git a/src/net/java/sip/communicator/plugin/otr/ScOtrEngineImpl.java b/src/net/java/sip/communicator/plugin/otr/ScOtrEngineImpl.java index a1dcf3b12..3c572664c 100644 --- a/src/net/java/sip/communicator/plugin/otr/ScOtrEngineImpl.java +++ b/src/net/java/sip/communicator/plugin/otr/ScOtrEngineImpl.java @@ -223,6 +223,14 @@ public String getLocalFingerprint(AccountID account) class Configurator { private String getXmlFriendlyString(String s){ + if (s == null || s.length() < 1) + return s; + + // XML Tags are not allowed to start with digits, + // insert a dummy "p" char. + if (Character.isDigit(s.charAt(0))) + s = "p" + s; + char[] cId = new char[s.length()]; for (int i = 0; i < cId.length; i++) { char c = s.charAt(i);