--- old/src/java.base/share/classes/sun/misc/JavaLangAccess.java 2014-10-30 16:11:48.000000000 -0400 +++ new/src/java.base/share/classes/sun/misc/JavaLangAccess.java 2014-10-30 16:11:48.000000000 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2014, 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 @@ -142,4 +142,22 @@ * Invokes Integer.formatUnsignedInt(long val, int shift, char[] buf, int offset, int len) */ void formatUnsignedInt(int val, int shift, char[] buf, int offset, int len); + + /** + * Intern memberName in klass's memberNameTable, guarding against concurrent + * redefinition of klass. + * + * @param + * @param klass + * @param memberName + * @param redefined_count + * @return interned member name or null if a race is lost. + */ + > E internMemberName(Class klass, E memberName, int redefined_count); + + /** + * @param klass Class whose redefinition count is queried. + * @return redefinition count for klass + */ + int getClassRedefinedCount(Class klass); }