Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/javax/management/ObjectInstance/ObjectInstanceNullTest.java
38838 views
/*1* Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/*24* @test25* @bug 501566326* @summary Test ObjectInstance(name,null).hashCode() and .equals()27* @author Daniel Fuchs28* @run clean ObjectInstanceNullTest29* @run build ObjectInstanceNullTest30* @run main ObjectInstanceNullTest31*/3233import javax.management.*;3435public class ObjectInstanceNullTest {3637public static void testEquals(ObjectInstance n1, ObjectInstance n2) {38try {39if (!n1.equals(n2) || !n2.equals(n1)) {40System.err.println("Equals yields false for: "+41"["+n1.getObjectName()+" , "+42n1.getClassName()+"] ["+43n2.getObjectName()+" , "+44n2.getClassName()+"]");45System.exit(1);46}47} catch (Exception x) {48System.err.println("Equals failed for: "+49"["+n1.getObjectName()+" , "+50n1.getClassName()+"] ["+51n2.getObjectName()+" , "+52n2.getClassName()+"]: " + x);53x.printStackTrace();54System.exit(2);55}56try {57if (n1.hashCode() != n2.hashCode()) {58System.err.println("Different hashCode() for: "+59"["+n1.getObjectName()+" , "+60n1.getClassName()+"] ["+61n2.getObjectName()+" , "+62n2.getClassName()+"]");63System.exit(3);64}65} catch (Exception x) {66System.err.println("Hashcode failed for: "+67"["+n1.getObjectName()+" , "+68n1.getClassName()+"] ["+69n2.getObjectName()+" , "+70n2.getClassName()+"]: " + x);71x.printStackTrace();72System.exit(4);73}74}7576public static void testNotEquals(ObjectInstance n1, ObjectInstance n2) {77try {78if (n1.equals(n2) || n2.equals(n1)) {79System.err.println("Equals yields true for: "+80"["+n1.getObjectName()+" , "+81n1.getClassName()+"] ["+82n2.getObjectName()+" , "+83n2.getClassName()+"]");84System.exit(5);85}86} catch (Exception x) {87System.err.println("!Equals failed for: "+88"["+n1.getObjectName()+" , "+89n1.getClassName()+"] ["+90n2.getObjectName()+" , "+91n2.getClassName()+"]: " + x);92x.printStackTrace();93System.exit(6);94}95try {96if (n1.hashCode() == n2.hashCode()) {97System.out.println("Warning: Same hashCode() for: "+98"["+n1.getObjectName()+" , "+99n1.getClassName()+"] ["+100n2.getObjectName()+" , "+101n2.getClassName()+"]");102}103} catch (Exception x) {104System.err.println("Hashcode failed for: "+105"["+n1.getObjectName()+" , "+106n1.getClassName()+"] ["+107n2.getObjectName()+" , "+108n2.getClassName()+"]: " + x);109x.printStackTrace();110System.exit(7);111}112}113114public static void main(String[] args) throws Exception {115System.out.println("Test ObjectInstance(name,null).equals() and " +116"ObjectInstance(name,null).hashCode()");117try {118ObjectName toto1 = new ObjectName("Toto:foo=bar");119ObjectName toto2 = new ObjectName("Toto:bar=foo");120ObjectName clone1 = new ObjectName("Toto:bar=foo,cloned=yes");121ObjectName clone2 = new ObjectName("Toto:cloned=yes,bar=foo");122ObjectInstance n1 = new ObjectInstance(toto1,null);123ObjectInstance n2 = new ObjectInstance(toto1,null);124testEquals(n1,n1);125testEquals(n1,n2);126ObjectInstance n3 = new ObjectInstance(toto1,"Object");127ObjectInstance n4 = new ObjectInstance(toto1,"Object");128testEquals(n3,n3);129testEquals(n3,n4);130testNotEquals(n1,n3);131ObjectInstance n5 = new ObjectInstance(toto2,null);132ObjectInstance n6 = new ObjectInstance(toto2,"Object");133testEquals(n5,n5);134testEquals(n6,n6);135testNotEquals(n5,n1);136testNotEquals(n5,n3);137testNotEquals(n6,n1);138testNotEquals(n6,n3);139testNotEquals(n5,n6);140ObjectInstance n7 = new ObjectInstance(clone1,null);141ObjectInstance n8 = new ObjectInstance(clone2,null);142testEquals(n7,n8);143testNotEquals(n7,n1);144testNotEquals(n7,n5);145ObjectInstance n9 = new ObjectInstance(clone1,"Object");146ObjectInstance n10 = new ObjectInstance(clone2,"Object");147testEquals(n9,n10);148testNotEquals(n9,n1);149testNotEquals(n9,n5);150testNotEquals(n9,n7);151testNotEquals(n9,n8);152testNotEquals(n10,n1);153testNotEquals(n10,n5);154testNotEquals(n10,n7);155testNotEquals(n10,n8);156} catch( Exception x) {157System.err.println("Unexpected exception: " + x);158x.printStackTrace();159System.exit(8);160}161}162163}164165166