RFR 8048840: File.createTempFile has uninformative failure message
Stuart Marks
stuart.marks at oracle.com
Tue Jul 1 23:29:20 UTC 2014
On 7/1/14 1:34 AM, Alan Bateman wrote:
> On 01/07/2014 02:21, Jeremy Manson wrote:
>> diff --git a/src/share/classes/java/io/File.java
>> b/src/share/classes/java/io/File.java
>> --- a/src/share/classes/java/io/File.java
>> +++ b/src/share/classes/java/io/File.java
>> @@ -1998,7 +1998,8 @@
>> throws IOException
>> {
>> if (prefix.length() < 3)
>> - throw new IllegalArgumentException("Prefix string too short");
>> + throw new IllegalArgumentException("Prefix string too short: "
>> +
>> + prefix);
> I assume you meant to "+ prefix" here, in which case the change seems okay to
> me. The update to the NulFile test seems okay too.
Ha! I was wondering about this too. Turns out that the trailing "+" on the
"throw new" line was wrapped to the beginning of the next line, making it appear
to be the addition of an extra, blank line.
> diff --git a/test/java/io/File/NulFile.java b/test/java/io/File/NulFile.java
> --- a/test/java/io/File/NulFile.java
> +++ b/test/java/io/File/NulFile.java
> @@ -602,7 +602,8 @@
> try {
> File.createTempFile(prefix, suffix, directory);
> } catch (IllegalArgumentException ex) {
> - if ("Prefix string too short".equals(ex.getMessage()))
> + String s = ex.getMessage();
> + if (s != null && s.startsWith("Prefix string too short"))
> exceptionThrown = true;
> } catch (IOException ioe) {
> System.err.println("IOException happens in
> testCreateTempFile");
I'd advocate removing the string-testing logic from this catch-clause. I'm
somewhat allergic to tests that make assertions about the contents of things
like error messages. It generally doesn't add any value, but it increases
maintenance effort -- like in this case.
s'marks
More information about the core-libs-dev
mailing list