You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I don't have the exact root cause on this, but here's as much info as I can provide:
At some point while using OWF the user's custom Dashboard config settings are saved (JSON string containing widget size/position etc).
This Dashboard save sometimes triggers a StaleObjectStateException (see Java stack trace below)
When this exception is thrown, garbage data [1] gets written into the layout_config column for that user in the Dashboard SQL table
Once the user tries to login again, that garbage data obviously isn't parseable JSON, so the user is permanently stuck and unable to login. If just one of the user's dashboards have this garbage layout_config data, OWF will fail to load.
End result is that OWF7 presents a "black screen" and nothing else to the end user. See more info in note [2]
Extra Notes:
[1] This garbage data tends to look similar to this: [Ljava.lang.String;@6661b6c
[2] To an informed dev, this will show a "Trying to decode an invalid JSON string" error in Console
Java Stack trace:
2013-07-29 16:45:58,182 ERROR [org.codehaus.groovy.grails.orm.hibernate.events.PatchedDefaultFlushEventListener] Could not synchronize database state with session org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ozone.owf.grails.person.Person#8]
at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1792)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435)
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
2013-07-29 16:45:58,346 ERROR [grails.app.filters.ozone.owf.grails.filters.SecurityFilters] Object of class [ozone.owf.grails.domain.Person] with identifier [8]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ozone.owf.grails.domain.Person#8
The text was updated successfully, but these errors were encountered:
Issue has shown up on the Google Groups a few times. Have not been able to replicate the situation. When you do encounter it though an admittedly less-than-optimal work-around is to delete the corrupted dashboard as noted here: delete from dashboard where layout_config like '%[Ljava.lang.String%';
We have noticed this will often occur when there are multiple logins both modifying and saving the layout. Removing the dashboard associated with the user typically fixes the issue. Inside the table, it looks like a bad serialization from JSON as the value in the table relates to java.
I don't have the exact root cause on this, but here's as much info as I can provide:
Extra Notes:
[1] This garbage data tends to look similar to this: [Ljava.lang.String;@6661b6c
[2] To an informed dev, this will show a "Trying to decode an invalid JSON string" error in Console
Java Stack trace:
The text was updated successfully, but these errors were encountered: