[ http://jira.magnolia.info/browse/MAGNOLIA-1552?page=comments#action_14499
]
Amir Mistric commented on MAGNOLIA-1552:
----------------------------------------
OK
This issue was really starting to annoy me so I decided to take a look into the
code and here is what I found out.
info.magnolia.module.admininterface.DialogMVCHandler.getStorageNode() on line
305 passed a "path" String to HierarchyMaanger in order to get content.
This "path" seems to be obtained via URL request parameter called mgnlPath
which is processed via RequestFormUtil static helper class...
path is defined as
protected String path = StringUtils.EMPTY;
so it should not be null but in the constructor it is being reset by a method
from RequestFormUtil
path = params.getParameter("mgnlPath");
which could reset it to null (not only path but other fields as well)
The problem seems to be that at no point there is a check if this parameter is
not null....And the "mgnlPath" request parameter is not always being set it
seems.
I believe info.magnolia.cms.core.DefaultHierarchyManager.getContent() *should*
throw NPE but
info.magnolia.module.admininterface.DialogMVCHandler.getStorageNode() should
check if this parameter is null AND if its value is something meaningful...
So on line 305 of info.magnolia.module.admininterface.DialogMVCHandler there
should be something like:
if (this.path == null) {
this.path = "WHAT SHOULD THIS BE IF IT IS NULL?";
}
Content parentContent = hm.getContent(path);
> Clicking save on users,groups, or roles dialog throws an NPE
> ------------------------------------------------------------
>
> Key: MAGNOLIA-1552
> URL: http://jira.magnolia.info/browse/MAGNOLIA-1552
> Project: Magnolia
> Issue Type: Bug
> Affects Versions: 3.1 M2
> Environment: 3.1-SNAPSHOT
> Reporter: Amir Mistric
> Assigned To: Philipp Bracher
>
> Steps
> 1. Edit any user,group, or role and enter some info (like an email address)
> 2. Click save
> ERROR
> org.apache.catalina.core.ContainerBase.[jboss.web].[webdev.nemours.org].[/magnolia-cms].[DialogServlet]
> 24.05.2007 11:57:10 -- Servlet.service() for servlet DialogServlet threw
> exception
> java.lang.NullPointerException
> at
> info.magnolia.cms.core.DefaultHierarchyManager.getContent(DefaultHierarchyManager.java:254)
> at
> info.magnolia.module.admininterface.DialogMVCHandler.getStorageNode(DialogMVCHandler.java:303)
> at
> info.magnolia.module.admininterface.DialogMVCHandler.getDialog(DialogMVCHandler.java:395)
> at
> info.magnolia.module.admininterface.DialogMVCHandler.renderHtml(DialogMVCHandler.java:355)
> at info.magnolia.cms.servlets.MVCServlet.doPost(MVCServlet.java:112)
> at info.magnolia.cms.servlets.MVCServlet.doGet(MVCServlet.java:48)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:42)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:50)
> at
> info.magnolia.cms.filters.MultipartRequestFilter.doFilter(MultipartRequestFilter.java:59)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.MgnlVirtualUriFilter.doFilter(MgnlVirtualUriFilter.java:54)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at info.magnolia.cms.cache.CacheFilter.doFilter(CacheFilter.java:97)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.i18n.I18NSupportFilter.doFilter(I18NSupportFilter.java:46)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:40)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:61)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:40)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:47)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.MgnlContextFilter.doFilter(MgnlContextFilter.java:40)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.MagnoliaMainFilter.doFilter(MagnoliaMainFilter.java:97)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
> at
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
> at
> org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
> at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> at
> org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
> at java.lang.Thread.run(Thread.java:619)
> ERROR
> org.apache.catalina.core.ContainerBase.[jboss.web].[webdev.nemours.org].[/magnolia-cms].[DialogServlet]
> 24.05.2007 11:57:10 -- Servlet.service() for servlet DialogServlet threw
> exception
> java.lang.NullPointerException
> at
> info.magnolia.cms.core.DefaultHierarchyManager.getContent(DefaultHierarchyManager.java:254)
> at
> info.magnolia.module.admininterface.DialogMVCHandler.getStorageNode(DialogMVCHandler.java:303)
> at
> info.magnolia.module.admininterface.DialogMVCHandler.getDialog(DialogMVCHandler.java:395)
> at
> info.magnolia.module.admininterface.DialogMVCHandler.renderHtml(DialogMVCHandler.java:355)
> at info.magnolia.cms.servlets.MVCServlet.doPost(MVCServlet.java:112)
> at info.magnolia.cms.servlets.MVCServlet.doGet(MVCServlet.java:48)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:42)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:50)
> at
> info.magnolia.cms.filters.MultipartRequestFilter.doFilter(MultipartRequestFilter.java:59)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.MgnlVirtualUriFilter.doFilter(MgnlVirtualUriFilter.java:54)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at info.magnolia.cms.cache.CacheFilter.doFilter(CacheFilter.java:97)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.i18n.I18NSupportFilter.doFilter(I18NSupportFilter.java:46)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:40)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:61)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:40)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:47)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.MgnlContextFilter.doFilter(MgnlContextFilter.java:40)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.MagnoliaMainFilter.doFilter(MagnoliaMainFilter.java:97)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
> at
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
> at
> org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
> at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> at
> org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
> at java.lang.Thread.run(Thread.java:619)
> ERROR
> org.apache.catalina.core.ContainerBase.[jboss.web].[webdev.nemours.org].[/magnolia-cms].[DialogServlet]
> 24.05.2007 11:57:10 -- Servlet.service() for servlet DialogServlet threw
> exception
> java.lang.NullPointerException
> at
> info.magnolia.cms.core.DefaultHierarchyManager.getContent(DefaultHierarchyManager.java:254)
> at
> info.magnolia.module.admininterface.DialogMVCHandler.getStorageNode(DialogMVCHandler.java:303)
> at
> info.magnolia.module.admininterface.DialogMVCHandler.getDialog(DialogMVCHandler.java:395)
> at
> info.magnolia.module.admininterface.DialogMVCHandler.renderHtml(DialogMVCHandler.java:355)
> at info.magnolia.cms.servlets.MVCServlet.doPost(MVCServlet.java:112)
> at info.magnolia.cms.servlets.MVCServlet.doGet(MVCServlet.java:48)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:42)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:50)
> at
> info.magnolia.cms.filters.MultipartRequestFilter.doFilter(MultipartRequestFilter.java:59)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.MgnlVirtualUriFilter.doFilter(MgnlVirtualUriFilter.java:54)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at info.magnolia.cms.cache.CacheFilter.doFilter(CacheFilter.java:97)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.i18n.I18NSupportFilter.doFilter(I18NSupportFilter.java:46)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:40)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:61)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:40)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:47)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.MgnlContextFilter.doFilter(MgnlContextFilter.java:40)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
> at
> info.magnolia.cms.filters.MagnoliaMainFilter.doFilter(MagnoliaMainFilter.java:97)
> at
> info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
> at
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
> at
> org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
> at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> at
> org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
> at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.magnolia.info/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
----------------------------------------------------------------
for list details see
http://documentation.magnolia.info/docs/en/editor/stayupdated.html
----------------------------------------------------------------