Receiving new Spark message opens window but doesn't display message

Here is what was logged in my errors.log file after it happened this morning:

Sep 12, 2016 10:36:21 AM org.jivesoftware.spark.util.log.Log error
SEVERE: A SparkTabbedPaneListener (org.jivesoftware.spark.ui.ChatContainer$1@10afc28) threw an exception while processing a 'tabRemoved' event (tab: 'org.jivesoftware.spark.component.tabbedPane.SparkTab[,1,25,488x344,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]', component: 'org.jivesoftware.spark.ui.rooms.ChatRoomImpl[,0,0,488x344,invalid,layout=java.awt.GridBagLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.MatteBorder@740699,flags=9,maximumSize=,minimumSize=,preferredSize=]', index: '0').
java.lang.UnsupportedOperationException
    at java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(Unknown Source)
    at org.jivesoftware.spark.ui.ChatRoom.fireClosingListeners(ChatRoom.java:1230)
    at org.jivesoftware.spark.ui.ChatRoom.closeChatRoom(ChatRoom.java:866)
    at org.jivesoftware.spark.ui.rooms.ChatRoomImpl.closeChatRoom(ChatRoomImpl.java:187)
    at org.jivesoftware.spark.ui.ChatContainer.cleanupChatRoom(ChatContainer.java:510)
    at org.jivesoftware.spark.ui.ChatContainer.access$000(ChatContainer.java:63)
    at org.jivesoftware.spark.ui.ChatContainer$1.tabRemoved(ChatContainer.java:95)
    at org.jivesoftware.spark.component.tabbedPane.SparkTabbedPane.fireTabRemoved(SparkTabbedPane.java:318)
    at org.jivesoftware.spark.component.tabbedPane.SparkTabbedPane.close(SparkTabbedPane.java:355)
    at org.jivesoftware.spark.ui.ChatContainer.closeTab(ChatContainer.java:773)
    at org.jivesoftware.spark.ui.ChatContainer.closeAllChatRooms(ChatContainer.java:543)
    at org.jivesoftware.spark.ui.ChatContainer$11.windowClosing(ChatContainer.java:1253)
    at java.awt.AWTEventMulticaster.windowClosing(Unknown Source)
    at java.awt.Window.processWindowEvent(Unknown Source)
    at javax.swing.JFrame.processWindowEvent(Unknown Source)
    at java.awt.Window.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at com.jtattoo.plaf.BaseTitlePane.close(BaseTitlePane.java:295)
    at com.jtattoo.plaf.BaseTitlePane$CloseAction.actionPerformed(BaseTitlePane.java:568)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at com.jtattoo.plaf.BaseButtonListener.mouseReleased(BaseButtonListener.java:60)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

That error is not related. Was just a temporary side effect. You should update to http://download.igniterealtime.org/spark/dailybuilds/spark_2_8_0_899.exe

Ok, now I’m running spark version 2.8.0.899. Here is everything that was logged the last time this happened:

Sep 12, 2016 12:27:04 PM org.jivesoftware.spark.util.log.Log error
SEVERE:
java.lang.ArrayIndexOutOfBoundsException: 22
    at java.util.ArrayList.add(Unknown Source)
    at org.jivesoftware.spark.ui.ContactList.lambda$addSubscriptionListener$17(ContactList.java:1865)
    at org.jivesoftware.smack.AbstractXMPPConnection$3.run(AbstractXMPPConnection.java:1105)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source) Sep 12, 2016 12:27:05 PM org.jivesoftware.spark.util.log.Log error
SEVERE:
java.lang.NullPointerException
    at org.jivesoftware.spark.ui.ContactList.updateUserPresence(ContactList.java:309)
    at org.jivesoftware.spark.ui.ContactList.access$900(ContactList.java:73)
    at org.jivesoftware.spark.ui.ContactList$13.lambda$run$0(ContactList.java:1880)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source) Sep 12, 2016 12:27:05 PM org.jivesoftware.spark.util.log.Log error
SEVERE:
java.lang.NullPointerException
    at org.jivesoftware.spark.ui.ContactList.updateUserPresence(ContactList.java:309)
    at org.jivesoftware.spark.ui.ContactList.access$900(ContactList.java:73)
    at org.jivesoftware.spark.ui.ContactList$13.lambda$run$0(ContactList.java:1880)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source) Sep 12, 2016 12:27:05 PM org.jivesoftware.spark.util.log.Log error
SEVERE:
java.lang.NullPointerException
    at org.jivesoftware.spark.ui.ContactList.updateUserPresence(ContactList.java:309)
    at org.jivesoftware.spark.ui.ContactList.access$900(ContactList.java:73)
    at org.jivesoftware.spark.ui.ContactList$13.lambda$run$0(ContactList.java:1880)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source) Sep 12, 2016 12:27:05 PM org.jivesoftware.spark.util.log.Log error
SEVERE:
java.lang.NullPointerException
    at org.jivesoftware.spark.ui.ContactList.updateUserPresence(ContactList.java:309)
    at org.jivesoftware.spark.ui.ContactList.access$900(ContactList.java:73)
    at org.jivesoftware.spark.ui.ContactList$13.lambda$run$0(ContactList.java:1880)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source) Sep 12, 2016 12:27:05 PM org.jivesoftware.spark.util.log.Log error
