Illegal characters allowed in content name


#1

**Enonic version:**7.1.0 - content studio 2.2.4
OS: Linux + Windows

When on Linux I am able to create content of custom content types with a name that is not permissible on Windows. For instance, I can put a colon “:” in the name and save it successfully, but when I migrate the data to Windows, I get an error on import.
This is an example of the error I saw:

2020-03-30 12:44:12,303 ERROR s.r.enonic.datatoolbox.RcdScriptBean - Error while unarchiving exports
java.nio.file.InvalidPathException: Illegal char <:> at index 148: default-content-master-2020-03-30T11-48-30/content/ssb/kommunefakta/nokkeltall-kommunefakta/antall-plasser-i-helse-og-omsorgsinstitusjon/sporring-KF:-antall-plasser-i-helse-og-omsorgsinstitusjoner/_
/node.xml
at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:229)
at java.base/java.nio.file.Path.resolve(Path.java:515)
at systems.rcd.fwk.core.util.zip.impl.RcdSimpleZipService.instUnzip(RcdSimpleZipService.java:86)
at systems.rcd.fwk.core.util.zip.RcdZipService.unzip(RcdZipService.java:25)
at systems.rcd.enonic.datatoolbox.RcdDataScriptBean.lambda$unarchive$4(RcdDataScriptBean.java:76)
at systems.rcd.enonic.datatoolbox.RcdScriptBean.runSafely(RcdScriptBean.java:46)
at systems.rcd.enonic.datatoolbox.RcdDataScriptBean.unarchive(RcdDataScriptBean.java:73)
at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$29821$556A$export_upload.L:1#post#task(systems.rcd.enonic.datatoolbox:/services/export-upload/export-upload.js:15)
at jdk.nashorn.javaadapters.java_util_function_Function.apply(Unknown Source)
at com.enonic.xp.lib.task.TaskWrapper.runTask(TaskWrapper.java:38)
at com.enonic.xp.task.TaskProgressReporterContext.lambda$withContext$0(TaskProgressReporterContext.java:36)
at com.enonic.xp.lib.task.TaskWrapper.run(TaskWrapper.java:31)
at com.enonic.xp.impl.task.TaskWrapper.lambda$callTaskWithContext$0(TaskWrapper.java:90)
at com.enonic.xp.context.ContextImpl.callWith(ContextImpl.java:102)
at com.enonic.xp.impl.task.TaskWrapper.callTaskWithContext(TaskWrapper.java:89)
at com.enonic.xp.impl.task.TaskWrapper.doRun(TaskWrapper.java:75)
at com.enonic.xp.impl.task.TaskWrapper.run(TaskWrapper.java:59)