Hello,
Have a question, wat makes the case special? What makes it illegal? is this a
general problem with unicode characters, outside of BMP, or is it an illegal
sequence or something else? What about latin9 euro sign for example? Do we need
to document somewhere that only ascii is allowed?
Could we use (or comment) the character with \u notation in the test source, so
it stays ascii (just to be sure and also to make the byte sequence apparent)
Finally, is the Test Class named wrong? (...Chart..)
> public class FileObjectEscapeChartInPathTest {
> private static final String REL_PATH_GREAT =
> "src/test/resources/test-data/好.txt";
Gruss
Bernd
--
http://bernd.eckenfels.net
________________________________
Von: [email protected] <[email protected]>
Gesendet: Sonntag, März 28, 2021 11:31 PM
An: [email protected]
Betreff: [commons-vfs] branch master updated: IllegalArgumentException: Bad
escape for Chinese characters in FileObject path #168.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git
The following commit(s) were added to refs/heads/master by this push:
new 7c56b5a IllegalArgumentException: Bad escape for Chinese characters
in FileObject path #168.
7c56b5a is described below
commit 7c56b5ab5e7826ddc443936d11145ee1be077e95
Author: Gary Gregory <[email protected]>
AuthorDate: Sun Mar 28 17:31:40 2021 -0400
IllegalArgumentException: Bad escape for Chinese characters in
FileObject path #168.
---
commons-vfs2/src/main/java/org/apache/commons/vfs2/FileObject.java | 2 +-
.../java/org/apache/commons/vfs2/FileObjectEscapeChartInPathTest.java | 2 --
src/changes/changes.xml | 3 +++
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileObject.java
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileObject.java
index fce79ac..1f5e2d2 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileObject.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileObject.java
@@ -307,7 +307,7 @@ public interface FileObject extends Comparable<FileObject>,
Iterable<FileObject>
* @since 2.7.0
*/
default URI getURI() {
- return URI.create(getName().getURI());
+ return URI.create(URI.create(getName().getURI()).toASCIIString());
}
/**
diff --git
a/commons-vfs2/src/test/java/org/apache/commons/vfs2/FileObjectEscapeChartInPathTest.java
b/commons-vfs2/src/test/java/org/apache/commons/vfs2/FileObjectEscapeChartInPathTest.java
index 8419dcc..66ab4b3 100644
---
a/commons-vfs2/src/test/java/org/apache/commons/vfs2/FileObjectEscapeChartInPathTest.java
+++
b/commons-vfs2/src/test/java/org/apache/commons/vfs2/FileObjectEscapeChartInPathTest.java
@@ -34,10 +34,8 @@ import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.SystemUtils;
import org.apache.commons.lang3.function.FailableFunction;
import org.apache.commons.vfs2.impl.StandardFileSystemManager;
-import org.junit.Ignore;
import org.junit.Test;
-@Ignore
public class FileObjectEscapeChartInPathTest {
private static final String REL_PATH_GREAT =
"src/test/resources/test-data/好.txt";
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index cac0154..56c4001 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -56,6 +56,9 @@ The <action> type attribute can be add,update,fix,remove.
<action type="fix" dev="ggregory" due-to="Boris Petrov, Gary Gregory,
Max Kellermann">
Fix NPE when closing a stream from a different thread #167. See also
#166.
</action>
+ <action type="fix" dev="ggregory" issue="VFS-798" due-to="XenoAmess,
Gary Gregory">
+ IllegalArgumentException: Bad escape for Chinese characters in
FileObject path #168.
+ </action>
<!-- UPDATES -->
<action type="update" dev="ggregory" due-to="Arturo Bernal">
Replace construction of FileInputStream and FileOutputStream objects
with Files NIO APIs. #164.