Uploaded image for project: 'Magnolia UI'
  1. Magnolia UI
  2. MGNLUI-2966

Exception when working with the page tree containing a deleted page variant

XMLWordPrintable

    • Yes

      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).

        Acceptance criteria

              apchelintcev Aleksandr Pchelintcev
              weder Andreas Weder
              Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Bug DoR
                  Task DoD