Issue
- Trying to import documents (or doing upgrades) from 6.1, errors as the following are gotten:
2021-07-01 11:02:08.680 ERROR [liferay/background_task-8][BackgroundTaskMessageListener:182] Unable to execute background task
com.liferay.exportimport.kernel.lar.PortletDataException: Invalid folder name Orden sobre subvenciones.
at com.liferay.exportimport.kernel.lar.BaseStagedModelDataHandler.importStagedModel(BaseStagedModelDataHandler.java:408)
at com.liferay.exportimport.kernel.lar.StagedModelDataHandlerUtil.importStagedModel(StagedModelDataHandlerUtil.java:381)
at com.liferay.exportimport.kernel.lar.StagedModelDataHandlerUtil.importStagedModel(StagedModelDataHandlerUtil.java:367)
at com.liferay.document.library.web.internal.lar.DLAdminPortletDataHandler.doImportData(DLAdminPortletDataHandler.java:271)
at com.liferay.exportimport.kernel.lar.BasePortletDataHandler.importData(BasePortletDataHandler.java:390)
at com.liferay.exportimport.internal.controller.PortletImportControllerImpl.importPortletData(PortletImportControllerImpl.java:419)
at com.liferay.exportimport.internal.controller.PortletImportControllerImpl.importPortletData(PortletImportControllerImpl.java:348)
at com.liferay.exportimport.internal.controller.PortletImportControllerImpl.doImportPortletInfo(PortletImportControllerImpl.java:1049)
at com.liferay.exportimport.internal.controller.PortletImportControllerImpl.importFile(PortletImportControllerImpl.java:299)
at com.liferay.portlet.exportimport.service.impl.ExportImportLocalServiceImpl.importPortletInfo(ExportImportLocalServiceImpl.java:445)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
....
at java.lang.Thread.run(Thread.java:748)
Caused by: com.liferay.document.library.kernel.exception.FolderNameException: Invalid folder name Orden sobre subvenciones.
at com.liferay.document.library.internal.util.DLValidatorImpl.validateDirectoryName(DLValidatorImpl.java:134)
at com.liferay.document.library.kernel.util.DLValidatorUtil.validateDirectoryName(DLValidatorUtil.java:48)
at com.liferay.portlet.documentlibrary.service.impl.DLFolderLocalServiceImpl.validateFolder(DLFolderLocalServiceImpl.java:1363)
at com.liferay.portlet.documentlibrary.service.impl.DLFolderLocalServiceImpl.validateFolder(DLFolderLocalServiceImpl.java:1388)
at com.liferay.portlet.documentlibrary.service.impl.DLFolderLocalServiceImpl.addFolder(DLFolderLocalServiceImpl.java:107)
at sun.reflect.GeneratedMethodAccessor744.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:50)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:69)
at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)
at com.liferay.portal.service.ServiceContextAdvice.invoke(ServiceContextAdvice.java:60)
at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)
at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49)
at com.sun.proxy.$Proxy146.addFolder(Unknown Source)
at com.liferay.portal.repository.liferayrepository.LiferayLocalRepository.addFolder(LiferayLocalRepository.java:170)
at com.liferay.portal.repository.util.LocalRepositoryWrapper.addFolder(LocalRepositoryWrapper.java:83)
at com.liferay.portal.repository.util.LocalRepositoryWrapper.addFolder(LocalRepositoryWrapper.java:83)
at com.liferay.portal.repository.util.LocalRepositoryWrapper.addFolder(LocalRepositoryWrapper.java:83)
at com.liferay.portal.repository.util.LocalRepositoryWrapper.addFolder(LocalRepositoryWrapper.java:83)
at com.liferay.portal.repository.util.LocalRepositoryWrapper.addFolder(LocalRepositoryWrapper.java:83)
at com.liferay.portal.repository.capabilities.CapabilityLocalRepository.addFolder(CapabilityLocalRepository.java:115)
at com.liferay.portlet.documentlibrary.service.impl.DLAppLocalServiceImpl.addFolder(DLAppLocalServiceImpl.java:347)
at sun.reflect.GeneratedMethodAccessor745.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:66)
at com.sun.proxy.$Proxy510.addFolder(Unknown Source)
at com.liferay.document.library.kernel.service.DLAppLocalServiceWrapper.addFolder(DLAppLocalServiceWrapper.java:228)
at sun.reflect.GeneratedMethodAccessor745.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:66)
at com.sun.proxy.$Proxy511.addFolder(Unknown Source)
at sun.reflect.GeneratedMethodAccessor745.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:50)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:69)
at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)
at com.liferay.portal.service.ServiceContextAdvice.invoke(ServiceContextAdvice.java:60)
at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)
at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49)
at com.sun.proxy.$Proxy149.addFolder(Unknown Source)
at com.liferay.document.library.internal.exportimport.data.handler.FolderStagedModelDataHandler.doImportStagedModel(FolderStagedModelDataHandler.java:287)
at com.liferay.document.library.internal.exportimport.data.handler.FolderStagedModelDataHandler.doImportStagedModel(FolderStagedModelDataHandler.java:64)
at com.liferay.exportimport.kernel.lar.BaseStagedModelDataHandler.importStagedModel(BaseStagedModelDataHandler.java:367)
... 38 more - Document names ended with the character "." were valid in 6.1 and are producing errors in the import process.
Environment
- Liferay Portal 6.2, DXP 7.0, DXP 7.1, DXP 7.2, DXP 7.3
Resolution
- This issue could be related to validating the last character passed to the file name. This validation was added in the 6.2 version.
- Since 6.2, the property
dl.char.last.blacklist
controls the characters allowed in the last position of file names. - By default, this property has the value shown below:
dl.char.last.blacklist=\\u0020,.
- As you can see, the character "." is not allowed by default. If there are file names ended with this character, you should delete the character "." from the property.