Opened 9 years ago

Closed 9 years ago

Last modified 5 weeks ago

#14596 closed defect (invalid)

InvalidPathException when clicking "Open file" due to a special filename — at Version 58

Reported by: bagage Owned by: bagage
Priority: normal Milestone:
Component: Core Version:
Keywords: template_report linux Cc: dbf, michael.vogt

Description (last modified by stoecker)

Summary: JOSM will issue an error for non-ASCII characters characters in filenames when system filenames use UTF-8, but the environment settings indicate otherwise. Solution is to fix the environment settings to properly set UTF-8!

What steps will reproduce the problem?

  1. Open JOSM with "LANG=C josm"
  2. Click "Open file" icon on top left

What is the expected result?

File chooser is opened and I can select a .*osm file.

What happens instead?

An InvalidPathException is thrown because I've got a file named "Capture d'écran de 2017-03-28 20-05-01.png"

Please provide any additional information below. Attach a screenshot if possible.

Note: running JOSM with "LANG=C.UTF-8 josm" solves the problem. Though, it could be cool if the error could be silently ignored/handled?

Build-Date:2017-03-30 17:49:38
Revision:11772
Is-Local-Build:true

Identification: JOSM/1.5 (11772 SVN en) Linux Debian GNU/Linux 9.0 (stretch)
Memory Usage: 349 MB / 1760 MB (95 MB allocated, but free)
Java version: 1.8.0_121-8u121-b13-4-b13, Oracle Corporation, OpenJDK 64-Bit Server VM
Screen: :0.0 1920x1080
Maximum Screen Size: 1920x1080
Java package: openjdk-8-jre:amd64-8u121-b13-4
Java ATK Wrapper package: libatk-wrapper-java:all-0.33.3-13

Plugins:
+ PicLayer (33148)
+ buildings_tools (33004)
+ conflation (0.5.2)
+ jts (32699)
+ rex (26)
+ todo (30000)
+ utilsplugin2 (33182)

Last errors/warnings:
- W: No configuration settings found.  Using hardcoded default values for all pools.
- W: Cannot start IPv4 remotecontrol server on port 8111: Address already in use (Bind failed)
- W: Cannot start IPv6 remotecontrol server on port 8111: Address already in use (Bind failed)
- W: Cannot start IPv4 remotecontrol https server on port 8112: Address already in use (Bind failed)
- W: Cannot start IPv6 remotecontrol https server on port 8112: Address already in use (Bind failed)
- E: Handled by bug report queue: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: ${HOME}/Capture d'��cran de 2017-03-30 22-09-31.png
- E: Handled by bug report queue: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: ${HOME}/Capture d'��cran de 2017-03-30 22-09-31.png
- E: Handled by bug report queue: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: ${HOME}/Capture d'��cran de 2017-03-30 22-09-31.png
- E: Handled by bug report queue: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: ${HOME}/Capture d'��cran de 2017-03-30 22-09-31.png
- E: Handled by bug report queue: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: ${HOME}/Capture d'��cran de 2017-03-30 22-09-31.png


=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: Basic L&F File Loading Thread (59)
java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: /home/gautier/Capture d'��cran de 2017-03-30 22-09-31.png
	at sun.nio.fs.UnixPath.encode(UnixPath.java:147)
	at sun.nio.fs.UnixPath.<init>(UnixPath.java:71)
	at sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:281)
	at java.nio.file.Paths.get(Paths.java:84)
	at sun.awt.shell.ShellFolder.getShellFolder(ShellFolder.java:247)
	at javax.swing.filechooser.FileSystemView.getFiles(FileSystemView.java:490)
	at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread.run0(BasicDirectoryModel.java:239)
	at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread.run(BasicDirectoryModel.java:228)

Change History (58)

comment:1 by Don-vip, 9 years ago

Keywords: linux added

comment:2 by Don-vip, 9 years ago

Owner: changed from team to bagage
Status: newneedinfo

From #14068 comments can you please try with --language=en command-line argument?

comment:3 by bagage, 9 years ago

Indeed it does solve my problem (eg. having JOSM in English) and do not have the crash.

I don't know if the UTF-8 issue should be fixed, still. There might(?) be users that run JOSM with system setup with LANG=C?

