diff --git a/src/share/classes/javax/naming/directory/BasicAttributes.java b/src/share/classes/javax/naming/directory/BasicAttributes.java index 70ed5f4655af9ed8a222ba44cdbdf1b7514776cb..f58c12c5e67919f39b69e1bc0725b31b9634895b 100644 --- a/src/share/classes/javax/naming/directory/BasicAttributes.java +++ b/src/share/classes/javax/naming/directory/BasicAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2017, 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 @@ -302,8 +302,8 @@ public class BasicAttributes implements Attributes { s.defaultReadObject(); // read in the ignoreCase flag int n = s.readInt(); // number of attributes attrs = (n >= 1) - ? new Hashtable(n * 2) - : new Hashtable(2); // can't have initial size of 0 (grrr...) + ? new Hashtable<>(1 + (int) (Math.min(768, n) / .75f)) + : new Hashtable<>(2); // can't have initial size of 0 (grrr...) while (--n >= 0) { put((Attribute)s.readObject()); }