--- a/jdk/test/java/util/prefs/RemoveNullKeyCheck.java Wed May 09 07:28:12 2012 -0700
+++ b/jdk/test/java/util/prefs/RemoveNullKeyCheck.java Wed May 09 11:14:22 2012 -0700
@@ -22,23 +22,77 @@
*/
/* @test
- * @bug 7160242
+ * @bug 7160242 7165118
* @summary Check if NullPointerException is thrown if the key passed
* to remove() is null.
*/
import java.util.prefs.Preferences;
+import java.util.prefs.AbstractPreferences;
+import java.util.prefs.BackingStoreException;
public class RemoveNullKeyCheck {
+ private static boolean failed = false;
+
public static void main(String[] args) throws Exception {
- try {
- Preferences node = Preferences.userRoot().node("N1");
- node.remove(null);
- throw new RuntimeException("Expected NullPointerException " +
- "not thrown");
- } catch (NullPointerException npe) {
- System.out.println("NullPointerException thrown");
- }
+ checkPreferencesRemove();
+ checkAbstractPreferencesRemove();
+ if (failed) {
+ throw new RuntimeException("Expected NullPointerException " +
+ "not thrown");
+ }
+ }
+
+ public static void checkPreferencesRemove() {
+ try {
+ Preferences node = Preferences.userRoot().node("N1");
+ node.remove(null);
+ failed = true;
+ } catch (NullPointerException npe) {
+ }
+ }
+
+ public static void checkAbstractPreferencesRemove() {
+
+ Preferences abstrPrefs = new AbstractPreferences(null, "") {
+ @Override
+ protected void putSpi(String key, String value) {
+ }
+ @Override
+ protected String getSpi(String key) {
+ return null;
+ }
+ @Override
+ protected void removeSpi(String key) {
+ }
+ @Override
+ protected void removeNodeSpi() throws BackingStoreException {
+ }
+ @Override
+ protected String[] keysSpi() throws BackingStoreException {
+ return new String[0];
+ }
+ @Override
+ protected String[] childrenNamesSpi() throws BackingStoreException {
+ return new String[0];
+ }
+ @Override
+ protected AbstractPreferences childSpi(String name) {
+ return null;
+ }
+ @Override
+ protected void syncSpi() throws BackingStoreException {
+ }
+ @Override
+ protected void flushSpi() throws BackingStoreException {
+ }
+ };
+
+ try {
+ abstrPrefs.remove(null);
+ failed = true;
+ } catch(NullPointerException npe) {
+ }
}
}