提交 585ffb5d 编写于 作者: E emcmanus

6763639: Remove "rawtypes" warnings from JMX code

Reviewed-by: dfuchs
上级 72cfca45
......@@ -44,13 +44,13 @@
<!-- because they depend on the values of BUILD_DATE and BUILD_DATE_SIMPLE -->
<!-- At this time, ./build.properties has not been loaded yet. -->
<property name="project.build.name" value="openjdk-bXX"/>
<property name="project.build.fulltag"
<property name="project.build.fulltag"
value="${ant.project.name}-${project.build.name}-${BUILD_DATE}" />
<!-- unchecked warnings will be fixed in JMX 2.0 as part of the work
being done on JSR 255 new features -->
<property name="javac.options"
value="-Xlint -Xlint:-unchecked -Xlint:-deprecation"/>
<property name="javac.options"
value="-Xlint -Xlint:-deprecation"/>
</target>
......@@ -58,13 +58,13 @@
<!-- Dir to keep generated stub source -->
<mkdir dir="${gensrc.dir}" />
</target>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- Call rmic-jmx subtargets -->
<target name="-rmic-jmx" depends="-init,-rmic-jmx-jrmp,-rmic-jmx-iiop"
description="Calls -init,-rmic-jmx-jrmp,-rmic-jmx-iiop"
description="Calls -init,-rmic-jmx-jrmp,-rmic-jmx-iiop"
/>
......@@ -96,7 +96,7 @@
<target name="-rmic-jmx-iiop" depends="-init,-check-jmx-iiop-uptodate" unless="jmx-iiop-uptodate"
description="Generate RMI IIOP stub class files for remote objects. Do not keep generated java files." >
<rmic base="${classes.dir}"
includeAntRuntime="no"
includeJavaRuntime="no"
......@@ -115,11 +115,11 @@
<target name="-check-jmx-iiop-uptodate" depends="-init">
<uptodate property="jmx-iiop-uptodate"
<uptodate property="jmx-iiop-uptodate"
srcfile="${classes.dir}/javax/management/remote/rmi/RMIConnectionImpl.class"
targetfile="${classes.dir}/org/omg/stub/javax/management/remote/rmi/_RMIConnectionImpl_Tie.class"
/>
<uptodate property="jmx-iiop-uptodate"
<uptodate property="jmx-iiop-uptodate"
srcfile="${classes.dir}/javax/management/remote/rmi/RMIServerImpl.class"
targetfile="${classes.dir}/org/omg/stub/javax/management/remote/rmi/_RMIServerImpl_Tie.class"
/>
......@@ -131,7 +131,7 @@
<target name="-post-compile" depends="-init,-rmic-jmx"
description="Jar JMX class files (including RMI stubs)" >
<mkdir dir="${dist.dir}/lib"/>
<jar jarfile="${dist.dir}/lib/${jar.jmx.name}"
<jar jarfile="${dist.dir}/lib/${jar.jmx.name}"
update="true"
index="false"
duplicate="fail">
......@@ -144,7 +144,7 @@
<attribute name="Specification-Version" value="${jar.jmx.spec.version}" />
<attribute name="Specification-Vendor" value="${jar.jmx.spec.vendor}" />
<attribute name="Implementation-Title" value="${jar.jmx.impl.title}" />
<attribute name="Implementation-Version" value="${project.build.fulltag}" />
<attribute name="Implementation-Version" value="${project.build.fulltag}" />
<attribute name="Implementation-Vendor" value="${jar.jmx.impl.vendor}" />
</section>
</manifest>
......
......@@ -141,7 +141,7 @@ public class LeaseManager {
}
private final Runnable callback;
private ScheduledFuture scheduled; // If null, the lease has expired.
private ScheduledFuture<?> scheduled; // If null, the lease has expired.
private final ScheduledExecutorService executor
= Executors.newScheduledThreadPool(1,
......
......@@ -128,7 +128,7 @@ public class LeaseRenewer {
};
private final Callable<Long> doRenew;
private ScheduledFuture future;
private ScheduledFuture<?> future;
private boolean closed = false;
private long nextRenewTime;
......
......@@ -247,7 +247,7 @@ public class DefaultMBeanServerInterceptor
MBeanRegistrationException, MBeanException,
NotCompliantMBeanException, InstanceNotFoundException {
Class theClass;
Class<?> theClass;
if (className == null) {
final RuntimeException wrapped =
......@@ -327,7 +327,7 @@ public class DefaultMBeanServerInterceptor
// ------------------------------
// ------------------------------
Class theClass = object.getClass();
Class<?> theClass = object.getClass();
Introspector.checkCompliance(theClass);
......@@ -808,9 +808,8 @@ public class DefaultMBeanServerInterceptor
// on each specific attribute
//
allowedAttributes = new AttributeList(attributes.size());
for (Iterator i = attributes.iterator(); i.hasNext();) {
for (Attribute attribute : attributes.asList()) {
try {
Attribute attribute = (Attribute) i.next();
checkMBeanPermission(mbeanServerName, classname, attribute.getName(),
name, "setAttribute");
allowedAttributes.add(attribute);
......@@ -1857,7 +1856,7 @@ public class DefaultMBeanServerInterceptor
}
}
private static void checkMBeanTrustPermission(final Class theClass)
private static void checkMBeanTrustPermission(final Class<?> theClass)
throws SecurityException {
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
......
......@@ -136,14 +136,14 @@ final class ClassLoaderRepositorySupport
new Hashtable<ObjectName,ClassLoader>(10);
// from javax.management.loading.DefaultLoaderRepository
public final Class loadClass(String className)
public final Class<?> loadClass(String className)
throws ClassNotFoundException {
return loadClass(loaders, className, null, null);
}
// from javax.management.loading.DefaultLoaderRepository
public final Class loadClassWithout(ClassLoader without, String className)
public final Class<?> loadClassWithout(ClassLoader without, String className)
throws ClassNotFoundException {
if (MBEANSERVER_LOGGER.isLoggable(Level.FINER)) {
MBEANSERVER_LOGGER.logp(Level.FINER,
......@@ -167,7 +167,7 @@ final class ClassLoaderRepositorySupport
}
public final Class loadClassBefore(ClassLoader stop, String className)
public final Class<?> loadClassBefore(ClassLoader stop, String className)
throws ClassNotFoundException {
if (MBEANSERVER_LOGGER.isLoggable(Level.FINER)) {
MBEANSERVER_LOGGER.logp(Level.FINER,
......@@ -187,10 +187,10 @@ final class ClassLoaderRepositorySupport
}
private Class loadClass(final LoaderEntry list[],
final String className,
final ClassLoader without,
final ClassLoader stop)
private Class<?> loadClass(final LoaderEntry list[],
final String className,
final ClassLoader without,
final ClassLoader stop)
throws ClassNotFoundException {
final int size = list.length;
for(int i=0; i<size; i++) {
......
......@@ -68,12 +68,12 @@ final class ConvertingMethod {
return method.getName();
}
OpenType getOpenReturnType() {
OpenType<?> getOpenReturnType() {
return returnMapping.getOpenType();
}
OpenType[] getOpenParameterTypes() {
final OpenType[] types = new OpenType[paramMappings.length];
OpenType<?>[] getOpenParameterTypes() {
final OpenType<?>[] types = new OpenType<?>[paramMappings.length];
for (int i = 0; i < paramMappings.length; i++)
types[i] = paramMappings[i].getOpenType();
return types;
......
......@@ -120,7 +120,7 @@ import javax.management.openmbean.TabularType;
*/
public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
static abstract class NonNullMXBeanMapping extends MXBeanMapping {
NonNullMXBeanMapping(Type javaType, OpenType openType) {
NonNullMXBeanMapping(Type javaType, OpenType<?> openType) {
super(javaType, openType);
}
......@@ -195,15 +195,15 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
static {
/* Set up the mappings for Java types that map to SimpleType. */
final OpenType[] simpleTypes = {
final OpenType<?>[] simpleTypes = {
BIGDECIMAL, BIGINTEGER, BOOLEAN, BYTE, CHARACTER, DATE,
DOUBLE, FLOAT, INTEGER, LONG, OBJECTNAME, SHORT, STRING,
VOID,
};
for (int i = 0; i < simpleTypes.length; i++) {
final OpenType t = simpleTypes[i];
Class c;
final OpenType<?> t = simpleTypes[i];
Class<?> c;
try {
c = Class.forName(t.getClassName(), false,
ObjectName.class.getClassLoader());
......@@ -224,7 +224,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
if (primitiveType != void.class) {
final Class<?> primitiveArrayType =
Array.newInstance(primitiveType, 0).getClass();
final OpenType primitiveArrayOpenType =
final OpenType<?> primitiveArrayOpenType =
ArrayType.getPrimitiveArrayType(primitiveArrayType);
final MXBeanMapping primitiveArrayMapping =
new IdentityMapping(primitiveArrayType,
......@@ -285,13 +285,13 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
Type componentType =
((GenericArrayType) objType).getGenericComponentType();
return makeArrayOrCollectionMapping(objType, componentType, factory);
} else if (objType instanceof Class) {
} else if (objType instanceof Class<?>) {
Class<?> objClass = (Class<?>) objType;
if (objClass.isEnum()) {
// Huge hack to avoid compiler warnings here. The ElementType
// parameter is ignored but allows us to obtain a type variable
// T that matches <T extends Enum<T>>.
return makeEnumMapping((Class) objClass, ElementType.class);
return makeEnumMapping((Class<?>) objClass, ElementType.class);
} else if (objClass.isArray()) {
Type componentType = objClass.getComponentType();
return makeArrayOrCollectionMapping(objClass, componentType,
......@@ -354,7 +354,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
}
private static <T extends Enum<T>> MXBeanMapping
makeEnumMapping(Class enumClass, Class<T> fake) {
makeEnumMapping(Class<?> enumClass, Class<T> fake) {
return new EnumMapping<T>(Util.<Class<T>>cast(enumClass));
}
......@@ -414,14 +414,14 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
final String objTypeName = objType.toString();
final MXBeanMapping keyMapping = factory.mappingForType(keyType, factory);
final MXBeanMapping valueMapping = factory.mappingForType(valueType, factory);
final OpenType keyOpenType = keyMapping.getOpenType();
final OpenType valueOpenType = valueMapping.getOpenType();
final OpenType<?> keyOpenType = keyMapping.getOpenType();
final OpenType<?> valueOpenType = valueMapping.getOpenType();
final CompositeType rowType =
new CompositeType(objTypeName,
objTypeName,
keyValueArray,
keyValueArray,
new OpenType[] {keyOpenType, valueOpenType});
new OpenType<?>[] {keyOpenType, valueOpenType});
final TabularType tabularType =
new TabularType(objTypeName, objTypeName, rowType, keyArray);
return new TabularMapping(objType, sortedMap, tabularType,
......@@ -440,8 +440,8 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
final Type rawType = objType.getRawType();
if (rawType instanceof Class) {
Class c = (Class<?>) rawType;
if (rawType instanceof Class<?>) {
Class<?> c = (Class<?>) rawType;
if (c == List.class || c == Set.class || c == SortedSet.class) {
Type[] actuals = objType.getActualTypeArguments();
assert(actuals.length == 1);
......@@ -468,7 +468,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
return new MXBeanRefMapping(t);
}
private MXBeanMapping makeCompositeMapping(Class c,
private MXBeanMapping makeCompositeMapping(Class<?> c,
MXBeanMappingFactory factory)
throws OpenDataException {
......@@ -514,7 +514,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
final Method[] getters = new Method[nitems];
final String[] itemNames = new String[nitems];
final OpenType[] openTypes = new OpenType[nitems];
final OpenType<?>[] openTypes = new OpenType<?>[nitems];
int i = 0;
for (Map.Entry<String,Method> entry : getterMap.entrySet()) {
itemNames[i] = entry.getKey();
......@@ -546,7 +546,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
can be directly represented by an ArrayType, and an int needs no mapping
because reflection takes care of it. */
private static final class IdentityMapping extends NonNullMXBeanMapping {
IdentityMapping(Type targetType, OpenType openType) {
IdentityMapping(Type targetType, OpenType<?> openType) {
super(targetType, openType);
}
......@@ -576,7 +576,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
@Override
final Object toNonNullOpenValue(Object value) {
return ((Enum) value).name();
return ((Enum<?>) value).name();
}
@Override
......@@ -595,7 +595,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
private static final class ArrayMapping extends NonNullMXBeanMapping {
ArrayMapping(Type targetType,
ArrayType openArrayType, Class openArrayClass,
ArrayType<?> openArrayType, Class<?> openArrayClass,
MXBeanMapping elementMapping) {
super(targetType, openArrayType);
this.elementMapping = elementMapping;
......@@ -623,7 +623,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
if (javaType instanceof GenericArrayType) {
componentType =
((GenericArrayType) javaType).getGenericComponentType();
} else if (javaType instanceof Class &&
} else if (javaType instanceof Class<?> &&
((Class<?>) javaType).isArray()) {
componentType = ((Class<?>) javaType).getComponentType();
} else {
......@@ -651,8 +651,8 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
private static final class CollectionMapping extends NonNullMXBeanMapping {
CollectionMapping(Type targetType,
ArrayType openArrayType,
Class openArrayClass,
ArrayType<?> openArrayType,
Class<?> openArrayClass,
MXBeanMapping elementMapping) {
super(targetType, openArrayType);
this.elementMapping = elementMapping;
......@@ -662,26 +662,28 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
and all Sets to TreeSet. (TreeSet because it is a SortedSet,
so works for both Set and SortedSet.) */
Type raw = ((ParameterizedType) targetType).getRawType();
Class c = (Class<?>) raw;
Class<?> c = (Class<?>) raw;
final Class<?> collC;
if (c == List.class)
collectionClass = ArrayList.class;
collC = ArrayList.class;
else if (c == Set.class)
collectionClass = HashSet.class;
collC = HashSet.class;
else if (c == SortedSet.class)
collectionClass = TreeSet.class;
collC = TreeSet.class;
else { // can't happen
assert(false);
collectionClass = null;
collC = null;
}
collectionClass = Util.cast(collC);
}
@Override
final Object toNonNullOpenValue(Object value)
throws OpenDataException {
final Collection valueCollection = (Collection) value;
if (valueCollection instanceof SortedSet) {
Comparator comparator =
((SortedSet) valueCollection).comparator();
final Collection<?> valueCollection = (Collection<?>) value;
if (valueCollection instanceof SortedSet<?>) {
Comparator<?> comparator =
((SortedSet<?>) valueCollection).comparator();
if (comparator != null) {
final String msg =
"Cannot convert SortedSet with non-null comparator: " +
......@@ -725,7 +727,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
elementMapping.checkReconstructible();
}
private final Class<? extends Collection> collectionClass;
private final Class<? extends Collection<?>> collectionClass;
private final MXBeanMapping elementMapping;
}
......@@ -794,8 +796,8 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
@Override
final Object toNonNullOpenValue(Object value) throws OpenDataException {
final Map<Object, Object> valueMap = cast(value);
if (valueMap instanceof SortedMap) {
Comparator comparator = ((SortedMap) valueMap).comparator();
if (valueMap instanceof SortedMap<?,?>) {
Comparator<?> comparator = ((SortedMap<?,?>) valueMap).comparator();
if (comparator != null) {
final String msg =
"Cannot convert SortedMap with non-null comparator: " +
......@@ -806,7 +808,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
final TabularType tabularType = (TabularType) getOpenType();
final TabularData table = new TabularDataSupport(tabularType);
final CompositeType rowType = tabularType.getRowType();
for (Map.Entry entry : valueMap.entrySet()) {
for (Map.Entry<Object, Object> entry : valueMap.entrySet()) {
final Object openKey = keyMapping.toOpenValue(entry.getKey());
final Object openValue = valueMapping.toOpenValue(entry.getValue());
final CompositeData row;
......@@ -852,7 +854,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
}
private final class CompositeMapping extends NonNullMXBeanMapping {
CompositeMapping(Class targetClass,
CompositeMapping(Class<?> targetClass,
CompositeType compositeType,
String[] itemNames,
Method[] getters,
......@@ -901,7 +903,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
if (compositeBuilder != null)
return;
Class targetClass = (Class<?>) getJavaType();
Class<?> targetClass = (Class<?>) getJavaType();
/* In this 2D array, each subarray is a set of builders where
there is no point in consulting the ones after the first if
the first refuses. */
......@@ -973,7 +975,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
/** Converts from a CompositeData to an instance of the targetClass. */
private static abstract class CompositeBuilder {
CompositeBuilder(Class targetClass, String[] itemNames) {
CompositeBuilder(Class<?> targetClass, String[] itemNames) {
this.targetClass = targetClass;
this.itemNames = itemNames;
}
......@@ -1008,7 +1010,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
private static final class CompositeBuilderViaFrom
extends CompositeBuilder {
CompositeBuilderViaFrom(Class targetClass, String[] itemNames) {
CompositeBuilderViaFrom(Class<?> targetClass, String[] itemNames) {
super(targetClass, itemNames);
}
......@@ -1018,8 +1020,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
Class<?> targetClass = getTargetClass();
try {
Method fromMethod =
targetClass.getMethod("from",
new Class[] {CompositeData.class});
targetClass.getMethod("from", CompositeData.class);
if (!Modifier.isStatic(fromMethod.getModifiers())) {
final String msg =
......@@ -1071,7 +1072,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
If all the getters are OK, then the "applicable" method will return
an empty string and the other builders will be tried. */
private static class CompositeBuilderCheckGetters extends CompositeBuilder {
CompositeBuilderCheckGetters(Class targetClass, String[] itemNames,
CompositeBuilderCheckGetters(Class<?> targetClass, String[] itemNames,
MXBeanMapping[] getterConverters) {
super(targetClass, itemNames);
this.getterConverters = getterConverters;
......@@ -1115,7 +1116,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
Method[] setters = new Method[getters.length];
for (int i = 0; i < getters.length; i++) {
Method getter = getters[i];
Class returnType = getter.getReturnType();
Class<?> returnType = getter.getReturnType();
String name = propertyName(getter);
String setterName = "set" + name;
Method setter;
......@@ -1163,7 +1164,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
private static final class CompositeBuilderViaConstructor
extends CompositeBuilder {
CompositeBuilderViaConstructor(Class targetClass, String[] itemNames) {
CompositeBuilderViaConstructor(Class<?> targetClass, String[] itemNames) {
super(targetClass, itemNames);
}
......@@ -1171,7 +1172,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
final Class<ConstructorProperties> propertyNamesClass = ConstructorProperties.class;
Class targetClass = getTargetClass();
Class<?> targetClass = getTargetClass();
Constructor<?>[] constrs = targetClass.getConstructors();
// Applicable if and only if there are any annotated constructors
......@@ -1384,12 +1385,12 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
private static final class CompositeBuilderViaProxy
extends CompositeBuilder {
CompositeBuilderViaProxy(Class targetClass, String[] itemNames) {
CompositeBuilderViaProxy(Class<?> targetClass, String[] itemNames) {
super(targetClass, itemNames);
}
String applicable(Method[] getters) {
Class targetClass = getTargetClass();
Class<?> targetClass = getTargetClass();
if (!targetClass.isInterface())
return "not an interface";
Set<Method> methods =
......@@ -1401,7 +1402,7 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
String bad = null;
for (Method m : methods) {
String mname = m.getName();
Class[] mparams = m.getParameterTypes();
Class<?>[] mparams = m.getParameterTypes();
try {
Method om = Object.class.getMethod(mname, mparams);
if (!Modifier.isPublic(om.getModifiers()))
......@@ -1422,10 +1423,10 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
final Object fromCompositeData(CompositeData cd,
String[] itemNames,
MXBeanMapping[] converters) {
final Class targetClass = getTargetClass();
final Class<?> targetClass = getTargetClass();
return
Proxy.newProxyInstance(targetClass.getClassLoader(),
new Class[] {targetClass},
new Class<?>[] {targetClass},
new CompositeDataInvocationHandler(cd));
}
}
......@@ -1447,9 +1448,9 @@ public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory {
return openDataException(cause.getMessage(), cause);
}
static void mustBeComparable(Class collection, Type element)
static void mustBeComparable(Class<?> collection, Type element)
throws OpenDataException {
if (!(element instanceof Class)
if (!(element instanceof Class<?>)
|| !Comparable.class.isAssignableFrom((Class<?>) element)) {
final String msg =
"Parameter class " + element + " of " +
......
......@@ -115,7 +115,7 @@ public class Introspector {
* Dynamic MBeans, <code>false</code> otherwise.
*
**/
public static final boolean isDynamic(final Class c) {
public static final boolean isDynamic(final Class<?> c) {
// Check if the MBean implements the DynamicMBean interface
return javax.management.DynamicMBean.class.isAssignableFrom(c);
}
......@@ -134,7 +134,7 @@ public class Introspector {
* MBeanServer.
*
**/
public static void testCreation(Class c)
public static void testCreation(Class<?> c)
throws NotCompliantMBeanException {
// Check if the class is a concrete class
final int mods = c.getModifiers();
......@@ -143,7 +143,7 @@ public class Introspector {
}
// Check if the MBean has a public constructor
final Constructor[] consList = c.getConstructors();
final Constructor<?>[] consList = c.getConstructors();
if (consList.length == 0) {
throw new NotCompliantMBeanException("MBean class must have public constructor");
}
......@@ -253,7 +253,7 @@ public class Introspector {
* @exception NotCompliantMBeanException The specified class is not a
* JMX compliant MBean
*/
public static MBeanInfo testCompliance(Class baseClass)
public static MBeanInfo testCompliance(Class<?> baseClass)
throws NotCompliantMBeanException {
// ------------------------------
......@@ -267,7 +267,7 @@ public class Introspector {
return testCompliance(baseClass, null);
}
public static void testComplianceMXBeanInterface(Class interfaceClass,
public static void testComplianceMXBeanInterface(Class<?> interfaceClass,
MXBeanMappingFactory factory)
throws NotCompliantMBeanException {
MXBeanIntrospector.getInstance(factory).getAnalyzer(interfaceClass);
......@@ -596,10 +596,10 @@ public class Introspector {
ss[i] = (String) annotationToField(xx[i]);
return ss;
}
if (x instanceof Class)
if (x instanceof Class<?>)
return ((Class<?>) x).getName();
if (x instanceof Enum)
return ((Enum) x).name();
if (x instanceof Enum<?>)
return ((Enum<?>) x).name();
// The only other possibility is that the value is another
// annotation, or that the language has evolved since this code
// was written. We don't allow for either of those currently.
......
......@@ -33,6 +33,7 @@ import java.security.AccessController;
import java.security.Permission;
import java.security.PrivilegedExceptionAction;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
......@@ -1144,7 +1145,7 @@ public final class JmxMBeanServer
// This call requires MBeanPermission 'getClassLoaderRepository'
final ClassLoaderRepository clr = getClassLoaderRepository();
Class theClass;
Class<?> theClass;
try {
if (clr == null) throw new ClassNotFoundException(className);
theClass = clr.loadClass(className);
......@@ -1457,23 +1458,22 @@ public final class JmxMBeanServer
*/
private AttributeList cloneAttributeList(AttributeList list) {
if (list != null) {
List<Attribute> alist = list.asList();
if (!list.getClass().equals(AttributeList.class)) {
// Create new attribute list
//
AttributeList newList = new AttributeList(list.size());
AttributeList newList = new AttributeList(alist.size());
// Iterate through list and replace non JMX attributes
//
for (Iterator i = list.iterator(); i.hasNext(); ) {
Attribute attribute = (Attribute) i.next();
for (Attribute attribute : alist)
newList.add(cloneAttribute(attribute));
}
return newList;
} else {
// Iterate through list and replace non JMX attributes
//
for (int i = 0; i < list.size(); i++) {
Attribute attribute = (Attribute) list.get(i);
for (int i = 0; i < alist.size(); i++) {
Attribute attribute = alist.get(i);
if (!attribute.getClass().equals(Attribute.class)) {
list.set(i, cloneAttribute(attribute));
}
......
......@@ -70,7 +70,7 @@ public class MBeanInstantiator {
* instantiate an MBean of this class in the MBeanServer.
* e.g. it must have a public constructor, be a concrete class...
*/
public void testCreation(Class c) throws NotCompliantMBeanException {
public void testCreation(Class<?> c) throws NotCompliantMBeanException {
Introspector.testCreation(c);
}
......@@ -78,10 +78,10 @@ public class MBeanInstantiator {
* Loads the class with the specified name using this object's
* Default Loader Repository.
**/
public Class findClassWithDefaultLoaderRepository(String className)
public Class<?> findClassWithDefaultLoaderRepository(String className)
throws ReflectionException {
Class theClass;
Class<?> theClass;
if (className == null) {
throw new RuntimeOperationsException(new
IllegalArgumentException("The class name cannot be null"),
......@@ -105,7 +105,7 @@ public class MBeanInstantiator {
* Gets the class for the specified class name using the MBean
* Interceptor's classloader
*/
public Class findClass(String className, ClassLoader loader)
public Class<?> findClass(String className, ClassLoader loader)
throws ReflectionException {
return loadClass(className,loader);
......@@ -115,7 +115,7 @@ public class MBeanInstantiator {
* Gets the class for the specified class name using the specified
* class loader
*/
public Class findClass(String className, ObjectName aLoader)
public Class<?> findClass(String className, ObjectName aLoader)
throws ReflectionException, InstanceNotFoundException {
if (aLoader == null)
......@@ -140,14 +140,14 @@ public class MBeanInstantiator {
* Return an array of Class corresponding to the given signature, using
* the specified class loader.
*/
public Class[] findSignatureClasses(String signature[],
ClassLoader loader)
throws ReflectionException {
public Class<?>[] findSignatureClasses(String signature[],
ClassLoader loader)
throws ReflectionException {
if (signature == null) return null;
final ClassLoader aLoader = loader;
final int length= signature.length;
final Class tab[]=new Class[length];
final Class<?> tab[]=new Class<?>[length];
if (length == 0) return tab;
try {
......@@ -156,7 +156,7 @@ public class MBeanInstantiator {
// forth)
//
final Class primCla = primitiveClasses.get(signature[i]);
final Class<?> primCla = primitiveClasses.get(signature[i]);
if (primCla != null) {
tab[i] = primCla;
continue;
......@@ -203,14 +203,14 @@ public class MBeanInstantiator {
* Instantiates an object given its class, using its empty constructor.
* The call returns a reference to the newly created object.
*/
public Object instantiate(Class theClass)
public Object instantiate(Class<?> theClass)
throws ReflectionException, MBeanException {
Object moi;
// ------------------------------
// ------------------------------
Constructor cons = findConstructor(theClass, null);
Constructor<?> cons = findConstructor(theClass, null);
if (cons == null) {
throw new ReflectionException(new
NoSuchMethodException("No such constructor"));
......@@ -257,14 +257,14 @@ public class MBeanInstantiator {
* signature of its constructor The call returns a reference to
* the newly created object.
*/
public Object instantiate(Class theClass, Object params[],
public Object instantiate(Class<?> theClass, Object params[],
String signature[], ClassLoader loader)
throws ReflectionException, MBeanException {
// Instantiate the new object
// ------------------------------
// ------------------------------
final Class[] tab;
final Class<?>[] tab;
Object moi;
try {
// Build the signature of the method
......@@ -283,7 +283,7 @@ public class MBeanInstantiator {
}
// Query the metadata service to get the right constructor
Constructor cons = findConstructor(theClass, tab);
Constructor<?> cons = findConstructor(theClass, tab);
if (cons == null) {
throw new ReflectionException(new
......@@ -407,7 +407,7 @@ public class MBeanInstantiator {
throw new RuntimeOperationsException(new
IllegalArgumentException(), "Null className passed in parameter");
}
Class theClass;
Class<?> theClass;
if (loaderName == null) {
// Load the class using the agent class loader
theClass = findClass(className, loader);
......@@ -547,7 +547,7 @@ public class MBeanInstantiator {
throws ReflectionException,
MBeanException {
Class theClass = findClassWithDefaultLoaderRepository(className);
Class<?> theClass = findClassWithDefaultLoaderRepository(className);
return instantiate(theClass, params, signature, loader);
}
......@@ -595,7 +595,7 @@ public class MBeanInstantiator {
// ------------------------------
// ------------------------------
Class theClass;
Class<?> theClass;
if (loaderName == null) {
theClass = findClass(className, loader);
......@@ -617,10 +617,10 @@ public class MBeanInstantiator {
* Load a class with the specified loader, or with this object
* class loader if the specified loader is null.
**/
static Class loadClass(String className, ClassLoader loader)
static Class<?> loadClass(String className, ClassLoader loader)
throws ReflectionException {
Class theClass;
Class<?> theClass;
if (className == null) {
throw new RuntimeOperationsException(new
IllegalArgumentException("The class name cannot be null"),
......@@ -647,15 +647,15 @@ public class MBeanInstantiator {
* Load the classes specified in the signature with the given loader,
* or with this object class loader.
**/
static Class[] loadSignatureClasses(String signature[],
ClassLoader loader)
static Class<?>[] loadSignatureClasses(String signature[],
ClassLoader loader)
throws ReflectionException {
if (signature == null) return null;
final ClassLoader aLoader =
(loader==null?MBeanInstantiator.class.getClassLoader():loader);
final int length= signature.length;
final Class tab[]=new Class[length];
final Class<?> tab[]=new Class<?>[length];
if (length == 0) return tab;
try {
......@@ -664,7 +664,7 @@ public class MBeanInstantiator {
// forth)
//
final Class primCla = primitiveClasses.get(signature[i]);
final Class<?> primCla = primitiveClasses.get(signature[i]);
if (primCla != null) {
tab[i] = primCla;
continue;
......@@ -710,9 +710,9 @@ public class MBeanInstantiator {
private static final Map<String, Class<?>> primitiveClasses = Util.newMap();
static {
for (Class<?> c : new Class[] {byte.class, short.class, int.class,
long.class, float.class, double.class,
char.class, boolean.class})
for (Class<?> c : new Class<?>[] {byte.class, short.class, int.class,
long.class, float.class, double.class,
char.class, boolean.class})
primitiveClasses.put(c.getName(), c);
}
}
......@@ -160,7 +160,7 @@ class MXBeanIntrospector extends MBeanIntrospector<ConvertingMethod> {
// matched to the corresponding Java type, except when that
// type is primitive.
Type t = m.getGenericParameterTypes()[paramNo];
return (!(t instanceof Class) || !((Class) t).isPrimitive());
return (!(t instanceof Class<?>) || !((Class<?>) t).isPrimitive());
} else {
Object v;
try {
......@@ -354,7 +354,7 @@ class MXBeanIntrospector extends MBeanIntrospector<ConvertingMethod> {
}
}
private static Descriptor typeDescriptor(OpenType openType,
private static Descriptor typeDescriptor(OpenType<?> openType,
Type originalType) {
return new ImmutableDescriptor(
new String[] {"openType",
......@@ -380,16 +380,16 @@ class MXBeanIntrospector extends MBeanIntrospector<ConvertingMethod> {
if (type instanceof GenericArrayType) {
return canUseOpenInfo(
((GenericArrayType) type).getGenericComponentType());
} else if (type instanceof Class && ((Class<?>) type).isArray()) {
} else if (type instanceof Class<?> && ((Class<?>) type).isArray()) {
return canUseOpenInfo(
((Class<?>) type).getComponentType());
}
return (!(type instanceof Class && ((Class<?>) type).isPrimitive()));
return (!(type instanceof Class<?> && ((Class<?>) type).isPrimitive()));
}
private static String originalTypeString(Type type) {
if (type instanceof Class)
return ((Class) type).getName();
if (type instanceof Class<?>)
return ((Class<?>) type).getName();
else
return genericTypeString(type);
}
......
......@@ -54,7 +54,8 @@ class ObjectInputStreamWithLoader extends ObjectInputStream {
this.loader = theLoader;
}
protected Class resolveClass(ObjectStreamClass aClass)
@Override
protected Class<?> resolveClass(ObjectStreamClass aClass)
throws IOException, ClassNotFoundException {
if (loader == null) {
return super.resolveClass(aClass);
......
......@@ -47,16 +47,16 @@ final class SecureClassLoaderRepository
public SecureClassLoaderRepository(ClassLoaderRepository clr) {
this.clr=clr;
}
public final Class loadClass(String className)
public final Class<?> loadClass(String className)
throws ClassNotFoundException {
return clr.loadClass(className);
}
public final Class loadClassWithout(ClassLoader loader,
public final Class<?> loadClassWithout(ClassLoader loader,
String className)
throws ClassNotFoundException {
return clr.loadClassWithout(loader,className);
}
public final Class loadClassBefore(ClassLoader loader,
public final Class<?> loadClassBefore(ClassLoader loader,
String className)
throws ClassNotFoundException {
return clr.loadClassBefore(loader,className);
......
......@@ -669,7 +669,7 @@ public class Util {
}
public static <T> Set<T> cloneSet(Set<T> set) {
if (set instanceof SortedSet) {
if (set instanceof SortedSet<?>) {
@SuppressWarnings("unchecked")
SortedSet<T> sset = (SortedSet<T>) set;
set = new TreeSet<T>(sset.comparator());
......@@ -680,7 +680,7 @@ public class Util {
}
public static <T> Set<T> equivalentEmptySet(Set<T> set) {
if (set instanceof SortedSet) {
if (set instanceof SortedSet<?>) {
@SuppressWarnings("unchecked")
SortedSet<T> sset = (SortedSet<T>) set;
set = new TreeSet<T>(sset.comparator());
......
......@@ -118,9 +118,9 @@ class WeakIdentityHashMap<K, V> {
public boolean equals(Object o) {
if (this == o)
return true;
if (!(o instanceof IdentityWeakReference))
if (!(o instanceof IdentityWeakReference<?>))
return false;
IdentityWeakReference wr = (IdentityWeakReference) o;
IdentityWeakReference<?> wr = (IdentityWeakReference<?>) o;
Object got = get();
return (got != null && got == wr.get());
}
......
......@@ -120,7 +120,7 @@ public class ArrayNotificationBuffer implements NotificationBuffer {
private final Collection<ShareBuffer> sharers = new HashSet<ShareBuffer>(1);
public static NotificationBuffer getNotificationBuffer(
MBeanServer mbs, Map env) {
MBeanServer mbs, Map<String, ?> env) {
if (env == null)
env = Collections.emptyMap();
......
......@@ -54,7 +54,7 @@ import com.sun.jmx.remote.util.EnvHelp;
public abstract class ClientNotifForwarder {
public ClientNotifForwarder(Map env) {
public ClientNotifForwarder(Map<String, ?> env) {
this(null, env);
}
......@@ -113,7 +113,7 @@ public abstract class ClientNotifForwarder {
private Thread thread;
}
public ClientNotifForwarder(ClassLoader defaultClassLoader, Map env) {
public ClientNotifForwarder(ClassLoader defaultClassLoader, Map<String, ?> env) {
maxNotifications = EnvHelp.getMaxFetchNotifNumber(env);
timeout = EnvHelp.getFetchTimeout(env);
......
......@@ -36,7 +36,7 @@ import org.omg.CORBA.ORB;
import org.omg.CORBA.TypeCode;
import org.omg.CORBA.portable.BoxedValueHelper;
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "rawtypes"})
public class ProxyInputStream extends org.omg.CORBA_2_3.portable.InputStream {
public ProxyInputStream(org.omg.CORBA.portable.InputStream in) {
this.in = in;
......
......@@ -59,7 +59,7 @@ public class ServerNotifForwarder {
public ServerNotifForwarder(MBeanServer mbeanServer,
Map env,
Map<String, ?> env,
NotificationBuffer notifBuffer,
String connectionId) {
this.mbeanServer = mbeanServer;
......
......@@ -29,6 +29,6 @@ import java.io.IOException;
import java.rmi.MarshalledObject;
public interface Unmarshal {
public Object get(MarshalledObject mo)
public Object get(MarshalledObject<?> mo)
throws IOException, ClassNotFoundException;
}
......@@ -26,6 +26,7 @@
package com.sun.jmx.remote.security;
import com.sun.jmx.mbeanserver.GetPropertyAction;
import com.sun.jmx.mbeanserver.Util;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
......@@ -146,8 +147,8 @@ public class FileLoginModule implements LoginModule {
// Initial state
private Subject subject;
private CallbackHandler callbackHandler;
private Map<String, ?> sharedState;
private Map options;
private Map<String, Object> sharedState;
private Map<String, ?> options;
private String passwordFile;
private String passwordFileDisplayName;
private boolean userSuppliedPasswordFile;
......@@ -172,7 +173,7 @@ public class FileLoginModule implements LoginModule {
this.subject = subject;
this.callbackHandler = callbackHandler;
this.sharedState = sharedState;
this.sharedState = Util.cast(sharedState);
this.options = options;
// initialize any configured options
......@@ -454,8 +455,8 @@ public class FileLoginModule implements LoginModule {
if (storePass &&
!sharedState.containsKey(USERNAME_KEY) &&
!sharedState.containsKey(PASSWORD_KEY)) {
((Map) sharedState).put(USERNAME_KEY, username);
((Map) sharedState).put(PASSWORD_KEY, password);
sharedState.put(USERNAME_KEY, username);
sharedState.put(PASSWORD_KEY, password);
}
// Create a new user principal
......
......@@ -87,7 +87,7 @@ public final class JMXPluggableAuthenticator implements JMXAuthenticator {
* @exception SecurityException if the authentication mechanism cannot be
* initialized.
*/
public JMXPluggableAuthenticator(Map env) {
public JMXPluggableAuthenticator(Map<?, ?> env) {
String loginConfigName = null;
String passwordFile = null;
......
......@@ -249,9 +249,8 @@ public class MBeanServerFileAccessController
}
});
if (s == null) return; /* security has not been enabled */
final Set principals = s.getPrincipals();
for (Iterator i = principals.iterator(); i.hasNext(); ) {
final Principal p = (Principal) i.next();
final Set<Principal> principals = s.getPrincipals();
for (Principal p : principals) {
String grantedAccessLevel;
synchronized (props) {
grantedAccessLevel = props.getProperty(p.getName());
......@@ -271,8 +270,8 @@ public class MBeanServerFileAccessController
}
private void checkValues(Properties props) {
Collection c = props.values();
for (Iterator i = c.iterator(); i.hasNext(); ) {
Collection<?> c = props.values();
for (Iterator<?> i = c.iterator(); i.hasNext(); ) {
final String accessLevel = (String) i.next();
if (!accessLevel.equals(READONLY) &&
!accessLevel.equals(READWRITE)) {
......
......@@ -38,7 +38,7 @@ public class ClassLoaderWithRepository extends ClassLoader {
this.cl2 = cl2;
}
protected Class findClass(String name) throws ClassNotFoundException {
protected Class<?> findClass(String name) throws ClassNotFoundException {
try {
return repository.loadClass(name);
} catch (ClassNotFoundException cne) {
......
......@@ -41,7 +41,7 @@ public class ClassLogger {
people to use at least J2SE 1.4. */
boolean loaded = false;
try {
Class c = java.util.logging.Logger.class;
Class<?> c = java.util.logging.Logger.class;
loaded = true;
} catch (Error e) {
// OK.
......
......@@ -117,7 +117,7 @@ public class EnvHelp {
* <code>jmx.remote.default.class.loader.name</code> is specified
* and the ClassLoader MBean is not found in <var>mbs</var>.
*/
public static ClassLoader resolveServerClassLoader(Map env,
public static ClassLoader resolveServerClassLoader(Map<String, ?> env,
MBeanServer mbs)
throws InstanceNotFoundException {
......@@ -194,7 +194,7 @@ public class EnvHelp {
* <code>jmx.remote.default.class.loader</code> is specified
* and is not an instance of {@link ClassLoader}.
*/
public static ClassLoader resolveClientClassLoader(Map env) {
public static ClassLoader resolveClientClassLoader(Map<String, ?> env) {
if (env == null)
return Thread.currentThread().getContextClassLoader();
......@@ -241,7 +241,7 @@ public class EnvHelp {
try {
java.lang.reflect.Method getCause =
t.getClass().getMethod("getCause", (Class[]) null);
t.getClass().getMethod("getCause", (Class<?>[]) null);
ret = (Throwable)getCause.invoke(t, (Object[]) null);
} catch (Exception e) {
......@@ -264,7 +264,7 @@ public class EnvHelp {
* Returns the size of a notification buffer for a connector server.
* The default value is 1000.
*/
public static int getNotifBufferSize(Map env) {
public static int getNotifBufferSize(Map<String, ?> env) {
int defaultQueueSize = 1000; // default value
// keep it for the compability for the fix:
......@@ -327,7 +327,7 @@ public class EnvHelp {
* Returns the maximum notification number which a client will
* fetch every time.
*/
public static int getMaxFetchNotifNumber(Map env) {
public static int getMaxFetchNotifNumber(Map<String, ?> env) {
return (int) getIntegerAttribute(env, MAX_FETCH_NOTIFS, 1000, 1,
Integer.MAX_VALUE);
}
......@@ -344,7 +344,7 @@ public class EnvHelp {
/**
* Returns the timeout for a client to fetch notifications.
*/
public static long getFetchTimeout(Map env) {
public static long getFetchTimeout(Map<String, ?> env) {
return getIntegerAttribute(env, FETCH_TIMEOUT, 60000L, 0,
Long.MAX_VALUE);
}
......@@ -361,7 +361,7 @@ public class EnvHelp {
"com.sun.jmx.remote.notification.access.controller";
public static NotificationAccessController getNotificationAccessController(
Map env) {
Map<String, ?> env) {
return (env == null) ? null :
(NotificationAccessController) env.get(NOTIF_ACCESS_CONTROLLER);
}
......@@ -378,7 +378,7 @@ public class EnvHelp {
* an entry for <code>name</code> but it does not meet the
* constraints above.
*/
public static long getIntegerAttribute(Map env, String name,
public static long getIntegerAttribute(Map<String, ?> env, String name,
long defaultValue, long minValue,
long maxValue) {
final Object o;
......@@ -421,9 +421,8 @@ public class EnvHelp {
/* Check that all attributes have a key that is a String.
Could make further checks, e.g. appropriate types for attributes. */
public static void checkAttributes(Map attributes) {
for (Iterator it = attributes.keySet().iterator(); it.hasNext(); ) {
Object key = it.next();
public static void checkAttributes(Map<?, ?> attributes) {
for (Object key : attributes.keySet()) {
if (!(key instanceof String)) {
final String msg =
"Attributes contain key that is not a string: " + key;
......@@ -455,7 +454,7 @@ public class EnvHelp {
logger.trace("purgeUnserializable", "starts");
ObjectOutputStream oos = null;
int i = 0;
for (Iterator it = objects.iterator(); it.hasNext(); i++) {
for (Iterator<?> it = objects.iterator(); it.hasNext(); i++) {
Object v = it.next();
if (v == null || v instanceof String) {
......@@ -564,18 +563,18 @@ public class EnvHelp {
guarantees that we will never call next() on the corresponding
iterator. */
String sentinelKey = map.lastKey() + "X";
Iterator keyIterator = map.keySet().iterator();
Iterator stringIterator = hiddenStrings.iterator();
Iterator prefixIterator = hiddenPrefixes.iterator();
Iterator<String> keyIterator = map.keySet().iterator();
Iterator<String> stringIterator = hiddenStrings.iterator();
Iterator<String> prefixIterator = hiddenPrefixes.iterator();
String nextString;
if (stringIterator.hasNext())
nextString = (String) stringIterator.next();
nextString = stringIterator.next();
else
nextString = sentinelKey;
String nextPrefix;
if (prefixIterator.hasNext())
nextPrefix = (String) prefixIterator.next();
nextPrefix = prefixIterator.next();
else
nextPrefix = sentinelKey;
......@@ -583,7 +582,7 @@ public class EnvHelp {
or prefix, remove it. */
keys:
while (keyIterator.hasNext()) {
String key = (String) keyIterator.next();
String key = keyIterator.next();
/* Continue through string-match values until we find one
that is either greater than the current key, or equal
......@@ -591,7 +590,7 @@ public class EnvHelp {
int cmp = +1;
while ((cmp = nextString.compareTo(key)) < 0) {
if (stringIterator.hasNext())
nextString = (String) stringIterator.next();
nextString = stringIterator.next();
else
nextString = sentinelKey;
}
......@@ -609,7 +608,7 @@ public class EnvHelp {
continue keys;
}
if (prefixIterator.hasNext())
nextPrefix = (String) prefixIterator.next();
nextPrefix = prefixIterator.next();
else
nextPrefix = sentinelKey;
}
......@@ -640,7 +639,7 @@ public class EnvHelp {
/**
* Returns the server side connection timeout.
*/
public static long getServerConnectionTimeout(Map env) {
public static long getServerConnectionTimeout(Map<String, ?> env) {
return getIntegerAttribute(env, SERVER_CONNECTION_TIMEOUT, 120000L,
0, Long.MAX_VALUE);
}
......@@ -656,7 +655,7 @@ public class EnvHelp {
/**
* Returns the client connection check period.
*/
public static long getConnectionCheckPeriod(Map env) {
public static long getConnectionCheckPeriod(Map<String, ?> env) {
return getIntegerAttribute(env, CLIENT_CONNECTION_CHECK_PERIOD, 60000L,
0, Long.MAX_VALUE);
}
......@@ -691,7 +690,7 @@ public class EnvHelp {
* to {@code String}.
*/
public static boolean computeBooleanFromString(
Map env, String prop, boolean systemProperty) {
Map<String, ?> env, String prop, boolean systemProperty) {
if (env == null)
throw new IllegalArgumentException("env map cannot be null");
......@@ -744,7 +743,8 @@ public class EnvHelp {
* to {@code String}.
*/
public static boolean computeBooleanFromString(
Map env, String prop, boolean systemProperty, boolean defaultValue) {
Map<String, ?> env, String prop,
boolean systemProperty, boolean defaultValue) {
if (env == null)
throw new IllegalArgumentException("env map cannot be null");
......@@ -774,7 +774,7 @@ public class EnvHelp {
public static <K, V> Hashtable<K, V> mapToHashtable(Map<K, V> map) {
HashMap<K, V> m = new HashMap<K, V>(map);
if (m.containsKey(null)) m.remove(null);
for (Iterator i = m.values().iterator(); i.hasNext(); )
for (Iterator<?> i = m.values().iterator(); i.hasNext(); )
if (i.next() == null) i.remove();
return new Hashtable<K, V>(m);
}
......@@ -783,7 +783,7 @@ public class EnvHelp {
* Returns true if the parameter JMXConnector.USE_EVENT_SERVICE is set to a
* String equals "true" by ignoring case in the map or in the System.
*/
public static boolean eventServiceEnabled(Map env) {
public static boolean eventServiceEnabled(Map<String, ?> env) {
return computeBooleanFromString(env, JMXConnector.USE_EVENT_SERVICE, true);
}
......@@ -793,7 +793,7 @@ public class EnvHelp {
* If the property DELEGATE_TO_EVENT_SERVICE is not set, returns
* a default value of "true".
*/
public static boolean delegateToEventService(Map env) {
public static boolean delegateToEventService(Map<String, ?> env) {
return computeBooleanFromString(env,
JMXConnectorServer.DELEGATE_TO_EVENT_SERVICE, true, true);
}
......
......@@ -138,8 +138,8 @@ public class EventClientConnection implements InvocationHandler,
Class<T> interfaceClass, Callable<EventClient> eventClientFactory) {
final InvocationHandler handler =
new EventClientConnection(connection,eventClientFactory);
final Class[] interfaces =
new Class[] {interfaceClass, EventClientFactory.class};
final Class<?>[] interfaces =
new Class<?>[] {interfaceClass, EventClientFactory.class};
Object proxy =
Proxy.newProxyInstance(interfaceClass.getClassLoader(),
......@@ -156,7 +156,7 @@ public class EventClientConnection implements InvocationHandler,
// add/remove notification listener are routed to the EventClient
if (methodName.equals("addNotificationListener")
|| methodName.equals("removeNotificationListener")) {
final Class[] sig = method.getParameterTypes();
final Class<?>[] sig = method.getParameterTypes();
if (sig.length>1 &&
NotificationListener.class.isAssignableFrom(sig[1])) {
return invokeBroadcasterMethod(proxy,method,args);
......@@ -164,7 +164,7 @@ public class EventClientConnection implements InvocationHandler,
}
// subscribe/unsubscribe are also routed to the EventClient.
final Class clazz = method.getDeclaringClass();
final Class<?> clazz = method.getDeclaringClass();
if (clazz.equals(EventClientFactory.class)) {
return invokeEventClientSubscriberMethod(proxy,method,args);
}
......@@ -319,7 +319,7 @@ public class EventClientConnection implements InvocationHandler,
return true;
if (methodName.equals("equals")
&& Arrays.equals(method.getParameterTypes(),
new Class[] {Object.class})
new Class<?>[] {Object.class})
&& isLocal(proxy, method))
return true;
return false;
......
......@@ -32,7 +32,7 @@ public class OrderClassLoaders extends ClassLoader {
this.cl2 = cl2;
}
protected Class findClass(String name) throws ClassNotFoundException {
protected Class<?> findClass(String name) throws ClassNotFoundException {
try {
return super.findClass(name);
} catch (ClassNotFoundException cne) {
......
......@@ -159,7 +159,7 @@ public class AttributeList extends ArrayList<Object> {
checkTypeSafe(this);
typeSafe = true;
}
return (List<Attribute>) (List) this;
return (List<Attribute>) (List<?>) this;
}
/**
......
......@@ -62,7 +62,7 @@ public class DefaultLoaderRepository {
*
* @exception ClassNotFoundException The specified class could not be found.
*/
public static Class loadClass(String className)
public static Class<?> loadClass(String className)
throws ClassNotFoundException {
return javax.management.loading.DefaultLoaderRepository.loadClass(className);
}
......@@ -82,7 +82,7 @@ public class DefaultLoaderRepository {
*
* @exception ClassNotFoundException The specified class could not be found.
*/
public static Class loadClassWithout(ClassLoader loader,String className)
public static Class<?> loadClassWithout(ClassLoader loader,String className)
throws ClassNotFoundException {
return javax.management.loading.DefaultLoaderRepository.loadClassWithout(loader, className);
}
......
......@@ -70,7 +70,7 @@ public class JMRuntimeException extends RuntimeException {
try {
java.lang.reflect.Method initCause =
Throwable.class.getMethod("initCause",
new Class[] {Throwable.class});
new Class<?>[] {Throwable.class});
initCause.invoke(this, new Object[] {cause});
} catch (Exception e) {
// OK: just means we won't have debugging info
......
......@@ -703,12 +703,12 @@ public class JMX {
InvocationHandler handler = new MBeanServerInvocationHandler(
connection, objectName, opts);
final Class[] interfaces;
final Class<?>[] interfaces;
if (notificationEmitter) {
interfaces =
new Class<?>[] {interfaceClass, NotificationEmitter.class};
} else
interfaces = new Class[] {interfaceClass};
interfaces = new Class<?>[] {interfaceClass};
Object proxy = Proxy.newProxyInstance(
interfaceClass.getClassLoader(),
interfaces,
......
......@@ -316,7 +316,7 @@ public class MBeanAttributeInfo extends MBeanFeatureInfo implements Cloneable {
*/
private static String attributeType(Method getter, Method setter)
throws IntrospectionException {
Class type = null;
Class<?> type = null;
if (getter != null) {
if (getter.getParameterTypes().length != 0) {
......@@ -330,7 +330,7 @@ public class MBeanAttributeInfo extends MBeanFeatureInfo implements Cloneable {
}
if (setter != null) {
Class params[] = setter.getParameterTypes();
Class<?> params[] = setter.getParameterTypes();
if (params.length != 1) {
throw new IntrospectionException("bad setter arg count");
}
......
......@@ -64,7 +64,7 @@ public class MBeanConstructorInfo extends MBeanFeatureInfo implements Cloneable
* @param constructor The <CODE>java.lang.reflect.Constructor</CODE>
* object describing the MBean constructor.
*/
public MBeanConstructorInfo(String description, Constructor constructor) {
public MBeanConstructorInfo(String description, Constructor<?> constructor) {
this(constructor.getName(), description,
constructorSignature(constructor),
Introspector.descriptorForElement(constructor));
......@@ -210,8 +210,8 @@ public class MBeanConstructorInfo extends MBeanFeatureInfo implements Cloneable
return hash;
}
private static MBeanParameterInfo[] constructorSignature(Constructor cn) {
final Class[] classes = cn.getParameterTypes();
private static MBeanParameterInfo[] constructorSignature(Constructor<?> cn) {
final Class<?>[] classes = cn.getParameterTypes();
final Annotation[][] annots = cn.getParameterAnnotations();
return MBeanOperationInfo.parameters(classes, annots);
}
......
......@@ -524,8 +524,8 @@ public class MBeanInfo implements Cloneable, Serializable, DescriptorRead {
* a WeakHashMap so that we don't prevent a class from being
* garbage collected just because we know whether it's immutable.
*/
private static final Map<Class, Boolean> arrayGettersSafeMap =
new WeakHashMap<Class, Boolean>();
private static final Map<Class<?>, Boolean> arrayGettersSafeMap =
new WeakHashMap<Class<?>, Boolean>();
/**
* Return true if <code>subclass</code> is known to preserve the
......@@ -537,7 +537,7 @@ public class MBeanInfo implements Cloneable, Serializable, DescriptorRead {
* This is obviously not an infallible test for immutability,
* but it works for the public interfaces of the MBean*Info classes.
*/
static boolean arrayGettersSafe(Class subclass, Class immutableClass) {
static boolean arrayGettersSafe(Class<?> subclass, Class<?> immutableClass) {
if (subclass == immutableClass)
return true;
synchronized (arrayGettersSafeMap) {
......
......@@ -308,17 +308,18 @@ public class MBeanOperationInfo extends MBeanFeatureInfo implements Cloneable {
wrong should be less than the penalty we would pay if it were
right and we needlessly hashed in the description and the
parameter array. */
@Override
public int hashCode() {
return getName().hashCode() ^ getReturnType().hashCode();
}
private static MBeanParameterInfo[] methodSignature(Method method) {
final Class[] classes = method.getParameterTypes();
final Class<?>[] classes = method.getParameterTypes();
final Annotation[][] annots = method.getParameterAnnotations();
return parameters(classes, annots);
}
static MBeanParameterInfo[] parameters(Class[] classes,
static MBeanParameterInfo[] parameters(Class<?>[] classes,
Annotation[][] annots) {
final MBeanParameterInfo[] params =
new MBeanParameterInfo[classes.length];
......
......@@ -747,7 +747,7 @@ public class MBeanServerFactory {
* Load the builder class through the context class loader.
* @param builderClassName The name of the builder class.
**/
private static Class loadBuilderClass(String builderClassName)
private static Class<?> loadBuilderClass(String builderClassName)
throws ClassNotFoundException {
final ClassLoader loader =
Thread.currentThread().getContextClassLoader();
......@@ -767,7 +767,7 @@ public class MBeanServerFactory {
* If any checked exception needs to be thrown, it is embedded in
* a JMRuntimeException.
**/
private static MBeanServerBuilder newBuilder(Class builderClass) {
private static MBeanServerBuilder newBuilder(Class<?> builderClass) {
try {
final Object abuilder = builderClass.newInstance();
return (MBeanServerBuilder)abuilder;
......@@ -792,7 +792,7 @@ public class MBeanServerFactory {
String builderClassName = AccessController.doPrivileged(act);
try {
final Class newBuilderClass;
final Class<?> newBuilderClass;
if (builderClassName == null || builderClassName.length() == 0)
newBuilderClass = MBeanServerBuilder.class;
else
......@@ -800,7 +800,7 @@ public class MBeanServerFactory {
// Check whether a new builder needs to be created
if (builder != null) {
final Class builderClass = builder.getClass();
final Class<?> builderClass = builder.getClass();
if (newBuilderClass == builderClass)
return; // no need to create a new builder...
}
......
......@@ -253,12 +253,12 @@ public class MBeanServerInvocationHandler implements InvocationHandler {
boolean notificationBroadcaster) {
final InvocationHandler handler =
new MBeanServerInvocationHandler(connection, objectName);
final Class[] interfaces;
final Class<?>[] interfaces;
if (notificationBroadcaster) {
interfaces =
new Class[] {interfaceClass, NotificationEmitter.class};
new Class<?>[] {interfaceClass, NotificationEmitter.class};
} else
interfaces = new Class[] {interfaceClass};
interfaces = new Class<?>[] {interfaceClass};
Object proxy =
Proxy.newProxyInstance(interfaceClass.getClassLoader(),
......@@ -269,7 +269,7 @@ public class MBeanServerInvocationHandler implements InvocationHandler {
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
final Class methodClass = method.getDeclaringClass();
final Class<?> methodClass = method.getDeclaringClass();
if (methodClass.equals(NotificationBroadcaster.class)
|| methodClass.equals(NotificationEmitter.class))
......@@ -285,8 +285,8 @@ public class MBeanServerInvocationHandler implements InvocationHandler {
return p.invoke(connection, objectName, method, args);
} else {
final String methodName = method.getName();
final Class[] paramTypes = method.getParameterTypes();
final Class returnType = method.getReturnType();
final Class<?>[] paramTypes = method.getParameterTypes();
final Class<?> returnType = method.getReturnType();
/* Inexplicably, InvocationHandler specifies that args is null
when the method takes no arguments rather than a
......@@ -452,7 +452,7 @@ public class MBeanServerInvocationHandler implements InvocationHandler {
return true;
if (methodName.equals("equals")
&& Arrays.equals(method.getParameterTypes(),
new Class[] {Object.class})
new Class<?>[] {Object.class})
&& isLocal(proxy, method))
return true;
return false;
......
......@@ -689,7 +689,7 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration {
getImplementationClass().getName());
}
MBeanSupport msupport = mbean;
MBeanSupport<?> msupport = mbean;
final MBeanInfo bi = msupport.getMBeanInfo();
final Object impl = msupport.getWrappedObject();
......@@ -1391,8 +1391,8 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration {
* garbage collected just because we know whether its MBeanInfo
* is immutable.
*/
private static final Map<Class, Boolean> mbeanInfoSafeMap =
new WeakHashMap<Class, Boolean>();
private static final Map<Class<?>, Boolean> mbeanInfoSafeMap =
new WeakHashMap<Class<?>, Boolean>();
/**
* Return true if {@code subclass} is known to preserve the immutability
......@@ -1438,9 +1438,9 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration {
private static class MBeanInfoSafeAction
implements PrivilegedAction<Boolean> {
private final Class subclass;
private final Class<?> subclass;
MBeanInfoSafeAction(Class subclass) {
MBeanInfoSafeAction(Class<?> subclass) {
this.subclass = subclass;
}
......@@ -1454,13 +1454,13 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration {
// Check for "MBeanInfo getCachedMBeanInfo()" method.
//
if (overrides(subclass, StandardMBean.class,
"getCachedMBeanInfo", (Class[]) null))
"getCachedMBeanInfo", (Class<?>[]) null))
return false;
// Check for "MBeanInfo getMBeanInfo()" method.
//
if (overrides(subclass, StandardMBean.class,
"getMBeanInfo", (Class[]) null))
"getMBeanInfo", (Class<?>[]) null))
return false;
// Check for "MBeanNotificationInfo[] getNotificationInfo()"
......@@ -1473,7 +1473,7 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration {
//
if (StandardEmitterMBean.class.isAssignableFrom(subclass))
if (overrides(subclass, StandardEmitterMBean.class,
"getNotificationInfo", (Class[]) null))
"getNotificationInfo", (Class<?>[]) null))
return false;
return true;
}
......
......@@ -104,8 +104,8 @@ public class EventClientDelegate implements EventClientDelegateMBean {
public static EventClientDelegate getEventClientDelegate(MBeanServer server) {
EventClientDelegate delegate = null;
synchronized(delegateMap) {
final WeakReference wrf = delegateMap.get(server);
delegate = (wrf == null) ? null : (EventClientDelegate)wrf.get();
final WeakReference<EventClientDelegate> wrf = delegateMap.get(server);
delegate = (wrf == null) ? null : wrf.get();
if (delegate == null) {
delegate = new EventClientDelegate(server);
......@@ -282,7 +282,7 @@ public class EventClientDelegate implements EventClientDelegateMBean {
Constructor<?> foundCons = null;
if (sig == null)
sig = new String[0];
for (Constructor cons : c.getConstructors()) {
for (Constructor<?> cons : c.getConstructors()) {
Class<?>[] types = cons.getParameterTypes();
String[] consSig = new String[types.length];
for (int i = 0; i < types.length; i++)
......
......@@ -350,8 +350,7 @@ public class EventSubscriber implements EventConsumer {
static {
QueryExp broadcasterExp;
try {
final Method m = Query.class.getMethod("isInstanceOf",
new Class[] {String.class});
final Method m = Query.class.getMethod("isInstanceOf", String.class);
broadcasterExp = (QueryExp)m.invoke(Query.class,
new Object[] {NotificationBroadcaster.class.getName()});
} catch (Exception e) {
......
......@@ -69,7 +69,7 @@ public class DefaultLoaderRepository {
* @exception ClassNotFoundException The specified class could not be
* found.
*/
public static Class loadClass(String className)
public static Class<?> loadClass(String className)
throws ClassNotFoundException {
MBEANSERVER_LOGGER.logp(Level.FINEST,
DefaultLoaderRepository.class.getName(),
......@@ -93,7 +93,7 @@ public class DefaultLoaderRepository {
* @exception ClassNotFoundException The specified class could not be
* found.
*/
public static Class loadClassWithout(ClassLoader loader,
public static Class<?> loadClassWithout(ClassLoader loader,
String className)
throws ClassNotFoundException {
MBEANSERVER_LOGGER.logp(Level.FINEST,
......@@ -102,12 +102,11 @@ public class DefaultLoaderRepository {
return load(loader, className);
}
private static Class load(ClassLoader without, String className)
private static Class<?> load(ClassLoader without, String className)
throws ClassNotFoundException {
final List mbsList = MBeanServerFactory.findMBeanServer(null);
final List<MBeanServer> mbsList = MBeanServerFactory.findMBeanServer(null);
for (Iterator it = mbsList.iterator(); it.hasNext(); ) {
MBeanServer mbs = (MBeanServer) it.next();
for (MBeanServer mbs : mbsList) {
ClassLoaderRepository clr = mbs.getClassLoaderRepository();
try {
return clr.loadClassWithout(without, className);
......
......@@ -1291,7 +1291,7 @@ public class MLet extends java.net.URLClassLoader
if (c != null) {
try {
Constructor<?> cons =
c.getConstructor(new Class[] {String.class});
c.getConstructor(String.class);
Object[] oo = new Object[1];
oo[0]=param;
return(cons.newInstance(oo));
......
......@@ -55,30 +55,30 @@ class MLetObjectInputStream extends ObjectInputStream {
this.loader = loader;
}
private Class primitiveType(char c) {
private Class<?> primitiveType(char c) {
switch(c) {
case 66: /* 'B' */
case 'B':
return Byte.TYPE;
case 67: /* 'C' */
case 'C':
return Character.TYPE;
case 68: /* 'D' */
case 'D':
return Double.TYPE;
case 70: /* 'F' */
case 'F':
return Float.TYPE;
case 73: /* 'I' */
case 'I':
return Integer.TYPE;
case 74: /* 'J' */
case 'J':
return Long.TYPE;
case 83: /* 'S' */
case 'S':
return Short.TYPE;
case 90: /* 'Z' */
case 'Z':
return Boolean.TYPE;
}
return null;
......@@ -87,14 +87,15 @@ class MLetObjectInputStream extends ObjectInputStream {
/**
* Use the given ClassLoader rather than using the system class
*/
protected Class resolveClass(ObjectStreamClass objectstreamclass)
@Override
protected Class<?> resolveClass(ObjectStreamClass objectstreamclass)
throws IOException, ClassNotFoundException {
String s = objectstreamclass.getName();
if (s.startsWith("[")) {
int i;
for (i = 1; s.charAt(i) == '['; i++);
Class class1;
Class<?> class1;
if (s.charAt(i) == 'L') {
class1 = loader.loadClass(s.substring(i + 1, s.length() - 1));
} else {
......
......@@ -589,7 +589,7 @@ public class DescriptorSupport
int numberOfEntries = descriptorMap.size();
String[] responseFields = new String[numberOfEntries];
Set returnedSet = descriptorMap.entrySet();
Set<Map.Entry<String, Object>> returnedSet = descriptorMap.entrySet();
int i = 0;
......@@ -598,8 +598,9 @@ public class DescriptorSupport
DescriptorSupport.class.getName(),
"getFields()", "Returning " + numberOfEntries + " fields");
}
for (Iterator iter = returnedSet.iterator(); iter.hasNext(); i++) {
Map.Entry currElement = (Map.Entry) iter.next();
for (Iterator<Map.Entry<String, Object>> iter = returnedSet.iterator();
iter.hasNext(); i++) {
Map.Entry<String, Object> currElement = iter.next();
if (currElement == null) {
if (MODELMBEAN_LOGGER.isLoggable(Level.FINEST)) {
......@@ -642,7 +643,7 @@ public class DescriptorSupport
int numberOfEntries = descriptorMap.size();
String[] responseFields = new String[numberOfEntries];
Set returnedSet = descriptorMap.entrySet();
Set<Map.Entry<String, Object>> returnedSet = descriptorMap.entrySet();
int i = 0;
......@@ -653,8 +654,9 @@ public class DescriptorSupport
"Returning " + numberOfEntries + " fields");
}
for (Iterator iter = returnedSet.iterator(); iter.hasNext(); i++) {
Map.Entry currElement = (Map.Entry) iter.next();
for (Iterator<Map.Entry<String, Object>> iter = returnedSet.iterator();
iter.hasNext(); i++) {
Map.Entry<String, Object> currElement = iter.next();
if (( currElement == null ) || (currElement.getKey() == null)) {
if (MODELMBEAN_LOGGER.isLoggable(Level.FINEST)) {
......@@ -700,9 +702,8 @@ public class DescriptorSupport
}
if (fieldNames == null) {
for (Iterator iter = descriptorMap.values().iterator();
iter.hasNext(); i++)
responseFields[i] = iter.next();
for (Object value : descriptorMap.values())
responseFields[i++] = value;
} else {
for (i=0; i < fieldNames.length; i++) {
if ((fieldNames[i] == null) || (fieldNames[i].equals(""))) {
......@@ -904,7 +905,7 @@ public class DescriptorSupport
}
// verify that the descriptor is valid, by iterating over each field...
Set returnedSet = descriptorMap.entrySet();
Set<Map.Entry<String, Object>> returnedSet = descriptorMap.entrySet();
if (returnedSet == null) { // null descriptor, not valid
if (MODELMBEAN_LOGGER.isLoggable(Level.FINEST)) {
......@@ -925,9 +926,7 @@ public class DescriptorSupport
// According to the descriptor type we validate the fields contained
for (Iterator iter = returnedSet.iterator(); iter.hasNext();) {
Map.Entry currElement = (Map.Entry) iter.next();
for (Map.Entry<String, Object> currElement : returnedSet) {
if (currElement != null) {
if (currElement.getValue() != null) {
// validate the field valued...
......@@ -1083,10 +1082,9 @@ public class DescriptorSupport
*/
public synchronized String toXMLString() {
final StringBuilder buf = new StringBuilder("<Descriptor>");
Set returnedSet = descriptorMap.entrySet();
for (Iterator iter = returnedSet.iterator(); iter.hasNext(); ) {
final Map.Entry currElement = (Map.Entry) iter.next();
final String name = currElement.getKey().toString();
Set<Map.Entry<String, Object>> returnedSet = descriptorMap.entrySet();
for (Map.Entry<String, Object> currElement : returnedSet) {
final String name = currElement.getKey();
Object value = currElement.getValue();
String valueString = null;
/* Set valueString to non-null if and only if this is a string that
......@@ -1256,7 +1254,7 @@ public class DescriptorSupport
}
final Class<?> c =
Class.forName(className, false, contextClassLoader);
constr = c.getConstructor(new Class[] {String.class});
constr = c.getConstructor(new Class<?>[] {String.class});
} catch (Exception e) {
throw new XMLParseException(e,
"Cannot parse value: <" + s + ">");
......
......@@ -152,7 +152,7 @@ public class ModelMBeanConstructorInfo
* describing the MBean constructor.
*/
public ModelMBeanConstructorInfo(String description,
Constructor constructorMethod)
Constructor<?> constructorMethod)
{
super(description, constructorMethod);
if (MODELMBEAN_LOGGER.isLoggable(Level.FINER)) {
......@@ -194,7 +194,7 @@ public class ModelMBeanConstructorInfo
*/
public ModelMBeanConstructorInfo(String description,
Constructor constructorMethod,
Constructor<?> constructorMethod,
Descriptor descriptor)
{
......
......@@ -1074,7 +1074,7 @@ public class RequiredModelMBean
}
}
final Class targetClass;
final Class<?> targetClass;
if (opClassName != null) {
try {
......@@ -1126,20 +1126,20 @@ public class RequiredModelMBean
"resolving " + targetClass.getName() + "." + opMethodName);
}
final Class[] argClasses;
final Class<?>[] argClasses;
if (sig == null)
argClasses = null;
else {
final ClassLoader targetClassLoader = targetClass.getClassLoader();
argClasses = new Class[sig.length];
argClasses = new Class<?>[sig.length];
for (int i = 0; i < sig.length; i++) {
if (tracing) {
MODELMBEAN_LOGGER.logp(Level.FINER,
RequiredModelMBean.class.getName(),"resolveMethod",
"resolve type " + sig[i]);
}
argClasses[i] = (Class) primitiveClassMap.get(sig[i]);
argClasses[i] = (Class<?>) primitiveClassMap.get(sig[i]);
if (argClasses[i] == null) {
try {
argClasses[i] =
......@@ -1170,7 +1170,7 @@ public class RequiredModelMBean
/* Map e.g. "int" to int.class. Goodness knows how many time this
particular wheel has been reinvented. */
private static final Class[] primitiveClasses = {
private static final Class<?>[] primitiveClasses = {
int.class, long.class, boolean.class, double.class,
float.class, short.class, byte.class, char.class,
};
......@@ -1178,7 +1178,7 @@ public class RequiredModelMBean
new HashMap<String,Class<?>>();
static {
for (int i = 0; i < primitiveClasses.length; i++) {
final Class c = primitiveClasses[i];
final Class<?> c = primitiveClasses[i];
primitiveClassMap.put(c.getName(), c);
}
}
......@@ -1645,7 +1645,7 @@ public class RequiredModelMBean
try {
ClassLoader cl =
response.getClass().getClassLoader();
Class c = Class.forName(respType, true, cl);
Class<?> c = Class.forName(respType, true, cl);
subtype = c.isInstance(response);
} catch (Exception e) {
subtype = false;
......@@ -1904,7 +1904,7 @@ public class RequiredModelMBean
if (attrSetMethod == null) {
if (attrValue != null) {
try {
final Class clazz = loadClass(attrType);
final Class<?> clazz = loadClass(attrType);
if (! clazz.isInstance(attrValue)) throw new
InvalidAttributeValueException(clazz.getName() +
" expected, " +
......@@ -2044,8 +2044,7 @@ public class RequiredModelMBean
final AttributeList responseList = new AttributeList();
// Go through the list of attributes
for (Iterator i = attributes.iterator(); i.hasNext();) {
final Attribute attr = (Attribute) i.next();
for (Attribute attr : attributes.asList()) {
try {
setAttribute(attr);
responseList.add(attr);
......@@ -2799,7 +2798,7 @@ public class RequiredModelMBean
return MBeanServerFactory.getClassLoaderRepository(server);
}
private Class loadClass(String className)
private Class<?> loadClass(String className)
throws ClassNotFoundException {
try {
return Class.forName(className);
......
......@@ -296,7 +296,7 @@ public class ArrayType<T> extends OpenType<T> {
// Check and construct state specific to ArrayType
//
if (elementType.isArray()) {
ArrayType at = (ArrayType) elementType;
ArrayType<?> at = (ArrayType<?>) elementType;
this.dimension = at.getDimension() + dimension;
this.elementType = at.getElementOpenType();
this.primitiveArray = at.isPrimitiveArray();
......@@ -384,7 +384,7 @@ public class ArrayType<T> extends OpenType<T> {
/* Package-private constructor for callers we trust to get it right. */
ArrayType(String className, String typeName, String description,
int dimension, OpenType elementType,
int dimension, OpenType<?> elementType,
boolean primitiveArray) {
super(className, typeName, description, true);
this.dimension = dimension;
......@@ -397,7 +397,7 @@ public class ArrayType<T> extends OpenType<T> {
throws OpenDataException {
boolean isPrimitiveArray = false;
if (elementType.isArray()) {
isPrimitiveArray = ((ArrayType) elementType).isPrimitiveArray();
isPrimitiveArray = ((ArrayType<?>) elementType).isPrimitiveArray();
}
return buildArrayClassName(dimension, elementType, isPrimitiveArray);
}
......@@ -443,7 +443,7 @@ public class ArrayType<T> extends OpenType<T> {
throws OpenDataException {
boolean isPrimitiveArray = false;
if (elementType.isArray()) {
isPrimitiveArray = ((ArrayType) elementType).isPrimitiveArray();
isPrimitiveArray = ((ArrayType<?>) elementType).isPrimitiveArray();
}
return buildArrayDescription(dimension, elementType, isPrimitiveArray);
}
......@@ -453,7 +453,7 @@ public class ArrayType<T> extends OpenType<T> {
boolean isPrimitiveArray)
throws OpenDataException {
if (elementType.isArray()) {
ArrayType at = (ArrayType) elementType;
ArrayType<?> at = (ArrayType<?>) elementType;
dimension += at.getDimension();
elementType = at.getElementOpenType();
isPrimitiveArray = at.isPrimitiveArray();
......@@ -551,7 +551,7 @@ public class ArrayType<T> extends OpenType<T> {
return false;
}
Class objClass = obj.getClass();
Class<?> objClass = obj.getClass();
String objClassName = objClass.getName();
// if obj is not an array, return false
......@@ -636,8 +636,8 @@ public class ArrayType<T> extends OpenType<T> {
}
@Override
boolean isAssignableFrom(OpenType ot) {
if (!(ot instanceof ArrayType))
boolean isAssignableFrom(OpenType<?> ot) {
if (!(ot instanceof ArrayType<?>))
return false;
ArrayType<?> at = (ArrayType<?>) ot;
return (at.getDimension() == getDimension() &&
......@@ -675,9 +675,9 @@ public class ArrayType<T> extends OpenType<T> {
// if obj is not an ArrayType, return false
//
if (!(obj instanceof ArrayType))
if (!(obj instanceof ArrayType<?>))
return false;
ArrayType other = (ArrayType) obj;
ArrayType<?> other = (ArrayType<?>) obj;
// if other's dimension is different than this instance's, return false
//
......@@ -879,6 +879,7 @@ public class ArrayType<T> extends OpenType<T> {
// Build primitive array
//
try {
@SuppressWarnings("rawtypes")
ArrayType at = new ArrayType(simpleType, true);
if (n > 1)
at = new ArrayType<T>(n - 1, at);
......@@ -934,7 +935,7 @@ public class ArrayType<T> extends OpenType<T> {
}
}
private ArrayType convertFromWrapperToPrimitiveTypes() {
private <T> ArrayType<T> convertFromWrapperToPrimitiveTypes() {
String cn = getClassName();
String tn = getTypeName();
String d = getDescription();
......@@ -952,8 +953,8 @@ public class ArrayType<T> extends OpenType<T> {
break;
}
}
return new ArrayType(cn, tn, d,
dimension, elementType, primitiveArray);
return new ArrayType<T>(cn, tn, d,
dimension, elementType, primitiveArray);
}
/**
......@@ -1002,7 +1003,7 @@ public class ArrayType<T> extends OpenType<T> {
}
}
private ArrayType convertFromPrimitiveToWrapperTypes() {
private <T> ArrayType<T> convertFromPrimitiveToWrapperTypes() {
String cn = getClassName();
String tn = getTypeName();
String d = getDescription();
......@@ -1020,7 +1021,7 @@ public class ArrayType<T> extends OpenType<T> {
break;
}
}
return new ArrayType(cn, tn, d,
dimension, elementType, primitiveArray);
return new ArrayType<T>(cn, tn, d,
dimension, elementType, primitiveArray);
}
}
......@@ -236,8 +236,8 @@ public class CompositeDataInvocationHandler implements InvocationHandler {
if (other == null)
return false;
final Class proxyClass = proxy.getClass();
final Class otherClass = other.getClass();
final Class<?> proxyClass = proxy.getClass();
final Class<?> otherClass = other.getClass();
if (proxyClass != otherClass)
return false;
InvocationHandler otherih = Proxy.getInvocationHandler(other);
......
......@@ -329,7 +329,7 @@ public class CompositeType extends OpenType<CompositeData> {
* @return true if {@code ot} is assignable to this open type.
*/
@Override
boolean isAssignableFrom(OpenType ot) {
boolean isAssignableFrom(OpenType<?> ot) {
if (!(ot instanceof CompositeType))
return false;
CompositeType ct = (CompositeType) ot;
......@@ -420,9 +420,7 @@ public class CompositeType extends OpenType<CompositeData> {
if (myHashCode == null) {
int value = 0;
value += this.getTypeName().hashCode();
String key;
for (Iterator k = nameToDescription.keySet().iterator(); k.hasNext(); ) {
key = (String) k.next();
for (String key : nameToDescription.keySet()) {
value += key.hashCode();
value += this.nameToType.get(key).hashCode();
}
......@@ -457,10 +455,10 @@ public class CompositeType extends OpenType<CompositeData> {
result.append(getTypeName());
result.append(",items=(");
int i=0;
Iterator k=nameToType.keySet().iterator();
Iterator<String> k=nameToType.keySet().iterator();
String key;
while (k.hasNext()) {
key = (String) k.next();
key = k.next();
if (i > 0) result.append(",");
result.append("(itemName=");
result.append(key);
......
......@@ -78,12 +78,12 @@ public class OpenMBeanAttributeInfoSupport
/**
* @serial The open mbean attribute's min value
*/
private final Comparable minValue;
private final Comparable<?> minValue;
/**
* @serial The open mbean attribute's max value
*/
private final Comparable maxValue;
private final Comparable<?> maxValue;
// As this instance is immutable, these two values need only
......@@ -450,7 +450,7 @@ public class OpenMBeanAttributeInfoSupport
}
static void check(OpenMBeanParameterInfo info) throws OpenDataException {
OpenType openType = info.getOpenType();
OpenType<?> openType = info.getOpenType();
if (openType == null)
throw new IllegalArgumentException("OpenType cannot be null");
......@@ -562,7 +562,7 @@ public class OpenMBeanAttributeInfoSupport
}
@SuppressWarnings("unchecked")
@SuppressWarnings({"unchecked", "rawtypes"})
static int compare(Object x, Object y) {
return ((Comparable) x).compareTo(y);
}
......@@ -657,11 +657,11 @@ public class OpenMBeanAttributeInfoSupport
return result;
}
static <T> Comparable comparableValueFrom(Descriptor d, String name,
OpenType<T> openType) {
static <T> Comparable<?> comparableValueFrom(Descriptor d, String name,
OpenType<T> openType) {
T t = valueFrom(d, name, openType);
if (t == null || t instanceof Comparable<?>)
return (Comparable) t;
return (Comparable<?>) t;
final String msg =
"Descriptor field " + name + " with value " + t +
" is not Comparable";
......@@ -925,7 +925,7 @@ public class OpenMBeanAttributeInfoSupport
return isValue(this, obj);
}
@SuppressWarnings("unchecked") // cast to Comparable
@SuppressWarnings({"unchecked", "rawtypes"}) // cast to Comparable
static boolean isValue(OpenMBeanParameterInfo info, Object obj) {
if (info.hasDefaultValue() && obj == null)
return true;
......
......@@ -74,12 +74,12 @@ public class OpenMBeanParameterInfoSupport
/**
* @serial The open mbean parameter's min value
*/
private Comparable minValue = null;
private Comparable<?> minValue = null;
/**
* @serial The open mbean parameter's max value
*/
private Comparable maxValue = null;
private Comparable<?> maxValue = null;
// As this instance is immutable, these two values need only
......
......@@ -206,7 +206,7 @@ public abstract class OpenType<T> implements Serializable {
}
}
private static boolean overridesGetClassName(final Class<? extends OpenType> c) {
private static boolean overridesGetClassName(final Class<?> c) {
return AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
public Boolean run() {
try {
......
......@@ -163,7 +163,7 @@ public final class SimpleType<T> extends OpenType<T> {
public static final SimpleType<ObjectName> OBJECTNAME =
new SimpleType<ObjectName>(ObjectName.class);
private static final SimpleType[] typeArray = {
private static final SimpleType<?>[] typeArray = {
VOID, BOOLEAN, CHARACTER, BYTE, SHORT, INTEGER, LONG, FLOAT,
DOUBLE, STRING, BIGDECIMAL, BIGINTEGER, DATE, OBJECTNAME,
};
......@@ -232,10 +232,10 @@ public final class SimpleType<T> extends OpenType<T> {
return (this == obj);
*/
if (!(obj instanceof SimpleType))
if (!(obj instanceof SimpleType<?>))
return false;
SimpleType other = (SimpleType) obj;
SimpleType<?> other = (SimpleType<?>) obj;
// Test if other's className field is the same as for this instance
//
......@@ -290,11 +290,11 @@ public final class SimpleType<T> extends OpenType<T> {
return myToString;
}
private static final Map<SimpleType,SimpleType> canonicalTypes =
new HashMap<SimpleType,SimpleType>();
private static final Map<SimpleType<?>,SimpleType<?>> canonicalTypes =
new HashMap<SimpleType<?>,SimpleType<?>>();
static {
for (int i = 0; i < typeArray.length; i++) {
final SimpleType type = typeArray[i];
final SimpleType<?> type = typeArray[i];
canonicalTypes.put(type, type);
}
}
......@@ -310,7 +310,7 @@ public final class SimpleType<T> extends OpenType<T> {
* resolved.
*/
public Object readResolve() throws ObjectStreamException {
final SimpleType canonical = canonicalTypes.get(this);
final SimpleType<?> canonical = canonicalTypes.get(this);
if (canonical == null) {
// Should not happen
throw new InvalidObjectException("Invalid SimpleType: " + this);
......
......@@ -30,6 +30,7 @@ package javax.management.openmbean;
// java import
//
import com.sun.jmx.mbeanserver.GetPropertyAction;
import com.sun.jmx.mbeanserver.Util;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;
......@@ -611,7 +612,7 @@ public class TabularDataSupport
@SuppressWarnings("unchecked") // historical confusion about the return type
public Collection<Object> values() {
return (Collection) dataMap.values() ;
return Util.cast(dataMap.values());
}
......@@ -647,7 +648,7 @@ public class TabularDataSupport
@SuppressWarnings("unchecked") // historical confusion about the return type
public Set<Map.Entry<Object,Object>> entrySet() {
return (Set) dataMap.entrySet();
return Util.cast(dataMap.entrySet());
}
......@@ -725,8 +726,7 @@ public class TabularDataSupport
if (this.size() != other.size()) {
return false;
}
for (Iterator iter = this.values().iterator(); iter.hasNext(); ) {
CompositeData value = (CompositeData) iter.next();
for (CompositeData value : dataMap.values()) {
if ( ! other.containsValue(value) ) {
return false;
}
......@@ -760,9 +760,8 @@ public class TabularDataSupport
int result = 0;
result += this.tabularType.hashCode();
for (Iterator iter = this.values().iterator(); iter.hasNext(); ) {
result += ((CompositeData)iter.next()).hashCode();
}
for (Object value : values())
result += value.hashCode();
return result;
......
......@@ -237,7 +237,7 @@ public class TabularType extends OpenType<TabularData> {
}
@Override
boolean isAssignableFrom(OpenType ot) {
boolean isAssignableFrom(OpenType<?> ot) {
if (!(ot instanceof TabularType))
return false;
TabularType tt = (TabularType) ot;
......@@ -329,9 +329,8 @@ public class TabularType extends OpenType<TabularData> {
int value = 0;
value += this.getTypeName().hashCode();
value += this.rowType.hashCode();
for (Iterator k = indexNames.iterator(); k.hasNext(); ) {
value += k.next().hashCode();
}
for (String index : indexNames)
value += index.hashCode();
myHashCode = Integer.valueOf(value);
}
......@@ -364,12 +363,10 @@ public class TabularType extends OpenType<TabularData> {
.append(",rowType=")
.append(rowType.toString())
.append(",indexNames=(");
int i=0;
Iterator k = indexNames.iterator();
while( k.hasNext() ) {
if (i > 0) result.append(",");
result.append(k.next().toString());
i++;
String sep = "";
for (String index : indexNames) {
result.append(sep).append(index);
sep = ",";
}
result.append("))");
myToString = result.toString();
......
......@@ -354,7 +354,7 @@ public class MBeanServerNotificationFilter extends NotificationFilterSupport {
// Checks the type first
String ntfType = notif.getType();
Vector enabledTypes = getEnabledTypes();
Vector<String> enabledTypes = getEnabledTypes();
if (!(enabledTypes.contains(ntfType))) {
RELATION_LOGGER.logp(Level.FINER,
MBeanServerNotificationFilter.class.getName(),
......@@ -464,8 +464,8 @@ public class MBeanServerNotificationFilter extends NotificationFilterSupport {
// Serializes this instance in the old serial form
//
ObjectOutputStream.PutField fields = out.putFields();
fields.put("mySelectObjNameList", (Vector)selectedNames);
fields.put("myDeselectObjNameList", (Vector)deselectedNames);
fields.put("mySelectObjNameList", selectedNames);
fields.put("myDeselectObjNameList", deselectedNames);
out.writeFields();
}
else
......
......@@ -1111,7 +1111,7 @@ public class RelationService extends NotificationBroadcasterSupport
throw new IllegalArgumentException(excMsg);
}
if (!(oldValue instanceof ArrayList))
if (!(oldValue instanceof ArrayList<?>))
oldValue = new ArrayList<ObjectName>(oldValue);
RELATION_LOGGER.entering(RelationService.class.getName(),
......@@ -1881,7 +1881,7 @@ public class RelationService extends NotificationBroadcasterSupport
"getRole",
params,
signature));
if (invokeResult == null || invokeResult instanceof ArrayList)
if (invokeResult == null || invokeResult instanceof ArrayList<?>)
result = invokeResult;
else
result = new ArrayList<ObjectName>(invokeResult);
......@@ -2786,7 +2786,7 @@ public class RelationService extends NotificationBroadcasterSupport
// Note that it is possible that the MBean has already been removed
// from the internal map: this is the case when the MBean is
// unregistered, the role is updated, then we arrive here.
HashMap mbeanRefMap = (HashMap)
Map<String,List<String>> mbeanRefMap =
(myRefedMBeanObjName2RelIdsMap.get(objectName));
if (mbeanRefMap == null) {
......@@ -2796,11 +2796,11 @@ public class RelationService extends NotificationBroadcasterSupport
return true;
}
ArrayList roleNames = new ArrayList();
List<String> roleNames = null;
if (!allRolesFlag) {
// Now retrieves the roles of current relation where the MBean
// was referenced
roleNames = (ArrayList)(mbeanRefMap.get(relationId));
roleNames = mbeanRefMap.get(relationId);
// Removes obsolete reference to role
int obsRefIdx = roleNames.indexOf(roleName);
......@@ -2840,8 +2840,8 @@ public class RelationService extends NotificationBroadcasterSupport
//
// -exception RelationServiceNotRegisteredException if the Relation
// Service is not registered in the MBean Server.
private void updateUnregistrationListener(List newRefList,
List obsoleteRefList)
private void updateUnregistrationListener(List<ObjectName> newRefList,
List<ObjectName> obsoleteRefList)
throws RelationServiceNotRegisteredException {
if (newRefList != null && obsoleteRefList != null) {
......@@ -2871,24 +2871,14 @@ public class RelationService extends NotificationBroadcasterSupport
// Enables ObjectNames in newRefList
if (newRefList != null) {
for (Iterator newRefIter = newRefList.iterator();
newRefIter.hasNext();) {
ObjectName newObjName = (ObjectName)
(newRefIter.next());
for (ObjectName newObjName : newRefList)
myUnregNtfFilter.enableObjectName(newObjName);
}
}
if (obsoleteRefList != null) {
// Disables ObjectNames in obsoleteRefList
for (Iterator obsRefIter = obsoleteRefList.iterator();
obsRefIter.hasNext();) {
ObjectName obsObjName = (ObjectName)
(obsRefIter.next());
for (ObjectName obsObjName : obsoleteRefList)
myUnregNtfFilter.disableObjectName(obsObjName);
}
}
// Under test
......@@ -3047,18 +3037,13 @@ public class RelationService extends NotificationBroadcasterSupport
// to see which roles have not been initialized
// Note: no need to test if list not null before cloning, not allowed
// to have an empty relation type.
ArrayList roleInfoList = (ArrayList)
(((ArrayList)(relType.getRoleInfos())).clone());
List<RoleInfo> roleInfoList = new ArrayList<RoleInfo>(relType.getRoleInfos());
if (roleList != null) {
for (Iterator roleIter = roleList.iterator();
roleIter.hasNext();) {
Role currRole = (Role)(roleIter.next());
for (Role currRole : roleList.asList()) {
String currRoleName = currRole.getRoleName();
ArrayList currRoleValue = (ArrayList)
(currRole.getRoleValue());
List<ObjectName> currRoleValue = currRole.getRoleValue();
// Retrieves corresponding role info
// Can throw a RoleInfoNotFoundException to be converted into a
// RoleNotFoundException
......@@ -3137,9 +3122,7 @@ public class RelationService extends NotificationBroadcasterSupport
// Only role list parameter used, as default initialization of roles
// done automatically in initializeMissingRoles() sets each
// uninitialized role to an empty value.
for (Iterator roleIter = roleList.iterator();
roleIter.hasNext();) {
Role currRole = (Role)(roleIter.next());
for (Role currRole : roleList.asList()) {
// Creates a dummy empty ArrayList of ObjectNames to be the old
// role value :)
List<ObjectName> dummyList = new ArrayList<ObjectName>();
......@@ -3191,7 +3174,7 @@ public class RelationService extends NotificationBroadcasterSupport
// -exception IllegalArgumentException if null parameter
private Integer checkRoleInt(int chkType,
String roleName,
List roleValue,
List<ObjectName> roleValue,
RoleInfo roleInfo,
boolean writeChkFlag)
throws IllegalArgumentException {
......@@ -3266,9 +3249,7 @@ public class RelationService extends NotificationBroadcasterSupport
// registered in the same MBean Server.
String expClassName = roleInfo.getRefMBeanClassName();
for (Iterator refMBeanIter = roleValue.iterator();
refMBeanIter.hasNext();) {
ObjectName currObjName = (ObjectName)(refMBeanIter.next());
for (ObjectName currObjName : roleValue) {
// Checks it is registered
if (currObjName == null) {
......@@ -3330,7 +3311,7 @@ public class RelationService extends NotificationBroadcasterSupport
ObjectName relationObjName,
String relationId,
String relationTypeName,
List roleInfoList)
List<RoleInfo> roleInfoList)
throws IllegalArgumentException,
RelationServiceNotRegisteredException,
InvalidRoleValueException {
......@@ -3361,10 +3342,8 @@ public class RelationService extends NotificationBroadcasterSupport
// with an empty list of ObjectNames.
// A check is performed to verify that the role can be set to an
// empty value, according to its minimum cardinality
for (Iterator roleInfoIter = roleInfoList.iterator();
roleInfoIter.hasNext();) {
for (RoleInfo currRoleInfo : roleInfoList) {
RoleInfo currRoleInfo = (RoleInfo)(roleInfoIter.next());
String roleName = currRoleInfo.getName();
// Creates an empty value
......@@ -3663,7 +3642,7 @@ public class RelationService extends NotificationBroadcasterSupport
// not exist in the relation
private void handleReferenceUnregistration(String relationId,
ObjectName objectName,
List roleNameList)
List<String> roleNameList)
throws IllegalArgumentException,
RelationServiceNotRegisteredException,
RelationNotFoundException,
......@@ -3694,14 +3673,12 @@ public class RelationService extends NotificationBroadcasterSupport
// Flag to specify if the relation has to be deleted
boolean deleteRelFlag = false;
for (Iterator roleNameIter = roleNameList.iterator();
roleNameIter.hasNext();) {
for (String currRoleName : roleNameList) {
if (deleteRelFlag) {
break;
}
String currRoleName = (String)(roleNameIter.next());
// Retrieves number of MBeans currently referenced in role
// BEWARE! Do not use getRole() as role may be not readable
//
......@@ -3753,10 +3730,7 @@ public class RelationService extends NotificationBroadcasterSupport
// using setRole(). So the Relation Service will update the
// myRefedMBeanObjName2RelIdsMap to refelect the new role
// value!
for (Iterator roleNameIter = roleNameList.iterator();
roleNameIter.hasNext();) {
String currRoleName = (String)(roleNameIter.next());
for (String currRoleName : roleNameList) {
if (relObj instanceof RelationSupport) {
// Internal relation
......
......@@ -108,7 +108,7 @@ public class RelationSupport
// via Relation Service setRole() and setRoles() methods
// - if the relation is internal to the Relation Service, via
// setRoleInt() and setRolesInt() methods.
private Map<String,Role> myRoleName2ValueMap = new HashMap<String,Role>();
private final Map<String,Role> myRoleName2ValueMap = new HashMap<String,Role>();
// Flag to indicate if the object has been added in the Relation Service
private final AtomicBoolean myInRelServFlg = new AtomicBoolean();
......@@ -424,7 +424,7 @@ public class RelationSupport
}
}
ArrayList roleValue = (ArrayList)(role.getRoleValue());
List<ObjectName> roleValue = role.getRoleValue();
RELATION_LOGGER.exiting(RelationSupport.class.getName(),
"getRoleCardinality");
......@@ -855,8 +855,7 @@ public class RelationSupport
// Note: no need to test if role value (list) not null before
// cloning, null value not allowed, empty list if
// nothing.
result = (ArrayList)
(((ArrayList)(role.getRoleValue())).clone());
result = new ArrayList<ObjectName>(role.getRoleValue());
} else {
// Role retrieved during multi-role retrieval: returns the
......@@ -1492,10 +1491,7 @@ public class RelationSupport
RoleList roleList = new RoleList();
RoleUnresolvedList roleUnresList = new RoleUnresolvedList();
for (Iterator roleIter = list.iterator();
roleIter.hasNext();) {
Role currRole = (Role)(roleIter.next());
for (Role currRole : list.asList()) {
Object currResult = null;
// Can throw:
......@@ -1617,12 +1613,10 @@ public class RelationSupport
synchronized(myRoleName2ValueMap) {
for (Iterator roleIter = list.iterator();
roleIter.hasNext();) {
for (Role currRole : list.asList()) {
// No need to check if role is null, it is not allowed to store
// a null role in a RoleList :)
Role currRole = (Role)(roleIter.next());
String currRoleName = currRole.getRoleName();
if (myRoleName2ValueMap.containsKey(currRoleName)) {
......
......@@ -228,9 +228,9 @@ public class Role implements Serializable {
public String toString() {
StringBuilder result = new StringBuilder();
result.append("role name: " + name + "; role value: ");
for (Iterator objNameIter = objectNameList.iterator();
for (Iterator<ObjectName> objNameIter = objectNameList.iterator();
objNameIter.hasNext();) {
ObjectName currObjName = (ObjectName)(objNameIter.next());
ObjectName currObjName = objNameIter.next();
result.append(currObjName.toString());
if (objNameIter.hasNext()) {
result.append(", ");
......@@ -325,7 +325,7 @@ public class Role implements Serializable {
//
ObjectOutputStream.PutField fields = out.putFields();
fields.put("myName", name);
fields.put("myObjNameList", (ArrayList)objectNameList);
fields.put("myObjNameList", objectNameList);
out.writeFields();
}
else
......
......@@ -25,6 +25,7 @@
package javax.management.relation;
import com.sun.jmx.mbeanserver.Util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
......@@ -140,7 +141,7 @@ public class RoleList extends ArrayList<Object> {
checkTypeSafe(this);
typeSafe = true;
}
return (List<Role>) (List) this;
return Util.cast(this);
}
//
......
......@@ -172,7 +172,7 @@ public class RoleResult implements Serializable {
roleList = new RoleList();
for (Iterator roleIter = list.iterator();
for (Iterator<?> roleIter = list.iterator();
roleIter.hasNext();) {
Role currRole = (Role)(roleIter.next());
roleList.add((Role)(currRole.clone()));
......@@ -195,7 +195,7 @@ public class RoleResult implements Serializable {
unresolvedRoleList = new RoleUnresolvedList();
for (Iterator roleUnresIter = unresolvedList.iterator();
for (Iterator<?> roleUnresIter = unresolvedList.iterator();
roleUnresIter.hasNext();) {
RoleUnresolved currRoleUnres =
(RoleUnresolved)(roleUnresIter.next());
......
......@@ -285,9 +285,9 @@ public class RoleUnresolved implements Serializable {
result.append("role name: " + roleName);
if (roleValue != null) {
result.append("; value: ");
for (Iterator objNameIter = roleValue.iterator();
for (Iterator<ObjectName> objNameIter = roleValue.iterator();
objNameIter.hasNext();) {
ObjectName currObjName = (ObjectName)(objNameIter.next());
ObjectName currObjName = objNameIter.next();
result.append(currObjName.toString());
if (objNameIter.hasNext()) {
result.append(", ");
......@@ -344,7 +344,7 @@ public class RoleUnresolved implements Serializable {
//
ObjectOutputStream.PutField fields = out.putFields();
fields.put("myRoleName", roleName);
fields.put("myRoleValue", (ArrayList)roleValue);
fields.put("myRoleValue", roleValue);
fields.put("myPbType", problemType);
out.writeFields();
}
......
......@@ -25,6 +25,7 @@
package javax.management.relation;
import com.sun.jmx.mbeanserver.Util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
......@@ -140,7 +141,7 @@ public class RoleUnresolvedList extends ArrayList<Object> {
checkTypeSafe(this);
typeSafe = true;
}
return (List<RoleUnresolved>) (List) this;
return Util.cast(this);
}
//
......
......@@ -367,7 +367,8 @@ public class JMXConnectorFactory {
return provider.newJMXConnector(serviceURL, fixedenv);
}
private static String resolvePkgs(Map env) throws JMXProviderException {
private static String resolvePkgs(Map<String, ?> env)
throws JMXProviderException {
Object pkgsObject = null;
......@@ -521,7 +522,7 @@ public class JMXConnectorFactory {
return null;
}
static ClassLoader resolveClassLoader(Map environment) {
static ClassLoader resolveClassLoader(Map<String, ?> environment) {
ClassLoader loader = null;
if (environment != null) {
......
......@@ -118,7 +118,8 @@ class NoCallStackClassLoader extends ClassLoader {
* if it is one of the classes whose byte code we have, or
* delegate the load if it is one of the referenced classes.
*/
protected Class findClass(String name) throws ClassNotFoundException {
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
for (int i = 0; i < classNames.length; i++) {
if (name.equals(classNames[i])) {
return defineClass(classNames[i], byteCodes[i], 0,
......
......@@ -31,7 +31,6 @@ import java.rmi.MarshalledObject;
import java.rmi.Remote;
import java.util.Set;
import javax.management.Attribute;
import javax.management.AttributeList;
import javax.management.AttributeNotFoundException;
import javax.management.InstanceAlreadyExistsException;
......@@ -45,11 +44,11 @@ import javax.management.MBeanRegistrationException;
import javax.management.MBeanServerConnection;
import javax.management.NotCompliantMBeanException;
import javax.management.NotificationFilter;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.QueryExp;
import javax.management.ReflectionException;
import javax.management.RuntimeMBeanException;
import javax.management.RuntimeOperationsException;
import javax.management.remote.NotificationResult;
import javax.security.auth.Subject;
......@@ -89,8 +88,9 @@ import javax.security.auth.Subject;
* even though it would add useful information to the documentation. The
* reason is that it was only added in Mustang (Java SE 6), whereas versions
* 1.4 and 2.0 of the JMX API must be implementable on Tiger per our
* commitments for JSR 255.
* commitments for JSR 255. This is also why we suppress rawtypes warnings.
*/
@SuppressWarnings("rawtypes")
public interface RMIConnection extends Closeable, Remote {
/**
* <p>Returns the connection ID. This string is different for
......
......@@ -308,6 +308,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
}
}
@SuppressWarnings("rawtypes") // MarshalledObject
public ObjectInstance createMBean(String className,
ObjectName name,
MarshalledObject params,
......@@ -368,6 +369,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
}
}
@SuppressWarnings("rawtypes") // MarshalledObject
public ObjectInstance createMBean(String className,
ObjectName name,
ObjectName loaderName,
......@@ -493,6 +495,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
}
}
@SuppressWarnings("rawtypes") // MarshalledObject
public Set<ObjectInstance>
queryMBeans(ObjectName name,
MarshalledObject query,
......@@ -527,6 +530,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
}
}
@SuppressWarnings("rawtypes") // MarshalledObject
public Set<ObjectName>
queryNames(ObjectName name,
MarshalledObject query,
......@@ -668,6 +672,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
}
}
@SuppressWarnings("rawtypes") // MarshalledObject
public void setAttribute(ObjectName name,
MarshalledObject attribute,
Subject delegationSubject)
......@@ -720,6 +725,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
}
}
@SuppressWarnings("rawtypes") // MarshalledObject
public AttributeList setAttributes(ObjectName name,
MarshalledObject attributes,
Subject delegationSubject)
......@@ -765,6 +771,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
}
}
@SuppressWarnings("rawtypes") // MarshalledObject
public Object invoke(ObjectName name,
String operationName,
MarshalledObject params,
......@@ -928,6 +935,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
}
}
@SuppressWarnings("rawtypes") // MarshalledObject
public Integer[] addNotificationListeners(ObjectName[] names,
MarshalledObject[] filters,
Subject[] delegationSubjects)
......@@ -1013,6 +1021,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
}
}
@SuppressWarnings("rawtypes") // MarshalledObject
public void addNotificationListener(ObjectName name,
ObjectName listener,
MarshalledObject filter,
......@@ -1148,6 +1157,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
}
}
@SuppressWarnings("rawtypes") // MarshalledObject
public void removeNotificationListener(ObjectName name,
ObjectName listener,
MarshalledObject filter,
......@@ -1809,7 +1819,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
}
}
private static <T> T unwrap(final MarshalledObject mo,
private static <T> T unwrap(final MarshalledObject<?> mo,
final ClassLoader cl,
final Class<T> wrappedClass)
throws IOException {
......@@ -1847,7 +1857,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
return null;
}
private static <T> T unwrap(final MarshalledObject mo,
private static <T> T unwrap(final MarshalledObject<?> mo,
final ClassLoader cl1,
final ClassLoader cl2,
final Class<T> wrappedClass)
......
......@@ -28,6 +28,7 @@ package javax.management.remote.rmi;
import com.sun.jmx.event.DaemonThreadFactory;
import com.sun.jmx.event.EventConnection;
import com.sun.jmx.mbeanserver.PerThreadGroupPool;
import com.sun.jmx.mbeanserver.Util;
import com.sun.jmx.remote.internal.ClientCommunicatorAdmin;
import com.sun.jmx.remote.internal.ClientListenerInfo;
import com.sun.jmx.remote.internal.ClientNotifForwarder;
......@@ -584,7 +585,7 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
// added for re-connection
private Integer addListenerWithSubject(ObjectName name,
MarshalledObject filter,
MarshalledObject<NotificationFilter> filter,
Subject delegationSubject,
boolean reconnect)
throws InstanceNotFoundException, IOException {
......@@ -595,7 +596,8 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
"(ObjectName,MarshalledObject,Subject)");
final ObjectName[] names = new ObjectName[] {name};
final MarshalledObject[] filters = new MarshalledObject[] {filter};
final MarshalledObject<NotificationFilter>[] filters =
Util.cast(new MarshalledObject<?>[] {filter});
final Subject[] delegationSubjects = new Subject[] {
delegationSubject
};
......@@ -611,7 +613,7 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
// added for re-connection
private Integer[] addListenersWithSubjects(ObjectName[] names,
MarshalledObject[] filters,
MarshalledObject<NotificationFilter>[] filters,
Subject[] delegationSubjects,
boolean reconnect)
throws InstanceNotFoundException, IOException {
......@@ -1362,7 +1364,7 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
//--------------------------------------------------------------------
private class RMINotifClient extends ClientNotifForwarder {
public RMINotifClient(ClassLoader cl, Map env) {
public RMINotifClient(ClassLoader cl, Map<String, ?> env) {
super(cl, env);
}
......@@ -1444,8 +1446,8 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
Integer[] listenerIDs;
final ObjectName[] names =
new ObjectName[] {MBeanServerDelegate.DELEGATE_NAME};
final MarshalledObject[] filters =
new MarshalledObject[] {sFilter};
final MarshalledObject<NotificationFilter>[] filters =
Util.cast(new MarshalledObject<?>[] {sFilter});
final Subject[] subjects = new Subject[] {null};
try {
listenerIDs =
......@@ -1580,7 +1582,8 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
final ObjectName[] names = new ObjectName[len];
final NotificationListener[] listeners = new NotificationListener[len];
final NotificationFilter[] filters = new NotificationFilter[len];
final MarshalledObject[] mFilters = new MarshalledObject[len];
final MarshalledObject<NotificationFilter>[] mFilters =
Util.cast(new MarshalledObject<?>[len]);
final Object[] handbacks = new Object[len];
for (i=0;i<len;i++) {
......@@ -1742,7 +1745,7 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
* @exception IOException if the connection to the ORB failed.
**/
static RMIServer connectStub(RMIServer rmiServer,
Map environment)
Map<String, ?> environment)
throws IOException {
if (rmiServer instanceof javax.rmi.CORBA.Stub) {
javax.rmi.CORBA.Stub stub = (javax.rmi.CORBA.Stub) rmiServer;
......@@ -1776,7 +1779,7 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
* does not point to an {@link org.omg.CORBA.ORB ORB}.
* @exception IOException if the ORB initialization failed.
**/
static ORB resolveOrb(Map environment)
static ORB resolveOrb(Map<String, ?> environment)
throws IOException {
if (environment != null) {
final Object orb = environment.get(EnvHelp.DEFAULT_ORB);
......@@ -2004,7 +2007,7 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
}
}
private RMIServer findRMIServerIIOP(String ior, Map env, boolean isIiop) {
private RMIServer findRMIServerIIOP(String ior, Map<String, ?> env, boolean isIiop) {
// could forbid "rmi:" URL here -- but do we need to?
final ORB orb = (ORB)
env.get(EnvHelp.DEFAULT_ORB);
......@@ -2012,7 +2015,7 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
return (RMIServer) PortableRemoteObject.narrow(stub, RMIServer.class);
}
private RMIServer findRMIServerJRMP(String base64, Map env, boolean isIiop)
private RMIServer findRMIServerJRMP(String base64, Map<String, ?> env, boolean isIiop)
throws IOException {
// could forbid "iiop:" URL here -- but do we need to?
final byte[] serialized;
......@@ -2046,7 +2049,8 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
this.loader = cl;
}
protected Class resolveClass(ObjectStreamClass classDesc)
@Override
protected Class<?> resolveClass(ObjectStreamClass classDesc)
throws IOException, ClassNotFoundException {
return Class.forName(classDesc.getName(), false, loader);
}
......@@ -2121,13 +2125,13 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
private static final String rmiServerImplStubClassName =
RMIServer.class.getName() + "Impl_Stub";
private static final Class rmiServerImplStubClass;
private static final Class<?> rmiServerImplStubClass;
private static final String rmiConnectionImplStubClassName =
RMIConnection.class.getName() + "Impl_Stub";
private static final Class<?> rmiConnectionImplStubClass;
private static final String pRefClassName =
"com.sun.jmx.remote.internal.PRef";
private static final Constructor proxyRefConstructor;
private static final Constructor<?> proxyRefConstructor;
static {
final String pRefByteCodeString =
"\312\376\272\276\0\0\0.\0\27\12\0\5\0\15\11\0\4\0\16\13\0\17\0"+
......@@ -2162,7 +2166,7 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
}
};
Class serverStubClass;
Class<?> serverStubClass;
try {
serverStubClass = Class.forName(rmiServerImplStubClassName);
} catch (Exception e) {
......@@ -2175,10 +2179,10 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
rmiServerImplStubClass = serverStubClass;
Class<?> stubClass;
Constructor constr;
Constructor<?> constr;
try {
stubClass = Class.forName(rmiConnectionImplStubClassName);
constr = (Constructor) AccessController.doPrivileged(action);
constr = (Constructor<?>) AccessController.doPrivileged(action);
} catch (Exception e) {
logger.error("<clinit>",
"Failed to initialize proxy reference constructor "+
......@@ -2198,9 +2202,8 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
RemoteRef ref = stub.getRef();
RemoteRef proxyRef = (RemoteRef)
proxyRefConstructor.newInstance(new Object[] {ref});
final Class[] constrTypes = {RemoteRef.class};
final Constructor rmiConnectionImplStubConstructor =
rmiConnectionImplStubClass.getConstructor(constrTypes);
final Constructor<?> rmiConnectionImplStubConstructor =
rmiConnectionImplStubClass.getConstructor(RemoteRef.class);
Object[] args = {proxyRef};
RMIConnection proxyStub = (RMIConnection)
rmiConnectionImplStubConstructor.newInstance(args);
......@@ -2328,7 +2331,7 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable
"com.sun.jmx.remote.internal.ProxyStub";
private static final String pInputStreamClassName =
"com.sun.jmx.remote.internal.PInputStream";
private static final Class proxyStubClass;
private static final Class<?> proxyStubClass;
static {
final String proxyStubByteCodeString =
"\312\376\272\276\0\0\0.\0)\12\0\14\0\26\7\0\27\12\0\14\0\30\12"+
......
......@@ -423,7 +423,7 @@ public class RMIConnectorServer extends JMXConnectorServer {
try {
if (tracing) logger.trace("start", "binding to " + jndiUrl);
final Hashtable usemap = EnvHelp.mapToHashtable(attributes);
final Hashtable<?, ?> usemap = EnvHelp.mapToHashtable(attributes);
bind(jndiUrl, usemap, objref, rebind);
......@@ -555,7 +555,7 @@ public class RMIConnectorServer extends JMXConnectorServer {
logger.trace("stop",
"unbind from external directory: " + boundJndiUrl);
final Hashtable usemap = EnvHelp.mapToHashtable(attributes);
final Hashtable<?, ?> usemap = EnvHelp.mapToHashtable(attributes);
InitialContext ctx =
new InitialContext(usemap);
......@@ -655,7 +655,7 @@ public class RMIConnectorServer extends JMXConnectorServer {
* @param rmiServer The object to bind in the registry
* @param rebind true if the object must be rebound.
**/
void bind(String jndiUrl, Hashtable attributes,
void bind(String jndiUrl, Hashtable<?, ?> attributes,
RMIServer rmiServer, boolean rebind)
throws NamingException, MalformedURLException {
// if jndiURL is not null, we nust bind the stub to a
......@@ -692,7 +692,8 @@ public class RMIConnectorServer extends JMXConnectorServer {
* @param attributes A Map containing environment parameters,
* built from the Map specified at this object creation.
**/
private void encodeStubInAddress(RMIServer rmiServer, Map attributes)
private void encodeStubInAddress(
RMIServer rmiServer, Map<String, ?> attributes)
throws IOException {
final String protocol, host;
......@@ -735,14 +736,16 @@ public class RMIConnectorServer extends JMXConnectorServer {
/**
* Returns the IOR of the given rmiServer.
**/
static String encodeStub(RMIServer rmiServer, Map env) throws IOException {
static String encodeStub(
RMIServer rmiServer, Map<String, ?> env) throws IOException {
if (rmiServer instanceof javax.rmi.CORBA.Stub)
return "/ior/" + encodeIIOPStub(rmiServer, env);
else
return "/stub/" + encodeJRMPStub(rmiServer, env);
}
static String encodeJRMPStub(RMIServer rmiServer, Map env)
static String encodeJRMPStub(
RMIServer rmiServer, Map<String, ?> env)
throws IOException {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream oout = new ObjectOutputStream(bout);
......@@ -752,7 +755,8 @@ public class RMIConnectorServer extends JMXConnectorServer {
return byteArrayToBase64(bytes);
}
static String encodeIIOPStub(RMIServer rmiServer, Map env)
static String encodeIIOPStub(
RMIServer rmiServer, Map<String, ?> env)
throws IOException {
try {
javax.rmi.CORBA.Stub stub =
......@@ -767,7 +771,8 @@ public class RMIConnectorServer extends JMXConnectorServer {
* Object that we will bind to the registry.
* This object is a stub connected to our RMIServerImpl.
**/
private static RMIServer objectToBind(RMIServerImpl rmiServer, Map env)
private static RMIServer objectToBind(
RMIServerImpl rmiServer, Map<String, ?> env)
throws IOException {
return RMIConnector.
connectStub((RMIServer)rmiServer.toStub(),env);
......
......@@ -75,7 +75,7 @@ public abstract class RMIServerImpl implements Closeable, RMIServer {
* to an empty Map.
*/
public RMIServerImpl(Map<String,?> env) {
this.env = (env == null) ? Collections.EMPTY_MAP : env;
this.env = (env == null) ? Collections.<String,Object>emptyMap() : env;
}
void setRMIConnectorServer(RMIConnectorServer connServer)
......@@ -337,8 +337,9 @@ public abstract class RMIServerImpl implements Closeable, RMIServer {
synchronized (clientList) {
dropDeadReferences();
for (Iterator it = clientList.iterator(); it.hasNext(); ) {
WeakReference wr = (WeakReference) it.next();
for (Iterator<WeakReference<RMIConnection>> it = clientList.iterator();
it.hasNext(); ) {
WeakReference<RMIConnection> wr = it.next();
if (wr.get() == client) {
it.remove();
break;
......@@ -417,9 +418,10 @@ public abstract class RMIServerImpl implements Closeable, RMIServer {
dropDeadReferences(), this will usually be the first
element of the list, but a garbage collection could have
happened in between. */
for (Iterator it = clientList.iterator(); it.hasNext(); ) {
WeakReference wr = (WeakReference) it.next();
RMIConnection client = (RMIConnection) wr.get();
for (Iterator<WeakReference<RMIConnection>> it = clientList.iterator();
it.hasNext(); ) {
WeakReference<RMIConnection> wr = it.next();
RMIConnection client = wr.get();
it.remove();
if (client != null) {
try {
......@@ -475,10 +477,10 @@ public abstract class RMIServerImpl implements Closeable, RMIServer {
buf.append("//").append(clientHost);
buf.append(" ");
if (subject != null) {
Set principals = subject.getPrincipals();
Set<Principal> principals = subject.getPrincipals();
String sep = "";
for (Iterator it = principals.iterator(); it.hasNext(); ) {
Principal p = (Principal) it.next();
for (Iterator<Principal> it = principals.iterator(); it.hasNext(); ) {
Principal p = it.next();
String name = p.getName().replace(' ', '_').replace(';', ':');
buf.append(sep).append(name);
sep = ";";
......@@ -492,8 +494,9 @@ public abstract class RMIServerImpl implements Closeable, RMIServer {
private void dropDeadReferences() {
synchronized (clientList) {
for (Iterator it = clientList.iterator(); it.hasNext(); ) {
WeakReference wr = (WeakReference) it.next();
for (Iterator<WeakReference<RMIConnection>> it = clientList.iterator();
it.hasNext(); ) {
WeakReference<RMIConnection> wr = it.next();
if (wr.get() == null)
it.remove();
}
......@@ -522,7 +525,7 @@ public abstract class RMIServerImpl implements Closeable, RMIServer {
private MBeanServer mbeanServer;
private final Map env;
private final Map<String, ?> env;
private RMIConnectorServer connServer;
......
......@@ -248,8 +248,7 @@ public class Timer extends NotificationBroadcasterSupport
*/
public synchronized MBeanNotificationInfo[] getNotificationInfo() {
Set<String> notifTypes = new TreeSet<String>();
for (Iterator it = timerTable.values().iterator(); it.hasNext(); ) {
Object[] entry = (Object[]) it.next();
for (Object[] entry : timerTable.values()) {
TimerNotification notif = (TimerNotification)
entry[TIMER_NOTIF_INDEX];
notifTypes.add(notif.getType());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部