[MGNLUI-2966] Exception when working with the page tree containing a deleted page variant Created: 04/Jun/14 Updated: 13/Jun/14 Resolved: 10/Jun/14 |
|
| Status: | Closed |
| Project: | Magnolia UI |
| Component/s: | pages app, tree/list |
| Affects Version/s: | 5.3 |
| Fix Version/s: | 5.3 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Andreas Weder | Assignee: | Aleksandr Pchelintcev |
| Resolution: | Fixed | Votes: | 1 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
5.3 eebundle snapshot from build #3405 (04.06.2014 11:22:33) |
||
| Attachments: |
|
||||||||||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||||||||||
| 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
|
||||||||||||||||||||||||||||
| Release notes required: |
Yes
|
||||||||||||||||||||||||||||
| Date of First Response: | |||||||||||||||||||||||||||||
| Description |
|
I've deleted a page variant and have published the deletion. I go through the work flow, assign the "publish deletion" task to me, then approve it. The page is successfully deleted. I then close Pulse and am back to Pages, which still shows the deleted&published page variant - that's fine: we can't push such an asynchronously triggered change yet. However, in order to update the view, I decided not to refresh the page, but close and open the master node. This causes an ArrayIndexOutOfBoundsException, shown below. The relevant part of the log file, including the publication of the deleted page, looks like this: 2014-06-04 15:29:39,269 INFO nolia.module.exchangetransactional.XAReceiveFilter: null User superuser successfully deactivated null on magnoliaPublic. 2014-06-04 15:29:39,941 INFO info.magnolia.module.activation.BaseSyndicatorImpl: Exchange: activation succeeded [/demo-project/about/subsection-articles/large-article/variants/variant-0] 2014-06-04 15:29:55,529 WARN gnolia.ui.workbench.container.AbstractJcrContainer: Couldn't find item info.magnolia.ui.vaadin.integration.jcr.JcrNodeItemId@4a94ab57 so property jcrName can't be retrieved! 2014-06-04 15:29:55,550 WARN gnolia.ui.workbench.container.AbstractJcrContainer: Couldn't find item info.magnolia.ui.vaadin.integration.jcr.JcrNodeItemId@4a94ab57 so property title can't be retrieved! 2014-06-04 15:29:55,550 WARN gnolia.ui.workbench.container.AbstractJcrContainer: Couldn't find item info.magnolia.ui.vaadin.integration.jcr.JcrNodeItemId@4a94ab57 so property mgnl:template can't be retrieved! 2014-06-04 15:29:55,550 WARN gnolia.ui.workbench.container.AbstractJcrContainer: Couldn't find item info.magnolia.ui.vaadin.integration.jcr.JcrNodeItemId@4a94ab57 so property status can't be retrieved! 2014-06-04 15:29:55,551 WARN gnolia.ui.workbench.container.AbstractJcrContainer: Couldn't find item info.magnolia.ui.vaadin.integration.jcr.JcrNodeItemId@4a94ab57 so property mgnl:lastModified can't be retrieved! 04.06.2014 15:29:55 com.vaadin.server.DefaultErrorHandler doDefault SCHWERWIEGEND: java.lang.ArrayIndexOutOfBoundsException: 16 at com.vaadin.ui.Table.removeRowsFromCacheAndFillBottom(Table.java:1913) at com.vaadin.ui.Table.paintPartialRowAdditions(Table.java:3348) at com.vaadin.ui.Table.paintPartialRowUpdate(Table.java:3279) at com.vaadin.ui.Table.doPaintContent(Table.java:3224) at com.vaadin.ui.Table.paintContent(Table.java:3195) at com.vaadin.ui.TreeTable.paintContent(TreeTable.java:496) at com.vaadin.server.LegacyPaint.paint(LegacyPaint.java:65) at com.vaadin.server.communication.LegacyUidlWriter.write(LegacyUidlWriter.java:81) at com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:106) at com.vaadin.server.communication.UidlRequestHandler.writeUidl(UidlRequestHandler.java:149) at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:97) at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:37) at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1371) at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:238) at info.magnolia.ui.admincentral.AdmincentralVaadinServlet.service(AdmincentralVaadinServlet.java:131) at [...] When I actually reload the page, the deleted page disappears, but the count on the "Variants" node is still wrong (shows 2, instead of 1 variant) and I get another exception: 04.06.2014 15:43:08 com.vaadin.server.DefaultErrorHandler doDefault SCHWERWIEGEND: java.lang.ArrayIndexOutOfBoundsException: -1 at java.util.ArrayList.get(ArrayList.java:324) at com.vaadin.ui.TreeTable$HierarchicalStrategy.getIdByIndex(TreeTable.java:310) at com.vaadin.ui.TreeTable.getIdByIndex(TreeTable.java:617) at com.vaadin.ui.TreeTable.getItemIds(TreeTable.java:879) at com.vaadin.ui.Table.getVisibleCellsNoCache(Table.java:2169) at com.vaadin.ui.Table.getVisibleCellsUpdateCacheRows(Table.java:1926) at com.vaadin.ui.Table.paintPartialRowUpdates(Table.java:3294) at com.vaadin.ui.Table.paintPartialRowUpdate(Table.java:3278) at com.vaadin.ui.Table.doPaintContent(Table.java:3224) at com.vaadin.ui.Table.paintContent(Table.java:3195) at com.vaadin.ui.TreeTable.paintContent(TreeTable.java:496) at com.vaadin.server.LegacyPaint.paint(LegacyPaint.java:65) at com.vaadin.server.communication.LegacyUidlWriter.write(LegacyUidlWriter.java:81) at com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:106) at com.vaadin.server.communication.UidlRequestHandler.writeUidl(UidlRequestHandler.java:149) at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:97) at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:37) at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1371) at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:238) at info.magnolia.ui.admincentral.AdmincentralVaadinServlet.service(AdmincentralVaadinServlet.java:131) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at [...] The problem remains until I close and re-open the Pages app. This has been observed on a 5.3 snapshot release (see environment). |
| Comments |
| Comment by Andreas Weder [ 06/Jun/14 ] |
|
Just verified with latest eebundle build #3416 (06.06.2014 15:18:51): this still happens. I tried to reproduce this also by deleting the "Variants" node and all its variants. We get the same behavior. In this case, probably due to the exception, the master node is still marked as „having variants“. |
| Comment by Aleksandr Pchelintcev [ 11/Jun/14 ] |
|
The issue fix could probably be more subtle/clear if the AppLifeCycleEvent#FOCUSED was propagated in all the relevant cases. |