Exception when only Image Link in document type

Hey all,

I’ve recently updated my local instance to the latest and greatest release (great work by the way, something about it just feels so much snappier!)

I’ve noticed that a document type that used to work just fine now has a problem.

The document type’s only field is an Image Link (Multiple, Orderable).

Interacting with documents of this type generates the following exception:

[INFO] [talledLocalContainer] 28.02.2023 00:13:33 ERROR http-nio-8080-exec-5 [SwallowExceptionMapper.mapUnexpectedExceptions:35] Unexpected error occurred
[INFO] [talledLocalContainer] java.lang.IllegalStateException: Unable to process parts as no multi-part configuration has been provided
[INFO] [talledLocalContainer] 	at org.apache.catalina.connector.Request.parseParts(Request.java:2866) ~[catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.connector.Request.getParts(Request.java:2834) ~[catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1098) ~[catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.wicket.protocol.http.servlet.MultipartServletWebRequestImpl.readServlet3Parts(MultipartServletWebRequestImpl.java:261) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.protocol.http.servlet.MultipartServletWebRequestImpl.parseFileParts(MultipartServletWebRequestImpl.java:200) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.markup.html.form.Form.handleMultiPart(Form.java:1464) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:793) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:202) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:146) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:630) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:280) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:222) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:910) ~[wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:63) ~[wicket-request-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:294) [wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:255) [wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:277) [wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:208) [wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:307) [wicket-core-9.7.0.jar:9.7.0]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.hippoecm.frontend.plugins.login.ConcurrentLoginFilter.doFilter(ConcurrentLoginFilter.java:42) [hippo-cms-login-15.1.3.jar:15.1.3]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) [spring-web-5.3.22.jar:5.3.22]
[INFO] [talledLocalContainer] 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.22.jar:5.3.22]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-5.3.22.jar:5.3.22]
[INFO] [talledLocalContainer] 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.22.jar:5.3.22]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:126) [spring-boot-2.6.10.jar:2.6.10]
[INFO] [talledLocalContainer] 	at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64) [spring-boot-2.6.10.jar:2.6.10]
[INFO] [talledLocalContainer] 	at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101) [spring-boot-2.6.10.jar:2.6.10]
[INFO] [talledLocalContainer] 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.22.jar:5.3.22]
[INFO] [talledLocalContainer] 	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119) [spring-boot-2.6.10.jar:2.6.10]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.22.jar:5.3.22]
[INFO] [talledLocalContainer] 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.22.jar:5.3.22]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359) [catalina.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) [tomcat-coyote.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-coyote.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889) [tomcat-coyote.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) [tomcat-coyote.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-util.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-util.jar:9.0.59]
[INFO] [talledLocalContainer] 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:9.0.59]
[INFO] [talledLocalContainer] 	at java.lang.Thread.run(Thread.java:834) [?:?]

Adding a normal field (like a String) to the document type fixes the problems.

Wondering if anyone else has the same problem?

Cheers,

Marnix

I can’t really say what is going on. I tried on an archetype project and a new document with an image link (multiple, ordered) doesn’t have the problem you describe. From what version were you upgrading? Can you share a yaml export of the namespace as it is when it throws that error?

Hi,

Thanks for your reply! Yes, you seem to be correct, I’ve also run up a new project and found it to just be working. I upgraded from 14.6 I believe (without looking).

I’ve had a closer look at the error message and figured there might be some dependency not upgraded properly. I’ll have to retrace my steps and see if there are some migration steps I missed that might impact the spring configurations or web.xml files that contain configuration information regarding multipart submissions.

I’ll report back once I’ve figured it out.

Thanks again!
Marnix

Figured it out! There was a difference between my cms/web.xml and the one generated by the archetype. The HstCmsContextLoaderListener listener definition was further down in my web.xml and for some reason mine was missing the HstFilter.

It works now, woop.

Thanks again,
Marnix

1 Like