There is thread synchronization problem in function initialize(). Sometimes it is possible to get “null.servername” value for variable mucServiceDomain in class OfflineMessageStrategy. Here is my resolution of this problem:
Index: D:/Work/JiveMessenger 2.3.1/src/java/org/jivesoftware/messenger/OfflineMessageStrategy.java
===================================================================
— D:/Work/JiveMessenger 2.3.1/src/java/org/jivesoftware/messenger/OfflineMessageStrategy.java (revi sion 3112)
+++ D:/Work/JiveMessenger 2.3.1/src/java/org/jivesoftware/messenger/OfflineMessageStrategy.java (work ing copy)
@@ -32,7 +32,7 @@
private OfflineMessageStore messageStore;
private JID serverAddress;
private PacketRouter router;
- private String mucServiceDomain;
- private MultiUserChatServer mucService;
public OfflineMessageStrategy() {
super(“Offline Message Strategy”);
@@ -70,6 +70,7 @@
// Ignore packets sent from the MUC service
// TODO Remove this code when JEP-79 is implemented and MUC packets include the drop action
JID senderJID = message.getFrom();
if (senderJID != null && mucServiceDomain.equals(senderJID.getDomain())) {
return;
}
@@ -128,7 +129,7 @@
super.initialize(server);
messageStore = server.getOfflineMessageStore();
router = server.getPacketRouter();
serverAddress = new JID(server.getServerInfo().getName());
String quota = JiveGlobals.getProperty(“xmpp.offline.quota”);
/code