I was hoping this would fix it too! But I suppose having the problem happen fairly consistently to me, and not very often to any of my users, is the best possible troubleshooting scenario.
Nothing relevant in the spark log files. I’ll give running spark from the command line a shot.
I’m running out of ideas, sadly. As long as there’s no way for me to reproduce this problem, it’s going to be hard to debug it.
You could try switching off plugins that you might have installed, toggle some settings, see if that makes a difference. Perhaps you’re lucky and find a cause that way. If your users don’t have this problem, then what’s different between your client and theirs?
No, I’d be surprised if it’s anything outside of Spark. Your client receives the message, it ‘simply’ does not display it. Spark has plugins of its own - I was referring to those.
Harhg. Would you be able to hook on a Java debugger and see what’s going on? I’m at a point where I don’t know what to recommend other than have an on-site Java developer debug your client…
Have you tried installing Spark on another computer, and log in with your credentials there - see if you can replicate it as consistently? Straws…
In any case, it’s around midnight here - I’m turning in. Hopefully, the morning comes with new insights…
Definitely go get some rest. I really appreciate all of your work on this. I’ll give running Spark on a different machine with my credentials a shot. If that doesn’t work, I’ll try some java debugging since I’ve done a little bit of java work myself. I’ll post back if I can figure anything out.
When wroot finds the time to merge my new changes at SPARK-1798: Handle exception thrown by eventhandler. by guusdk · Pull Request #217 · igniterealtime/Spark · GitHub and creates a new download, you’ll get a client that does a better job at logging errors. Perhaps that will tell us something.
So, Gretchen, you have to look in the logs for something relevant again with this build.
Btw, Guus, as Gretchen reported first, it started happening with 4.0.3. I have seen something similar just once and it was also after 4.0.3 upgrade. So this might still be related to some change in Openfire. It also happens with 2.7.7, so it wasn’t Smack 4 update.
I now have Spark 2.8.0.895 installed. Here’s another excerpt from my spark raw packets received around another message that didn’t show in my spark window. (The message itself is just “Sure” because that person was responding to a spark I’d sent him before I installed the new version).
I also just realized that Spark has one other odd behavior for me: when I double click on a contact in my list, it will open a new tab in my chat window for that contact, but the window doesn’t come to the top–it flashes and stays hidden behind all my other windows. If I bring the chat window up on top of my other windows, it has the new tab for the contact I just double clicked, but that tab isn’t the selected one, whatever tab I was on before is still selected.
I’m not 100% sure they’re related, and if not, this is not an issue that I would bother to report. If it is related, I thought this may give you a hint as to what’s going wrong.
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)