[MAGNOLIA-1107] NPE when editing a document with no filename Created: 04/Oct/06  Updated: 12/May/14  Resolved: 12/May/14

Status: Closed
Project: Magnolia
Component/s: admininterface
Affects Version/s: 3.0 RC3
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Anthony Ogier Assignee: Unassigned
Resolution: Outdated Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

JDK 1.4.2_12, Windows XP


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   

In the dms :

  • Post a new file in the /
  • Edit the file : delete the filename (replacing with "")
  • Save

The problem is here info.magnolia.module.admininterface.SaveHandlerImpl:861 :
if (data != null) {
if (fileName == null || fileName.equals(StringUtils.EMPTY))

{ fileName = doc.getFileName(); }

doc is null and fileName is empty... see line 574 in processBinary() function :
Document doc = getForm().getDocument(name);

Here is the stacktrace :
ERROR info.magnolia.cms.servlets.MVCServletHandlerImpl MVCServletHandlerImpl.java(execute:99) 04.10.2006 10:55:13 can't call command: save
java.lang.NullPointerException
at info.magnolia.module.admininterface.SaveHandlerImpl.saveDocument(SaveHandlerImpl.java:861)
at info.magnolia.module.admininterface.SaveHandlerImpl.processBinary(SaveHandlerImpl.java:589)
at info.magnolia.module.admininterface.SaveHandlerImpl.processSaveInfo(SaveHandlerImpl.java:260)
at info.magnolia.module.admininterface.SaveHandlerImpl.save(SaveHandlerImpl.java:192)
at info.magnolia.module.admininterface.DialogMVCHandler.onSave(DialogMVCHandler.java:287)
at info.magnolia.module.admininterface.DialogMVCHandler.save(DialogMVCHandler.java:186)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at info.magnolia.cms.servlets.MVCServletHandlerImpl.execute(MVCServletHandlerImpl.java:96)
at info.magnolia.cms.servlets.MVCServlet.doPost(MVCServlet.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at info.magnolia.cms.filters.MagnoliaManagedFilter$CustomFilterChain.doFilter(MagnoliaManagedFilter.java:102)
at info.magnolia.cms.filters.MgnlCmsFilter.doFilter(MgnlCmsFilter.java:109)
at info.magnolia.cms.filters.MagnoliaManagedFilter$CustomFilterChain.doFilter(MagnoliaManagedFilter.java:106)
at info.magnolia.cms.cache.CacheFilter.doFilter(CacheFilter.java:93)
at info.magnolia.cms.filters.MagnoliaManagedFilter$CustomFilterChain.doFilter(MagnoliaManagedFilter.java:106)
at info.magnolia.cms.filters.MgnlInterceptFilter.doFilter(MgnlInterceptFilter.java:128)
at info.magnolia.cms.filters.MagnoliaManagedFilter$CustomFilterChain.doFilter(MagnoliaManagedFilter.java:106)
at info.magnolia.cms.filters.MgnlContextFilter.doFilter(MgnlContextFilter.java:45)
at info.magnolia.cms.filters.MagnoliaManagedFilter$CustomFilterChain.doFilter(MagnoliaManagedFilter.java:106)
at info.magnolia.cms.security.SecurityFilter.doFilter(SecurityFilter.java:96)
at info.magnolia.cms.filters.MagnoliaManagedFilter$CustomFilterChain.doFilter(MagnoliaManagedFilter.java:106)
at info.magnolia.cms.filters.MultipartRequestFilter.doFilter(MultipartRequestFilter.java:80)
at info.magnolia.cms.filters.MagnoliaManagedFilter$CustomFilterChain.doFilter(MagnoliaManagedFilter.java:106)
at info.magnolia.cms.filters.MgnlVirtualUriFilter.doFilter(MgnlVirtualUriFilter.java:83)
at info.magnolia.cms.filters.MagnoliaManagedFilter$CustomFilterChain.doFilter(MagnoliaManagedFilter.java:106)
at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:66)
at info.magnolia.cms.filters.MagnoliaManagedFilter$CustomFilterChain.doFilter(MagnoliaManagedFilter.java:106)
at info.magnolia.cms.filters.MagnoliaManagedFilter.doFilter(MagnoliaManagedFilter.java:71)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
ERROR info.magnolia.context.WebContextImpl WebContextImpl.java(getHierarchyManager:116) 04.10.2006 10:55:26 the current jcr session has pending changes but shouldn't please set to debug level to see the dumped details



 Comments   
Comment by Jan Haderka [ 07/Aug/08 ]

Not reproducible with 3.6.1.
In fact you can create valid DMS document with no name and no file in it this way, but won't get the NPE.

Generated at Mon Feb 12 03:23:44 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.