Red Hat Bugzilla – Bug 789154
javac error messages no longer contain the full path to the offending file
Last modified: 2012-10-19 13:20:46 EDT
Description of problem:
The latest version of javac produces error messages that no longer display the full path of the file containing the errors. This means that the error message no longer unambiguously identifies the offending file as soon as there is a collision in the leaf file names in a java project.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. mkdir tmp; echo "bar" > tmp/foo.java
2. javac tmp/foo.java
foo.java:1: reached end of file while parsing
tmp/foo.java:1: reached end of file while parsing
java-1.6.0-openjdk-devel-126.96.36.199-188.8.131.52.fc16.* produces the expected result above, so for now, yum downgrade allows me to work around this problem. Not a long term solution of course. A better workaround would be if there is a command line option to restore the full path, but I was unable to find any.
There are two reasons this is really a bug and not just a cosmetic issue.
1. I have to deal with some medium-to-large Java projects where the leaf file names are far from unique. Indeed there are some places where there is a directory containing subdirectories which in turn contain files with standardized identical names (50+ and growing of them). The old error message unambiguously identified the broken file. The new one leaves me guessing.
Changing the naming convention is outside my area of responsibility, its `other people's code'.
2. This kills any possibility for an editor to parse the error messages and bring up the offending source/line. Please understand that not everybody uses eclipse!
IMHO the best solution to this problem is to revert the change.
See also http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=638805
Assigning to Pavel.
Pavel, I looked into the issue and it looks like it is being caused due to this patch:
Can you please take a look when you have time?
Hmmm, as I recall, that patch was introduced specifically to fix this problem. But indeed, testing with 1.11 suggests it doesn't.
I'll check if removing the patch makes HEAD's behave match 7. If so, I'll commit the change.
Indeed, removing the patch does give the same behaviour as in previous releases, including not only 1.10, but 1.9 and 1.8. I was under the impression that this patch was added because 1.10 (to which it was going to be backported, but seemingly never was) changed the behaviour, compared to other releases. But these results suggest not.
Let's see what Pavel has to say. I think there was a TCK issue involved, which may since have been excluded, so some of this may have to happen internally.
For the benefit of public users, Pavel confirmed that the TCK issues surrounding this patch have been resolved through other means so the patch can be dropped.
Pavel, can you remove the patch from HEAD and the 1.11 branch? I'll approve on the mailing list. Thanks.
Of course, I'll do it. Thank you.