comment:4 by stoecker, 9 years ago

Resolution: invalid
Status: needinfoclosed

With C you explicitely specify that you have no UTF-8 system, but you pass UTF-8 data to JOSM. Nothing to fix here in my eyes - you simply should not use "C".

It would be better when filesystems would specify the encoding they use, but as far as I know such a functionality does not exist on operation system level.

comment:5 by bagage, 9 years ago

OK fair enough - it'll now use the --language=en option instead to avoid any troubles. Thanks!

comment:6 by stoecker, 7 years ago

Ticket #16694 has been marked as a duplicate of this ticket.

comment:7 by stoecker, 7 years ago

Ticket #16349 has been marked as a duplicate of this ticket.

comment:8 by stoecker, 7 years ago

Ticket #14735 has been marked as a duplicate of this ticket.

comment:9 by Don-vip, 7 years ago

Ticket #16720 has been marked as a duplicate of this ticket.

comment:10 by Don-vip, 7 years ago

Ticket #17150 has been marked as a duplicate of this ticket.

comment:11 by Don-vip, 6 years ago

Ticket #17597 has been marked as a duplicate of this ticket.

comment:12 by Don-vip, 6 years ago

Ticket #18288 has been marked as a duplicate of this ticket.

comment:13 by Don-vip, 6 years ago

Ticket #18448 has been marked as a duplicate of this ticket.

comment:14 by stoecker, 6 years ago

Ticket #18873 has been marked as a duplicate of this ticket.

comment:15 by stoecker, 6 years ago

Hmm, maybe we should catch this error and tell users not to use mismatching encoding specifications?

comment:16 by Don-vip, 6 years ago

There is no JOSM code involved in the stacktrace, I don't know if we can catch the error.

comment:17 by simon04, 6 years ago

We could output a warning at startup when JOSM is launched with LANG=C. Is there any good reason to do so?

in reply to:  17 comment:18 by stoecker, 6 years ago

Replying to simon04:

We could output a warning at startup when JOSM is launched with LANG=C. Is there any good reason to do so?

I don't think so. Most often it probably is a way to get JOSM using English.

But LANG=C is not wrong. It's only wrong if your filesystem uses UTF-8 encoding and you use non-ASCII filenames. It this case it must be LANG=C.UTF-8 like said above.

Catching the exception and saying something like : Your filesystem character encoding and the encoding JOSM runs ({0}) with don't match. Please fix your setup. If you use LANG=C, don't do it or try LANG=C.UTF-8. There error message is: {1}

Or something similar.

comment:19 by skyper, 6 years ago

Ticket #19244 has been marked as a duplicate of this ticket.

comment:20 by skyper, 6 years ago

Ticket #19204 has been marked as a duplicate of this ticket.

comment:21 by GerdP, 6 years ago

Ticket #19258 has been marked as a duplicate of this ticket.

comment:22 by GerdP, 6 years ago

Ticket #19262 has been marked as a duplicate of this ticket.

comment:23 by skyper, 6 years ago

Ticket #19278 has been marked as a duplicate of this ticket.

comment:24 by simon04, 5 years ago

Ticket #19608 has been marked as a duplicate of this ticket.

comment:25 by simon04, 5 years ago

Cc: dbf added

comment:26 by skyper, 5 years ago

Ticket #19776 has been marked as a duplicate of this ticket.

comment:27 by stoecker, 5 years ago

Ticket #19867 has been marked as a duplicate of this ticket.

comment:28 by GerdP, 5 years ago

Ticket #19940 has been marked as a duplicate of this ticket.

comment:29 by stoecker, 5 years ago

In 17203/josm:

add LANG setting to status report, see #14596

comment:30 by stoecker, 5 years ago

In 17204/josm:

add LANG setting to status report, see #14596, add lost if check

comment:31 by skyper, 5 years ago

Ticket #20194 has been marked as a duplicate of this ticket.

comment:32 by skyper, 5 years ago

Ticket #20268 has been marked as a duplicate of this ticket.

comment:33 by skyper, 5 years ago

Ticket #20301 has been marked as a duplicate of this ticket.

comment:34 by GerdP, 5 years ago

Ticket #20322 has been marked as a duplicate of this ticket.

