[MAGNOLIA-7756] Wildcard search is crash in content app on Windows Created: 26/Mar/20  Updated: 05/Apr/22  Resolved: 31/Jan/22

Status: Closed
Project: Magnolia
Component/s: None
Affects Version/s: 5.7.6
Fix Version/s: None

Type: Bug Priority: Neutral
Reporter: Mercedes Iruela Assignee: Unassigned
Resolution: Obsolete Votes: 0
Labels: maintenance, to-verify
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Problem/Incident
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:
Story Points: 2
Team: DeveloperX

 Description   

The reason is the path check with a filesystem library. On windows, an InvalidPathException is thrown and not catched.

2020-03-26 15:12:02,730 ERROR info.magnolia.event.SimpleEventBus                : Exception caught when dispatching info.magnolia.ui.api.location.LocationChangedEvent with info.magnolia.ui.contentapp.browser.BrowserSubApp$1 eventHandler.
java.nio.file.InvalidPathException: Illegal char <> at index 4: trav
        at sun.nio.fs.WindowsPathParser.normalize(Unknown Source) ~[?:?]
        at sun.nio.fs.WindowsPathParser.parse(Unknown Source) ~[?:?]
        at sun.nio.fs.WindowsPathParser.parse(Unknown Source) ~[?:?]
        at sun.nio.fs.WindowsPath.parse(Unknown Source) ~[?:?]
        at sun.nio.fs.WindowsFileSystem.getPath(Unknown Source) ~[?:?]
        at java.nio.file.Paths.get(Unknown Source) ~[?:?]
        at info.magnolia.cms.core.Path.isAbsolute(Path.java:185) ~[magnolia-core-5.7.2.jar:?]
        at info.magnolia.ui.workbench.search.SearchJcrContainer.getQueryWhereClauseSearch(SearchJcrContainer.java:157) ~[magnolia-ui-workbench-5.7.2.jar:?]
        at info.magnolia.ui.workbench.search.SearchJcrContainer.getQueryWhereClause(SearchJcrContainer.java:110) ~[magnolia-ui-workbench-5.7.2.jar:?]
        at info.magnolia.ui.workbench.container.AbstractJcrContainer.constructJCRQuery(AbstractJcrContainer.java:536) ~[magnolia-ui-workbench-5.7.2.jar:?]
        at info.magnolia.ui.workbench.container.AbstractJcrContainer.updateSize(AbstractJcrContainer.java:678) ~[magnolia-ui-workbench-5.7.2.jar:?]
        at info.magnolia.ui.workbench.container.AbstractJcrContainer.refresh(AbstractJcrContainer.java:714) ~[magnolia-ui-workbench-5.7.2.jar:?]
        at info.magnolia.ui.workbench.list.ListPresenter.refresh(ListPresenter.java:122) ~[magnolia-ui-workbench-5.7.2.jar:?]
        at info.magnolia.ui.workbench.WorkbenchPresenter.setViewType(WorkbenchPresenter.java:216) ~[magnolia-ui-workbench-5.7.2.jar:?]
        at info.magnolia.ui.workbench.WorkbenchPresenter.resynch(WorkbenchPresenter.java:288) ~[magnolia-ui-workbench-5.7.2.jar:?]
        at info.magnolia.ui.contentapp.browser.BrowserPresenter.resync(BrowserPresenter.java:256) ~[magnolia-ui-contentapp-5.7.2.jar:?]
        at info.magnolia.ui.contentapp.browser.BrowserSubApp.restoreBrowser(BrowserSubApp.java:216) ~[magnolia-ui-contentapp-5.7.2.jar:?]
        at info.magnolia.ui.contentapp.browser.BrowserSubApp$1.onLocationChanged(BrowserSubApp.java:145) ~[magnolia-ui-contentapp-5.7.2.jar:?]
        at info.magnolia.ui.api.location.LocationChangedEvent.dispatch(LocationChangedEvent.java:64) ~[magnolia-ui-api-5.7.2.jar:?]
        at info.magnolia.ui.api.location.LocationChangedEvent.dispatch(LocationChangedEvent.java:42) ~[magnolia-ui-api-5.7.2.jar:?]
        at info.magnolia.event.SimpleEventBus.fireEvent(SimpleEventBus.java:75) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.event.ResettableEventBus.fireEvent(ResettableEventBus.java:70) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.ui.api.location.LocationController.goToWithoutChecks(LocationController.java:103) [magnolia-ui-api-5.7.2.jar:?]
        at info.magnolia.ui.api.location.LocationController.goTo(LocationController.java:97) [magnolia-ui-api-5.7.2.jar:?]
        at info.magnolia.ui.framework.app.AppControllerImpl.doFocus(AppControllerImpl.java:260) [magnolia-ui-framework-5.7.2.jar:?]
        at info.magnolia.ui.framework.app.AppControllerImpl.doStop(AppControllerImpl.java:284) [magnolia-ui-framework-5.7.2.jar:?]
        at info.magnolia.ui.framework.app.AppControllerImpl.stopCurrentApp(AppControllerImpl.java:199) [magnolia-ui-framework-5.7.2.jar:?]
        at info.magnolia.ui.framework.shell.ShellImpl.stopCurrentApp(ShellImpl.java:175) [magnolia-ui-framework-5.7.2.jar:?]
        at info.magnolia.ui.framework.shell.ShellImpl.access$300(ShellImpl.java:78) [magnolia-ui-framework-5.7.2.jar:?]
        at info.magnolia.ui.framework.shell.ShellImpl$2.stopCurrentApp(ShellImpl.java:140) [magnolia-ui-framework-5.7.2.jar:?]
        at info.magnolia.ui.vaadin.magnoliashell.MagnoliaShell.stopCurrentApp(MagnoliaShell.java:111) [magnolia-ui-vaadin-common-widgets-5.7.2.jar:5.7.2]
        at info.magnolia.ui.vaadin.magnoliashell.rpc.MagnoliaShellRpcDelegate.stopCurrentApp(MagnoliaShellRpcDelegate.java:63) [magnolia-ui-vaadin-common-widgets-5.7.2.jar:5.7.2]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
        at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:155) [vaadin-server-8.4.2.jar:8.4.2]
        at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:116) [vaadin-server-8.4.2.jar:8.4.2]
        at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:445) [vaadin-server-8.4.2.jar:8.4.2]
        at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:410) [vaadin-server-8.4.2.jar:8.4.2]
        at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274) [vaadin-server-8.4.2.jar:8.4.2]
        at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90) [vaadin-server-8.4.2.jar:8.4.2]
        at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) [vaadin-server-8.4.2.jar:8.4.2]
        at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1601) [vaadin-server-8.4.2.jar:8.4.2]
        at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:445) [vaadin-server-8.4.2.jar:8.4.2]
        at info.magnolia.ui.admincentral.AdmincentralVaadinServlet.service(AdmincentralVaadinServlet.java:141) [magnolia-ui-admincentral-5.7.2.jar:?]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) [servlet-api.jar:?]
        at info.magnolia.cms.filters.ServletDispatchingFilter.doFilter(ServletDispatchingFilter.java:148) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.virtualuri.VirtualUriFilter.doFilter(VirtualUriFilter.java:98) [magnolia-virtual-uri-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58) [magnolia-cache-core-5.6.2.jar:?]
        at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:67) [magnolia-cache-core-5.6.2.jar:?]
        at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:220) [magnolia-cache-core-5.6.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:89) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:77) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:84) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:94) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.module.site.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:119) [magnolia-site-1.2.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.multisite.filters.MultiSiteFilter.doFilter(MultiSiteFilter.java:120) [magnolia-module-multisite-1.3.5.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:73) [magnolia-cache-core-5.6.2.jar:?]
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:127) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:64) [magnolia-module-enterprise-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.personalization.preview.filter.PreviewFilter.doFilter(PreviewFilter.java:92) [magnolia-personalization-preview-app-1.6.2.jar:?]
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:155) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:128) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:107) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:110) [magnolia-core-5.7.2.jar:?]
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:96) [magnolia-core-5.7.2.jar:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.10]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.10]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) [catalina.jar:9.0.10]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [catalina.jar:9.0.10]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491) [catalina.jar:9.0.10]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [catalina.jar:9.0.10]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [catalina.jar:9.0.10]
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) [catalina.jar:9.0.10]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [catalina.jar:9.0.10]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [catalina.jar:9.0.10]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) [tomcat-coyote.jar:9.0.10]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-coyote.jar:9.0.10]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764) [tomcat-coyote.jar:9.0.10]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388) [tomcat-coyote.jar:9.0.10]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:9.0.10]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:9.0.10]
        at java.lang.Thread.run(Unknown Source) [?:?]

info.magnolia.ui.workbench.search.SearchJcrContainer#getQueryWhereClauseSearch is using:

if (Path.isAbsolute(escapedFullTextExpression)) {

This is deprecated, it should be changed as it is recommended:

/**
     * @deprecated since 5.5.3
     * for file system operation use for example {@link java.nio.file.Path#isAbsolute()}
     * jcr just simply check if path starts with "/"
     */
    public static boolean isAbsolute(String path) {
        if (path == null) {
            return false;
        }

        return path.startsWith("/") || Paths.get(path).isAbsolute();
    }

Steps to reproduce:
1. Install Magnolia 5.7.* in Windows.
2. Open JCR Browser (or any other content app).
3. Search '' or some text + ""
Several errors are thrown and the app is not responding.


Generated at Mon Feb 12 04:26:33 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.