6643627: JMX source code includes incorrect Java code
Javac compiler bug accepts incorrect code; JMX code inadvertently has such code Reviewed-by: dfuchs
This commit is contained in:
parent
86bf96a3b2
commit
4387f047bc
@ -1118,11 +1118,11 @@ public abstract class OpenConverter {
|
||||
final Class<ConstructorProperties> propertyNamesClass = ConstructorProperties.class;
|
||||
|
||||
Class targetClass = getTargetClass();
|
||||
Constructor[] constrs = targetClass.getConstructors();
|
||||
Constructor<?>[] constrs = targetClass.getConstructors();
|
||||
|
||||
// Applicable if and only if there are any annotated constructors
|
||||
List<Constructor> annotatedConstrList = newList();
|
||||
for (Constructor constr : constrs) {
|
||||
List<Constructor<?>> annotatedConstrList = newList();
|
||||
for (Constructor<?> constr : constrs) {
|
||||
if (Modifier.isPublic(constr.getModifiers())
|
||||
&& constr.getAnnotation(propertyNamesClass) != null)
|
||||
annotatedConstrList.add(constr);
|
||||
@ -1152,7 +1152,7 @@ public abstract class OpenConverter {
|
||||
// Also remember the set of properties in that constructor
|
||||
// so we can test unambiguity.
|
||||
Set<BitSet> getterIndexSets = newSet();
|
||||
for (Constructor constr : annotatedConstrList) {
|
||||
for (Constructor<?> constr : annotatedConstrList) {
|
||||
String[] propertyNames =
|
||||
constr.getAnnotation(propertyNamesClass).value();
|
||||
|
||||
@ -1309,10 +1309,10 @@ public abstract class OpenConverter {
|
||||
}
|
||||
|
||||
private static class Constr {
|
||||
final Constructor constructor;
|
||||
final Constructor<?> constructor;
|
||||
final int[] paramIndexes;
|
||||
final BitSet presentParams;
|
||||
Constr(Constructor constructor, int[] paramIndexes,
|
||||
Constr(Constructor<?> constructor, int[] paramIndexes,
|
||||
BitSet presentParams) {
|
||||
this.constructor = constructor;
|
||||
this.paramIndexes = paramIndexes;
|
||||
|
@ -1553,7 +1553,7 @@ class MetaData {
|
||||
private static String[] getConstructorProperties(Class type) {
|
||||
String[] names = null;
|
||||
int length = 0;
|
||||
for (Constructor constructor : type.getConstructors()) {
|
||||
for (Constructor<?> constructor : type.getConstructors()) {
|
||||
String[] value = getAnnotationValue(constructor);
|
||||
if ((value != null) && (length < value.length) && isValid(constructor, value)) {
|
||||
names = value;
|
||||
@ -1563,14 +1563,14 @@ class MetaData {
|
||||
return names;
|
||||
}
|
||||
|
||||
private static String[] getAnnotationValue(Constructor constructor) {
|
||||
private static String[] getAnnotationValue(Constructor<?> constructor) {
|
||||
ConstructorProperties annotation = constructor.getAnnotation(ConstructorProperties.class);
|
||||
return (annotation != null)
|
||||
? annotation.value()
|
||||
: null;
|
||||
}
|
||||
|
||||
private static boolean isValid(Constructor constructor, String[] names) {
|
||||
private static boolean isValid(Constructor<?> constructor, String[] names) {
|
||||
Class[] parameters = constructor.getParameterTypes();
|
||||
if (names.length != parameters.length) {
|
||||
return false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user