in reply to:  29 comment:35 by skyper, 5 years ago

Replying to stoecker:

In 17203/josm:

add LANG setting to status report, see #14596

Strange the last duplicates and #20394 show Environment variable LANG: en_US.UTF-8 or similar in the status report.

comment:36 by Don-vip, 5 years ago

Ticket #20394 has been marked as a duplicate of this ticket.

comment:37 by skyper, 5 years ago

Ticket #20584 has been marked as a duplicate of this ticket.

comment:38 by skyper, 5 years ago

Ticket #20697 has been marked as a duplicate of this ticket.

comment:39 by mdk, 5 years ago

I found 8 tickets since LANG is added to the status report. They all show valid settings (as far as I could see):

Environment variable LANG: es_GT.UTF-8
Environment variable LANG: en_US.UTF-8
Environment variable LANG: en_US.UTF-8
Environment variable LANG: fr_FR.UTF-8
Environment variable LANG: uk_UA.UTF-8
Environment variable LANG: fr_FR.UTF-8
Environment variable LANG: en_US.UTF-8

You need to set a proper LANG on your OS or use the start option --language.

What is the definition of "proper" LANG?
If --language=en is working, but LANG=en_US.UTF-8 not, could JOSM not try to "translate" the value internally into a working value?

comment:41 by simon04, 5 years ago

In 17700/josm:

see #14596 - ShowStatusReportAction: add LANG, LC_ALL, file.encoding, sun.jnu.encoding (for all platforms)

comment:42 by simon04, 5 years ago

Revision:17699
Is-Local-Build:true
Build-Date:2021-04-01 20:26:49

Identification: JOSM/1.5 (17699 SVN de) Mac OS X 11.2.3
OS Build number: macOS 11.2.3 (20D91)
Memory Usage: 378 MB / 2048 MB (190 MB allocated, but free)
Java version: 16+36, Azul Systems, Inc., OpenJDK 64-Bit Server VM
Look and Feel: com.apple.laf.AquaLookAndFeel
Screen: Display 1 1440×900 (scaling 2,00×2,00) Display 2 3008×1692 (scaling 2,00×2,00)
Maximum Screen Size: 3008×1692
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: en_IE.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8

comment:43 by Don-vip, 5 years ago

Related JEP: https://openjdk.java.net/jeps/400
Not yet affected to any Java version, but may very well land in Java 17.

comment:44 by simon04, 5 years ago

Ticket #20726 has been marked as a duplicate of this ticket.

comment:45 by simon04, 5 years ago

Some issues (such as #20726) are related to Flathub. Flathub ticket: ​https://github.com/flathub/org.openstreetmap.josm/issues/31

Environment variable LANG: en_GB.UTF-8
System property file.encoding: ANSI_X3.4-1968
System property sun.jnu.encoding: ANSI_X3.4-1968

comment:46 by skyper, 5 years ago

Ticket #20998 has been marked as a duplicate of this ticket.

comment:47 by skyper, 5 years ago

Ticket #21025 has been marked as a duplicate of this ticket.

comment:48 by skyper, 5 years ago

Ticket #21076 has been marked as a duplicate of this ticket.

comment:49 by skyper, 5 years ago

Ticket #21089 has been marked as a duplicate of this ticket.

comment:50 by skyper, 4 years ago

Ticket #21158 has been marked as a duplicate of this ticket.

comment:51 by Don-vip, 4 years ago

Ticket #21453 has been marked as a duplicate of this ticket.

comment:52 by skyper, 4 years ago

Ticket #21459 has been marked as a duplicate of this ticket.

comment:53 by skyper, 4 years ago

Ticket #21863 has been marked as a duplicate of this ticket.

comment:54 by skyper, 4 years ago

Ticket #21899 has been marked as a duplicate of this ticket.

comment:55 by skyper, 4 years ago

Ticket #21983 has been marked as a duplicate of this ticket.

comment:56 by taylor.smock, 4 years ago

Ticket #21987 has been marked as a duplicate of this ticket.

comment:57 by taylor.smock, 4 years ago

Ticket #22031 has been marked as a duplicate of this ticket.

comment:58 by stoecker, 4 years ago

Description: modified (diff)

Add summary in red.

Note: See TracTickets for help on using tickets.