8073214: javadoc of Properties methods should specify NullPointerExceptions

Add test for null parameter and corresponding throws clause to load() methods

Reviewed-by: darcy
This commit is contained in:
Brian Burkhalter 2015-03-13 14:54:40 -07:00
parent 1382affe60
commit 17f8ee8cf0
2 changed files with 80 additions and 3 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -34,8 +34,6 @@ import java.io.Reader;
import java.io.Writer;
import java.io.OutputStreamWriter;
import java.io.BufferedWriter;
import java.security.AccessController;
import java.security.PrivilegedAction;
import jdk.internal.util.xml.PropertiesDefaultHandler;
@ -311,9 +309,11 @@ class Properties extends Hashtable<Object,Object> {
* input stream.
* @throws IllegalArgumentException if a malformed Unicode escape
* appears in the input.
* @throws NullPointerException if {@code reader} is null.
* @since 1.6
*/
public synchronized void load(Reader reader) throws IOException {
Objects.requireNonNull(reader, "reader parameter is null");
load0(new LineReader(reader));
}
@ -335,9 +335,11 @@ class Properties extends Hashtable<Object,Object> {
* input stream.
* @throws IllegalArgumentException if the input stream contains a
* malformed Unicode escape sequence.
* @throws NullPointerException if {@code inStream} is null.
* @since 1.2
*/
public synchronized void load(InputStream inStream) throws IOException {
Objects.requireNonNull(inStream, "inStream parameter is null");
load0(new LineReader(inStream));
}

View File

@ -0,0 +1,75 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
import java.util.Properties;
/*
* @test
* @bug 8073214
* @summary Basic tests of Properties methods.
*/
public class Basic
{
public static void main(String[] args) throws Exception
{
int failures = 0;
Properties props = new Properties();
try {
props.store((OutputStream)null, "comments");
failures++;
} catch (NullPointerException e) {
// do nothing
}
try {
props.store((Writer)null, "comments");
failures++;
} catch (NullPointerException e) {
// do nothing
}
try {
props.load((InputStream)null);
failures++;
} catch (NullPointerException e) {
// do nothing
}
try {
props.load((Reader)null);
failures++;
} catch (NullPointerException e) {
// do nothing
}
if (failures != 0) {
throw new RuntimeException("Basic failed with "
+ failures + " errors!");
}
}
}