SEVERE:
java.lang.NullPointerException
    at org.jivesoftware.spark.ui.ContactList.updateUserPresence(ContactList.java:309)
    at org.jivesoftware.spark.ui.ContactList.access$900(ContactList.java:73)
    at org.jivesoftware.spark.ui.ContactList$13.lambda$run$0(ContactList.java:1880)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source) Sep 12, 2016 12:27:05 PM org.jivesoftware.spark.util.log.Log error
SEVERE:
java.lang.NullPointerException
    at org.jivesoftware.spark.ui.ContactList.updateUserPresence(ContactList.java:309)
    at org.jivesoftware.spark.ui.ContactList.access$900(ContactList.java:73)
    at org.jivesoftware.spark.ui.ContactList$13.lambda$run$0(ContactList.java:1880)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source) Sep 12, 2016 12:27:05 PM org.jivesoftware.spark.util.log.Log error
SEVERE:
java.lang.NullPointerException
    at org.jivesoftware.spark.ui.ContactList.updateUserPresence(ContactList.java:309)
    at org.jivesoftware.spark.ui.ContactList.access$900(ContactList.java:73)
    at org.jivesoftware.spark.ui.ContactList$13.lambda$run$0(ContactList.java:1880)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source) Sep 12, 2016 12:27:05 PM org.jivesoftware.spark.util.log.Log error
SEVERE:
java.lang.NullPointerException
    at org.jivesoftware.spark.ui.ContactList.updateUserPresence(ContactList.java:309)
    at org.jivesoftware.spark.ui.ContactList.access$900(ContactList.java:73)
    at org.jivesoftware.spark.ui.ContactList$13.lambda$run$0(ContactList.java:1880)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source) Sep 12, 2016 12:27:05 PM org.jivesoftware.spark.util.log.Log error
SEVERE:
java.lang.NullPointerException
    at org.jivesoftware.spark.ui.ContactList.updateUserPresence(ContactList.java:309)
    at org.jivesoftware.spark.ui.ContactList.access$900(ContactList.java:73)
    at org.jivesoftware.spark.ui.ContactList$13.lambda$run$0(ContactList.java:1880)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

I wonder if these errors relate to your original problem. They are caused by a concurrency issue in our contact list (where it handles things like status updates). I’ve checked in a fix as part of https://issues.igniterealtime.org/browse/SPARK-1808

http://download.igniterealtime.org/spark/dailybuilds/spark_2_8_0_900.exe

1 Like

Unfortunately the issue remains in the 2.8.0.900 build

Yes, 900 build was unlikely to fix the hidden message issue. But it might fix Gretchen’s issue with new tab opening as minimized when double clicking on a contact. I suppose.

I was able to fix the problem by changing some of the settings under Preferences - Notifications.

What exactly have you changed?

I think it’s a problem with the toast popup option. I turned it off on PC and turned it on for Mac. Now it seems like all messages are being received.

1 Like

Running on Ubuntu with no toaster popping and I still get the same text-less window.

I’m running on Windows 7 with no toast popup and I also often get a text-less window.

I’m now on Spark 2.8.0.900. when I received a message today that didn’t show up in my chat window, nothing was logged in errors.log, and this is all that was logged in warn.log:

Sep 13, 2016 1:48:09 PM org.jivesoftware.spark.util.log.Log warning
WARNING: chatRoomOpened:  jennifer@OpenFireServer
Sep 13, 2016 1:48:58 PM org.jivesoftware.spark.util.log.Log warning
WARNING: chatRoomActivated:  jennifer@OpenFireServer

Well, this is a strange thing to log into warning log to say the least.

I agree, it’s a strange thing to log on ‘warning’ level. Was Jennifer also the person that sent you the message that didn’t show at the time?

I looked before for the source of this log message, which I could not find. That means that either I’m not looking hard enough (entirely possible), or that you are running some old bits of code. The only way that I see that happening is if there are some plugins left, that don’t get updated.

Next to the logs folder, there should be a plugins folder. Could you clear it (create backups first) please? Restart Spark afterwards, to see if the problem disappears. When it does, try to restore the .jar files in the plugin directory one by one, restarting each time, to find out which plugin is causing the issue. You only need to restore the .jar files, not the subdirectories, as those will be created automatically.

1 Like

Yes, Jennifer was the person who sent me the message that didn’t show up.

I’ll start testing plugins and will let you know what I can figure out.

It looks like it was the OpenFire Meetings plugin that was causing the problem for me.

My plugins folder is completely empty, but I just had another person send me a message and it didn’t show up in spark.

could you try deleting the Spark appdata folder?

%appdata%\Spark

fyi…transcript history is in this folder, so you might want to back it up if that is important to you.

I have analyzed the code and code history in all ways that I know how. I cannot find any reference in our code that would lead to a log statement like this:

WARNING: chatRoomOpened: jennifer@OpenFireServer

I did, however, found third-party code that creates this statement, here: MUCFileUpload/MUCFileUpload.java at develop · Speedy-Gonzalez/MUCFileUpload · GitHub

This matches the log statements exactly: up to the two spaces that are used between “chatRoomOpened:” and the JID.

Have you every played around with MUC file upload stuff?