Uploaded image for project: 'Blossom'
  1. Blossom
  2. BLOSSOM-159

NPE when opening a new dialog

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Blocker Blocker
    • 2.0.3
    • 2.0.2
    • None
    • None

      It's impossible with version 2.0.2 to add a new component (in author mode) bescause the dialog is failing.
      The cause is a NullPointerException in class info.magnolia.module.blossom.dialog.BlossomConfiguredDialog method createDialog at line 76, because by creating a component the node is allowed to be null.
      This is a blocker and a regression after version 2.0.1

      I patched the class by replacing this line that simply tests if the node is null, and it solved the problem.

      BlossomConfiguredDialog#createDialog
      //context.setContentNode(storageNode.getJCRNode());
      context.setContentNode(storageNode != null ? storageNode.getJCRNode() : null);
      
      • This problem appears in the sample project blossom 2.0.2, so it's easy to test and reproduce it.
      • The dialog for editing a component makes no problem.
      • Here is the complete Stacktrace
        2014-01-28 12:24:13,398 ERROR fo.magnolia.module.admininterface.DialogMVCServlet: no dialog registered for name: adminInterface:editParagraph
        info.magnolia.module.admininterface.InvalidDialogHandlerException: Unable to instantiate a dialog handler for [adminInterface:editParagraph] due to a java.lang.reflect.InvocationTargetException exception
                at info.magnolia.module.admininterface.ConfiguredDialogHandlerProvider.getDialogHandler(ConfiguredDialogHandlerProvider.java:108)
                at info.magnolia.module.admininterface.DialogHandlerManager.getDialogHandler(DialogHandlerManager.java:93)
                at info.magnolia.module.admininterface.DialogMVCServlet.getHandler(DialogMVCServlet.java:69)
                at info.magnolia.cms.servlets.MVCServlet.doPost(MVCServlet.java:113)
                at info.magnolia.cms.servlets.MVCServlet.doGet(MVCServlet.java:70)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
                at info.magnolia.cms.filters.ServletDispatchingFilter.doFilter(ServletDispatchingFilter.java:123)
                at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
                at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:67)
                at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:70)
                at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58)
                at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:66)
                at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:153)
                at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:76)
                at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:84)
                at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:60)
                at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:86)
                at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:93)
                at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83)
                at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:75)
                at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
                at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:93)
                at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
                at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:91)
                at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:102)
                at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:131)
                at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
                at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
                at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:67)
                at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
                at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:108)
                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.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
                at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
                at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
                at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
                at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
                at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
                at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
                at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
                at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
                at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
                at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
                at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
                at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
                at org.eclipse.jetty.server.Server.handle(Server.java:370)
                at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
                at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
                at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
                at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
                at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
                at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
                at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
                at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
                at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
                at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
                at java.lang.Thread.run(Thread.java:722)
        Caused by: java.lang.reflect.InvocationTargetException
                at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
                at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
                at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
                at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
                at info.magnolia.module.admininterface.ConfiguredDialogHandlerProvider.getDialogHandler(ConfiguredDialogHandlerProvider.java:92)
                ... 89 more
        Caused by: java.lang.NullPointerException
                at info.magnolia.module.blossom.dialog.BlossomConfiguredDialog.createDialog(BlossomConfiguredDialog.java:76)
                at info.magnolia.module.admininterface.DialogMVCHandler.getDialog(DialogMVCHandler.java:474)
                at info.magnolia.module.admininterface.dialogs.ParagraphEditDialog.<init>(ParagraphEditDialog.java:78)
        

        Acceptance criteria

              tmattsson Tobias Mattsson
              jcrobert Jean-Charles Robert
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Bug DoR
                  Task DoD