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

Editing an asset which has been deleted throws exception

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Fix
    • Neutral
    • None
    • 5.4.13, 5.5.4
    • None
    • None

    Description

      Steps to reproduce

      1) Publish an asset in author instance
      2) Edit that asset in public instance by cropping it but don't click "Save changes"
      3) Delete and publish that asset in author instance
      4) Click "Save changes" in public instance
      => Expected: A notification shows "The asset has been deleted"
      => Actual: Exception thrown

      2017-06-07 17:46:26,948 ERROR info.magnolia.event.SimpleEventBus                : Exception caught when dispatching info.magnolia.ui.mediaeditor.event.MediaEditorCompletedEvent with info.magnolia.dam.app.ui.field.upload.DamUploadField$2 eventHandler.
      java.lang.NullPointerException
      	at info.magnolia.ui.vaadin.integration.jcr.AbstractJcrNodeAdapter.getItemProperty(AbstractJcrNodeAdapter.java:168)
      	at info.magnolia.ui.vaadin.integration.jcr.JcrNodeAdapter.getItemProperty(JcrNodeAdapter.java:104)
      	at info.magnolia.ui.form.field.transformer.item.FileTransformer.isReadOnly(FileTransformer.java:304)
      	at info.magnolia.ui.form.field.transformer.TransformedProperty.isReadOnly(TransformedProperty.java:78)
      	at com.vaadin.ui.AbstractField.isReadOnly(AbstractField.java:205)
      	at info.magnolia.ui.form.field.upload.basic.BasicUploadField.getFileDetailFileName(BasicUploadField.java:317)
      	at info.magnolia.ui.form.field.upload.basic.BasicUploadField.createFileInfoComponent(BasicUploadField.java:291)
      	at info.magnolia.ui.form.field.upload.basic.BasicUploadField.buildCompletedLayout(BasicUploadField.java:204)
      	at info.magnolia.ui.form.field.upload.AbstractUploadField.updateDisplay(AbstractUploadField.java:164)
      	at info.magnolia.dam.app.ui.field.upload.DamUploadField.access$400(DamUploadField.java:92)
      	at info.magnolia.dam.app.ui.field.upload.DamUploadField$2.onSubmit(DamUploadField.java:221)
      	at info.magnolia.ui.mediaeditor.event.MediaEditorCompletedEvent.dispatch(MediaEditorCompletedEvent.java:88)
      	at info.magnolia.ui.mediaeditor.event.MediaEditorCompletedEvent.dispatch(MediaEditorCompletedEvent.java:46)
      	at info.magnolia.event.SimpleEventBus.fireEvent(SimpleEventBus.java:78)
      	at info.magnolia.ui.mediaeditor.MediaEditorPresenterImpl.complete(MediaEditorPresenterImpl.java:211)
      	at info.magnolia.ui.mediaeditor.MediaEditorPresenterImpl.onSubmit(MediaEditorPresenterImpl.java:169)
      	at info.magnolia.ui.mediaeditor.event.MediaEditorInternalEvent.dispatch(MediaEditorInternalEvent.java:83)
      	at info.magnolia.ui.mediaeditor.event.MediaEditorInternalEvent.dispatch(MediaEditorInternalEvent.java:43)
      	at info.magnolia.event.SimpleEventBus.fireEvent(SimpleEventBus.java:78)
      	at info.magnolia.ui.mediaeditor.action.ViewImageAction$1.onActionFired(ViewImageAction.java:84)
      	at info.magnolia.ui.dialog.actionarea.renderer.DefaultEditorActionRenderer$DefaultActionView$1.buttonClick(DefaultEditorActionRenderer.java:75)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508)
      	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198)
      	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161)
      	at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:977)
      	at com.vaadin.ui.Button.fireClick(Button.java:393)
      	at com.vaadin.ui.Button$1.click(Button.java:61)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:168)
      	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)
      	at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:291)
      	at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:184)
      	at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:92)
      	at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
      	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408)
      	at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:350)
      	at info.magnolia.ui.admincentral.AdmincentralVaadinServlet.service(AdmincentralVaadinServlet.java:131)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
      	at info.magnolia.cms.filters.ServletDispatchingFilter.doFilter(ServletDispatchingFilter.java:148)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      	at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:69)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58)
      	at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:67)
      	at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:202)
      	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:74)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:84)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      	at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:84)
      	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:94)
      	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.module.site.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:119)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:73)
      	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      	at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:127)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      	at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:155)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:128)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      	at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
      	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      	at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:107)
      	at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67)
      	at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108)
      	at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:94)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
      	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
      	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
      	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
      	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
      	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      	at java.lang.Thread.run(Thread.java:745)
      

      Use cases:
      + An author user deletes an asset but doesn't know that it's being edited by someone in public instance.
      + This issue also occurs on the same author instance. "author1" is editing an asset while "author2" is deleting and publishing it.

      Checklists

        Acceptance criteria

        Attachments

          Activity

            People

              Unassigned Unassigned
              hieu.nguyen Hieu Nguyen Duc
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Checklists

                  Bug DoR
                  Task DoD