Mercurial > hg > openjdk > jdk9 > jdk
changeset 7230:1652a22cf6e7
8010815: some constructors issues in com.sun.jndi.toolkit
Reviewed-by: alanb
author | xuelei |
---|---|
date | Tue, 28 May 2013 18:47:13 -0700 |
parents | b99d56d1aa3f |
children | e59d7f0f36f7 |
files | src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java |
diffstat | 3 files changed, 16 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java Tue May 28 14:02:49 2013 -0700 +++ b/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java Tue May 28 18:47:13 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2013, 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 @@ -90,14 +90,16 @@ * Constructs a new instance of Continuation. * @param top The name of the object that is to be resolved/operated upon. * This becomes the Continuation's 'starter' and is used to - * calculate the "resolved name" when filling in a NamingException. + * calculate the "resolved name" when filling in a NamingException. * @param environment The environment used by the caller. It is used - * when setting the "environment" of a CannotProceedException. + * when setting the "environment" of a CannotProceedException. */ + @SuppressWarnings("unchecked") // For Hashtable clone: environment.clone() public Continuation(Name top, Hashtable<?,?> environment) { super(); starter = top; - this.environment = environment; + this.environment = (Hashtable<?,?>) + ((environment == null) ? null : environment.clone()); } /**
--- a/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java Tue May 28 14:02:49 2013 -0700 +++ b/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java Tue May 28 18:47:13 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2013, 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 @@ -69,6 +69,7 @@ } } + @SuppressWarnings("unchecked") // For Hashtable clone: env.clone() public LazySearchEnumerationImpl(NamingEnumeration<Binding> candidates, AttrFilter filter, SearchControls cons, Context ctx, Hashtable<String, Object> env, boolean useFactory) @@ -76,7 +77,8 @@ this.candidates = candidates; this.filter = filter; - this.env = env; + this.env = (Hashtable<String, Object>) + ((env == null) ? null : env.clone()); this.context = ctx; this.useFactory = useFactory;
--- a/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java Tue May 28 14:02:49 2013 -0700 +++ b/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java Tue May 28 18:47:13 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2013, 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 @@ -53,7 +53,8 @@ @SuppressWarnings("unchecked") // Expect Hashtable<String, Object> public GenericURLContext(Hashtable<?,?> env) { // context that is not tied to any specific URL - myEnv = (Hashtable<String, Object>)env; // copied on write + myEnv = + (Hashtable<String, Object>)(env == null ? null : env.clone()); } public void close() throws NamingException { @@ -488,22 +489,19 @@ return result; } - @SuppressWarnings("unchecked") // clone() public Object removeFromEnvironment(String propName) throws NamingException { if (myEnv == null) { return null; } - myEnv = (Hashtable<String, Object>)myEnv.clone(); return myEnv.remove(propName); } - @SuppressWarnings("unchecked") // clone() public Object addToEnvironment(String propName, Object propVal) throws NamingException { - myEnv = (myEnv == null) - ? new Hashtable<String, Object>(11, 0.75f) - : (Hashtable<String, Object>)myEnv.clone(); + if (myEnv == null) { + myEnv = new Hashtable<String, Object>(11, 0.75f); + } return myEnv.put(propName, propVal); }