It’s somewhat suspicious that I can’t identify the source of those ‘warning’ log messages. They did point me towards more code locations where the isolation fix was needed. I’ve prepared another patch.
There’s no need to provide further packet dumps, by the way. We’ve learned what we can from them, I think.
Yes, indeed. The stanza’s (XML dumps) won’t include new insights, I think. I am hoping that with my changes, new things are written to the logfiles though, so please keep a close eye on those.
After Spark restart first time it closes chat window, but next window can’t be closed.
warn.log (this entry is repeating for a long time though):
Rgs 12, 2016 11:19:17 AM org.jivesoftware.spark.util.log.Log warning
WARNING: Could not activate PrivacyList Privacy List: spark:blackList(active:false, default:true)
error.log:
Rgs 12, 2016 10:50:06 AM org.jivesoftware.spark.util.log.Log error
SEVERE: A SparkTabbedPaneListener (org.jivesoftware.spark.ui.ChatContainer$1@1617920) threw an exception while processing a 'tabRemoved' event (tab: 'org.jivesoftware.spark.component.tabbedPane.SparkTab[,4,28,699x473,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,699x473,invalid,layout=java.awt.GridBagLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.MatteBorder@28831a,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.component.tabbedPane.SparkTabbedPane$TabPanel$1$1.finished(SparkTabbedPane.java:412)
at org.jivesoftware.spark.util.SwingWorker.lambda$null$0(SwingWorker.java:150)
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)
The privacy list issue is annoying, as the actual exception is being printed to your console, not to the log files. I’ve fixed that here: https://issues.igniterealtime.org/browse/SPARK-1805 . With that change, raise a new issue for the privacy list issue (including whatever stack trace is added to the warning log file).
All of these issues were unrelated @Gretchen Raff’s issue though.
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: