Spark 2.9.0 problem saving setting "Contacts"

Hi.

I can change all the settings in Spark and they save fine, but the settings in the Contacts tab sometimes don’t change if I log out.

image

log from Spark:

Aug 06, 2020 8:54:06 AM org.jivesoftware.spark.util.log.Log warning
WARNING: ChatRoomDecorator: finished it@muc.srv-chat.coleman.local
Aug 06, 2020 8:54:24 AM org.jivesoftware.spark.util.log.Log warning
WARNING: A chat entry appears to have been delivered out of order. The transcript window must be reordered!
Aug 06, 2020 8:54:24 AM org.jivesoftware.spark.util.log.Log warning
WARNING: A chat entry appears to have been delivered out of order. The transcript window must be reordered!
Aug 06, 2020 8:54:44 AM org.jivesoftware.spark.util.log.Log warning
WARNING: A chat entry appears to have been delivered out of order. The transcript window must be reordered!

These logs look unrelated. Can you explain better what exactly is happening (or not) and when?

I am doing a clean install of Spark 2.9.0
Then I connect to the openfire server and after that I open the “Contacts” tab and put the items as in my screenshot, after that I open the File> Exit tab or File>Logout and start Spark again, but my changes are not saved or are partially saved.
For example, I clicked on “Show empty groups” and “Show offline user” and turned off “Group offline users”
But only the first “Show empty groups” was applied

Update:
I noticed that this error occurs for me and does not occur for the user testuser because I have an auto-connection to the MUC room.


I look at the logs and see constant errors, I do not know how this is related.

рту 07, 2020 10:45:21 AM org.jivesoftware.spark.util.log.Log error
SEVERE: Closing Group Chat Room error.
org.jivesoftware.smack.SmackException$NotConnectedException: The connection XMPPTCPConnection[i.hlevnoy@srv-chat.coleman.local/SERVER] (0) is no longer connected. done=true smResumptionPossible=false
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketWriter.throwNotConnectedExceptionIfDoneAndResumptionNotPossible(XMPPTCPConnection.java:1439)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwNotConnectedExceptionIfAppropriate(XMPPTCPConnection.java:374)
	at org.jivesoftware.smack.AbstractXMPPConnection.sendStanza(AbstractXMPPConnection.java:720)
	at org.jivesoftware.smackx.muc.MultiUserChat.leave(MultiUserChat.java:793)
	at org.jivesoftware.spark.ui.rooms.GroupChatRoom.leaveChatRoom(GroupChatRoom.java:542)
	at org.jivesoftware.spark.ui.ChatContainer.leaveChatRoom(ChatContainer.java:578)
	at org.jivesoftware.spark.Workspace$1.shutdown(Workspace.java:146)
	at org.jivesoftware.MainWindow.fireWindowShutdown(MainWindow.java:214)
	at org.jivesoftware.MainWindow.shutdown(MainWindow.java:249)
	at org.jivesoftware.MainWindow$5.actionPerformed(MainWindow.java:543)
	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.AbstractButton.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
	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)

I just connected testuser to the MUC group and set up auto-connect to the room and after that the changes are not saved.

image

It’s hard to believe that due to MUC and auto-connection, some settings are not saved.

Error:

рту 07, 2020 10:59:53 AM org.jivesoftware.spark.util.log.Log error
SEVERE: Closing Group Chat Room error.
org.jivesoftware.smack.SmackException$NotConnectedException: The connection XMPPTCPConnection[testuser@srv-chat.coleman.local/Spark] (0) is no longer connected. done=true smResumptionPossible=false
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketWriter.throwNotConnectedExceptionIfDoneAndResumptionNotPossible(XMPPTCPConnection.java:1439)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwNotConnectedExceptionIfAppropriate(XMPPTCPConnection.java:374)
	at org.jivesoftware.smack.AbstractXMPPConnection.sendStanza(AbstractXMPPConnection.java:720)
	at org.jivesoftware.smackx.muc.MultiUserChat.leave(MultiUserChat.java:793)
	at org.jivesoftware.spark.ui.rooms.GroupChatRoom.leaveChatRoom(GroupChatRoom.java:542)
	at org.jivesoftware.spark.ui.ChatContainer.leaveChatRoom(ChatContainer.java:578)
	at org.jivesoftware.spark.Workspace$1.shutdown(Workspace.java:146)
	at org.jivesoftware.MainWindow.fireWindowShutdown(MainWindow.java:214)
	at org.jivesoftware.MainWindow.shutdown(MainWindow.java:249)
	at org.jivesoftware.sparkimpl.plugin.systray.SysTrayPlugin$5.actionPerformed(SysTrayPlugin.java:200)
	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.AbstractButton.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
	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)


and Warning:

рту 07, 2020 10:58:34 AM org.jivesoftware.spark.util.log.Log warning
WARNING: A chat entry appears to have been delivered out of order. The transcript window must be reordered!

Update2:

Yes, if you enter a room and then change the Spark settings, they are not saved.

Nice catch. Such a weird issue. Maybe this is related to recent changes made by @guus on how Spark saves settings. [SPARK-2142] - Ignite Realtime Jira