KeySetRemove.java revision 0
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza/*
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * Copyright 1999 Sun Microsystems, Inc. All Rights Reserved.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza *
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * This code is free software; you can redistribute it and/or modify it
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * under the terms of the GNU General Public License version 2 only, as
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * published by the Free Software Foundation.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza *
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * This code is distributed in the hope that it will be useful, but WITHOUT
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * version 2 for more details (a copy is included in the LICENSE file that
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * accompanied this code).
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza *
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * You should have received a copy of the GNU General Public License version
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * 2 along with this work; if not, write to the Free Software Foundation,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza *
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * CA 95054 USA or visit www.sun.com if you need additional information or
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * have any questions.
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza */
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza/**
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * @test
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza * @bug 4286765
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price * @summary HashMap and TreeMap entrySet().remove(k) spuriously returned
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price * false if the Map previously mapped k to null.
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price */
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Priceimport java.util.*;
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Prazapublic class KeySetRemove {
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza public static void main(String args[]) throws Exception {
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price Map m[] = {new HashMap(), new TreeMap()};
ebbab6bbae913efeadfa3c6a1b082664a125f95bDan Price for (int i=0; i<m.length; i++) {
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza m[i].put("bananas", null);
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza if (!m[i].keySet().remove("bananas"))
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza throw new Exception("Yes, we have no bananas: "+i);
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza }
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza }
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza}
ead1f93ee620d7580f7e53350fe5a884fc4f158aLiane Praza