[BLOSSOM-159] NPE when opening a new dialog Created: 28/Jan/14  Updated: 06/Dec/14  Resolved: 29/Jan/14

Status: Closed
Project: Blossom
Component/s: None
Affects Version/s: 2.0.2
Fix Version/s: 2.0.3

Type: Bug Priority: Blocker
Reporter: Jean-Charles Robert Assignee: Tobias Mattsson
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
causality
caused by BLOSSOM-152 DialogCreationContext returns Content... 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:

 Description   

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)
    


 Comments   
Comment by Tobias Mattsson [ 29/Jan/14 ]

Thanks for reporting this Jean-Charles. Version 2.0.3 has just been released to address this issue.

Comment by Jan Haderka [ 06/Dec/14 ]

Bulk close of old resolved tickets.

Generated at Sun Feb 11 23:30:43 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.