-
Improvement
-
Resolution: Obsolete
-
Major
-
1.2.1
-
None
-
-
Empty show more show less
We have a dialog with an internal link field to the data module. This dialog is used by our editors which belong to our custom editors user role. We first had the problem that when these users try to create the link an error screen was shown (500 error) and the Tomcat localhost log showed:
Oct 23, 2008 2:37:23 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet default threw exception java.lang.NullPointerException at info.magnolia.module.data.trees.JCRAdminTree$1.prepareTree(JCRAdminTree.java:87) at info.magnolia.module.admininterface.AdminTreeMVCHandler.renderTree(AdminTreeMVCHandler.java:787) at info.magnolia.module.admininterface.AdminTreeMVCHandler.renderHtml(AdminTreeMVCHandler.java:751) at info.magnolia.cms.servlets.MVCServlet.doPost(MVCServlet.java:125) at info.magnolia.cms.servlets.MVCServlet.doGet(MVCServlet.java:69) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at info.magnolia.cms.filters.ServletDispatchingFilter.doFilter(ServletDispatchingFilter.java:162) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:71) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73) at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:71) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:115) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:75) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:71) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:57) at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:118) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:84) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73) at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:84) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:71) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:61) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:71) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:81) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:76) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:71) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:50) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:71) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:80) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:71) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:72) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:71) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71) at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:71) at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:97) at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:200) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) at java.lang.Thread.run(Thread.java:619)
The problem lies in this code in the JCRAdminTree class:
Content types = ContentUtil.getContent(ContentRepository.CONFIG, DataConsts.TYPES_NODE_PATH);
for (Iterator iter = types.getChildren(ItemType.CONTENTNODE).iterator(); iter.hasNext();) {
When the user in question has no read access to the 'types' node the second line results in a nullpointer. It would be nice to log a more informative message when 'types' is null?
The solution was to provide read access to the types node in our editor role. See screenshot.
Acceptance criteria
- is related to
-
MGNLDATA-55 jcr browser displays duplicated items in data module
- Closed