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)
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
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’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:
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.
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?