aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorEdwin Steiner <edwin.steiner@gmx.net>2007-02-16 19:19:11 +0000
committerTom Tromey <tromey@gcc.gnu.org>2007-02-16 19:19:11 +0000
commitd16c4b1a166ea5413487d3935c385ee82f560e81 (patch)
treee7ef2ef7632f57e6591696d549ab149a2dd28339 /libjava
parentfa681e3960f7fc93b48e06bfb4131371a9e9b3ad (diff)
downloadgcc-d16c4b1a166ea5413487d3935c385ee82f560e81.zip
gcc-d16c4b1a166ea5413487d3935c385ee82f560e81.tar.gz
gcc-d16c4b1a166ea5413487d3935c385ee82f560e81.tar.bz2
re PR classpath/28652 (JBoss fails to start due class cast exception in the management classes)
2006-10-14 Edwin Steiner <edwin.steiner@gmx.net> PR classpath/28652: * javax/management/MBeanInfo.java (MBeanInfo): Use clone to duplicate the arrays in order to preserve the array type. From-SVN: r122050
Diffstat (limited to 'libjava')
-rw-r--r--libjava/classpath/ChangeLog7
-rw-r--r--libjava/classpath/javax/management/MBeanInfo.java24
-rw-r--r--libjava/classpath/lib/javax/management/MBeanInfo.classbin4188 -> 4037 bytes
3 files changed, 15 insertions, 16 deletions
diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog
index 577fa67..2288788 100644
--- a/libjava/classpath/ChangeLog
+++ b/libjava/classpath/ChangeLog
@@ -1,3 +1,10 @@
+2006-10-14 Edwin Steiner <edwin.steiner@gmx.net>
+
+ PR classpath/28652:
+ * javax/management/MBeanInfo.java (MBeanInfo):
+ Use clone to duplicate the arrays in order to
+ preserve the array type.
+
2007-02-16 Andrew Haley <aph@redhat.com>
* gnu/java/lang/management/MemoryMXBeanImpl.java,
diff --git a/libjava/classpath/javax/management/MBeanInfo.java b/libjava/classpath/javax/management/MBeanInfo.java
index d30de04..64e627f 100644
--- a/libjava/classpath/javax/management/MBeanInfo.java
+++ b/libjava/classpath/javax/management/MBeanInfo.java
@@ -160,34 +160,26 @@ public class MBeanInfo
{
className = name;
description = desc;
+
if (attribs == null)
attributes = new MBeanAttributeInfo[0];
else
- {
- attributes = new MBeanAttributeInfo[attribs.length];
- System.arraycopy(attribs, 0, attributes, 0, attribs.length);
- }
+ attributes = (MBeanAttributeInfo[]) attribs.clone();
+
if (cons == null)
constructors = new MBeanConstructorInfo[0];
else
- {
- constructors = new MBeanConstructorInfo[cons.length];
- System.arraycopy(cons, 0, constructors, 0, cons.length);
- }
+ constructors = (MBeanConstructorInfo[]) cons.clone();
+
if (ops == null)
operations = new MBeanOperationInfo[0];
else
- {
- operations = new MBeanOperationInfo[ops.length];
- System.arraycopy(ops, 0, operations, 0, ops.length);
- }
+ operations = (MBeanOperationInfo[]) ops.clone();
+
if (notifs == null)
notifications = new MBeanNotificationInfo[0];
else
- {
- notifications = new MBeanNotificationInfo[notifs.length];
- System.arraycopy(notifs, 0, notifications, 0, notifs.length);
- }
+ notifications = (MBeanNotificationInfo[]) notifs.clone();
}
/**
diff --git a/libjava/classpath/lib/javax/management/MBeanInfo.class b/libjava/classpath/lib/javax/management/MBeanInfo.class
index 9af2932..956226e 100644
--- a/libjava/classpath/lib/javax/management/MBeanInfo.class
+++ b/libjava/classpath/lib/javax/management/MBeanInfo.class
Binary files differ