Uploaded image for project: 'Magnolia'
  1. Magnolia
  2. MAGNOLIA-7756

Wildcard search is crash in content app on Windows

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Neutral Neutral
    • None
    • 5.7.6
    • None

      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.

        Acceptance criteria

              Unassigned Unassigned
              miruela Mercedes Iruela
              DeveloperX
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Bug DoR
                  Task DoD