[MGNLUI-1143] Exception in case of outdated data in JcrContainer Created: 18/Apr/13  Updated: 23/Apr/13  Resolved: 19/Apr/13

Status: Closed
Project: Magnolia UI
Component/s: None
Affects Version/s: 5.0
Fix Version/s: 5.0

Type: Bug Priority: Blocker
Reporter: Daniel Lipp Assignee: Daniel Lipp
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates
relates to MGNLUI-1178 Action Execution should consistently ... Closed
causality
is causing MGNLUI-1134 App crashes after restore when some c... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:
Sprint: Iteration 2013-16

 Description   

Current implementations of JcrContainers quite often throw RuntimeRepositoryExceptions e.g. when an element with a certain itemId is no longer around in JCR. As containers are frequently triggered in the paint phase of Vaadin components this has to be strictly avoided as the whole application could crash else.

Also we should make sure that Views/Containers get refreshed when navigating back to SubApps.



 Comments   
Comment by Espen Jervidalo [ 19/Apr/13 ]

When editing an item e.g. marilyn. open the contacts in another browser and delete her there, switch to first browser and co back to browser subapp. see stacktrace further down.

review remarks:
info.magnolia.ui.workbench.tree.HierarchicalJcrContainer.ItemNameComparator
is not using the provided method. Would need to remove the static.

stacktrace:

Caused by: com.vaadin.ui.Table$CacheUpdateException: Error during Table cache update. Additional causes not shown.
at com.vaadin.ui.Table.maybeThrowCacheUpdateExceptions(Table.java:1665)
at com.vaadin.ui.Table.refreshRenderedCells(Table.java:1654)
at com.vaadin.ui.Table.refreshRowCache(Table.java:2588)
at com.vaadin.ui.Table.markAsDirtyRecursive(Table.java:1792)
at com.vaadin.server.AbstractClientConnector.markAsDirtyRecursive(AbstractClientConnector.java:477)
at com.vaadin.server.AbstractClientConnector.markAsDirtyRecursive(AbstractClientConnector.java:477)
at com.vaadin.server.AbstractClientConnector.markAsDirtyRecursive(AbstractClientConnector.java:477)
at com.vaadin.ui.AbstractComponent.setVisible(AbstractComponent.java:410)
at info.magnolia.ui.vaadin.tabsheet.MagnoliaTabSheet.updateTabContentVisibility(MagnoliaTabSheet.java:177)
at info.magnolia.ui.vaadin.tabsheet.MagnoliaTabSheet.setActiveTab(MagnoliaTabSheet.java:169)
at info.magnolia.ui.framework.app.AppFrameView$1.setActiveTab(AppFrameView.java:62)
at info.magnolia.ui.vaadin.tabsheet.MagnoliaTabSheet$1.setActiveTab(MagnoliaTabSheet.java:65)
... 94 more
Caused by: java.lang.NullPointerException
at info.magnolia.ui.workbench.column.AbstractColumnFormatter.getJcrItem(AbstractColumnFormatter.java:64)
at info.magnolia.ui.app.contacts.column.ContactNameColumnFormatter.generateCell(ContactNameColumnFormatter.java:66)
at com.vaadin.ui.Table.parseItemIdToCells(Table.java:2261)
at com.vaadin.ui.Table.getVisibleCellsNoCache(Table.java:2122)
at com.vaadin.ui.Table.refreshRenderedCells(Table.java:1643)
... 104 more
2013-04-19 16:37:39,616 WARN agnolia.ui.workbench.tree.HierarchicalJcrContainer: Cannot determine whether item is root - itemId: /mmonroe: javax.jcr.PathNotFoundException: /mmonroe

Comment by Daniel Lipp [ 19/Apr/13 ]

The NPE has actually existed before but has now been fixed as well.

Generated at Mon Feb 12 08:43:45 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.