jmix
jmix copied to clipboard
WebDAV: URISyntaxException in case of file with non-standard space symbol in name
- Open WebDAV documents view
- Try to upload file The_document with_long_name_and_no_spaces — копия.txt as new WebDAV document (I hope original symbols of the file name will be preserved for uploaded instance). ER: file uploaded without issues AR:
java.net.URISyntaxException: Illegal character in path at index 44: /The_document%20with_long_name_and_no_spaces —%20копия.txt
at java.base/java.net.URI$Parser.fail(URI.java:2974)
at java.base/java.net.URI$Parser.checkChars(URI.java:3145)
at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3227)
at java.base/java.net.URI$Parser.parse(URI.java:3186)
at java.base/java.net.URI.<init>(URI.java:623)
at io.jmix.webdav.listener.WebdavDocumentEventListener.buildFullPath(WebdavDocumentEventListener.java:172)
at io.jmix.webdav.listener.WebdavDocumentEventListener.onWebdavDocumentSaving(WebdavDocumentEventListener.java:73)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:348)
at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:233)
at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:165)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:174)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:145)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:437)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:370)
at io.jmix.data.impl.EntityEventManager.publishEntitySavingEvent(EntityEventManager.java:42)
at io.jmix.eclipselink.impl.JpaDataStore.saveAll(JpaDataStore.java:288)
at io.jmix.core.datastore.AbstractDataStore.save(AbstractDataStore.java:221)
at io.jmix.eclipselink.impl.JpaDataStore.save(JpaDataStore.java:227)
at io.jmix.core.impl.UnconstrainedDataManagerImpl.saveContextToStore(UnconstrainedDataManagerImpl.java:257)
at io.jmix.core.impl.UnconstrainedDataManagerImpl.save(UnconstrainedDataManagerImpl.java:216)
at io.jmix.webdav.service.impl.WebdavDocumentsManagementServiceImpl.createVersioningDocumentByFileRef(WebdavDocumentsManagementServiceImpl.java:694)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
at io.jmix.webdav.service.impl.WebdavDocumentsManagementServiceImpl$$SpringCGLIB$$0.createVersioningDocumentByFileRef(<generated>)
at io.jmix.webdavflowui.view.webdavdocument.WebdavDocumentListView.createWebdavDocument(WebdavDocumentListView.java:358)
at io.jmix.webdavflowui.view.webdavdocument.WebdavDocumentListView.onFileUploadSucceed(WebdavDocumentListView.java:349)
...