[BLUEJ-37] Compiler does not show error messages
If the project is in a path which contains one of the danish letters '?' '?' or '?' (and probably many other characters as well) the following problem occur:
If a a class has a syntax error, it doesn't report it. The editor status bar just says "File saved" and the main BlueJ window shows "Compiling..." in the status bar. From that point on, it is no longer possible to compile \- even if the syntax error is removed.
If there are no syntax errors everything works fine.
This has been observed with jdk 1.4.2_09 and 1.5.0_02 on OS X. It seems to work on Linux with jdk 1.4.2_09
------- Comment BLUEJ-1 From Davin McCall 2005-10-12 07:49:06 [reply] -------
At least a small part of the problem seems to be a java bug. Mac filenames seem to be UTF-8 encoded, but it seems that the File.listFiles() method doesn't correctly decode the '?' character (it comes back as "a?" \- maybe because its UTF8 representation is two bytes), which causes some problems.
'?' and '?' on the other hand didn't cause me any problems, once I had set the compiler type to "internal" (it was set to "javac" in the bluej.properties file, not sure how that ever happened, but it may have been causing the problems as well). Not that setting to "javac" should really cause too much of a problem; will have to investigate further.
\- Davin
------- Comment BLUEJ-2 From Michael K?lling 2006-04-26 12:02:21 [reply] -------
*** Bug 1014 has been marked as a duplicate of this bug. ***
------- Comment BLUEJ-3 From Davin McCall 2006-08-30 02:21:29 [reply] -------
It appears that this is a general problem which can occur on all platforms. The output of the compiler when an error occurs includes the full path to the source file which contains the error. This string is encoded using the system character encoding (when output) and is then decoded, hopefully using the same encoding, by BlueJ to get the file path.
The problem occurs when the file path contains characters which aren't representable in the system character encoding. Then, characters are lost during output (normally turned into '?') and BlueJ never sees the proper path to the file.
The easiest way to work around the problem at the moment is to change the system character encoding (on Windows, this can be done through the control panel) or to avoid the use of project paths and package/class names with non-ascii characters.
As a proper fix, the way BlueJ executes the compiler can be modified to avoid the encoding/decoding step.
------- Comment BLUEJ-4 From Poul Henriksen 2006-08-30 08:37:07 [reply] -------
Subject: Re: Compiler does not show error messages
I am pretty sure that this is not the reason for the problem on the mac, as the character encoding I am using (MacRoman) can represent the danish letters.
I just tried creating a folder named "???" from the BlueJ "New Project". To make any sense, that must be created with the system character encoding, and should not fail if what you describe is the problem. But is does fail.
Issue metadata
- Issue type: Bug
- Priority: Low
- Fix versions: 3.0.6