Bug 34276 - The updated TestBeans example which works via the management server fails
Summary: The updated TestBeans example which works via the management server fails
Status: RESOLVED FIXED
Alias: None
Product: classpath
Classification: Unclassified
Component: classpath (show other bugs)
Version: unspecified
: P3 normal
Target Milestone: 0.97
Assignee: Andrew John Hughes
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-11-28 22:43 UTC by Andrew John Hughes
Modified: 2008-02-15 21:32 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2007-11-28 22:43:53


Attachments
First Patch: Fix parameters (959 bytes, patch)
2007-12-02 01:15 UTC, Andrew John Hughes
Details | Diff
Second Patch: Fix Translator (975 bytes, patch)
2007-12-02 01:16 UTC, Andrew John Hughes
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew John Hughes 2007-11-28 22:43:38 UTC
cacao -cp examples/examples.zip gnu.classpath.examples.management.TestBeans

Exception in thread "main" javax.management.IntrospectionException: The getMBeanInfo method could not be found.
   at gnu.javax.management.Server.getMBeanInfo(Server.java:1041)
   at gnu.classpath.examples.management.TestBeans.main(TestBeans.java:38)
Comment 1 cvs-commit@developer.classpath.org 2007-11-30 01:16:08 UTC
Subject: Bug 34276

CVSROOT:	/cvsroot/classpath
Module name:	classpath
Changes by:	Andrew John Hughes <gnu_andrew>	07/11/30 01:15:19

Modified files:
	.              : ChangeLog 
	gnu/java/lang/management: BeanImpl.java 
	gnu/javax/management: Server.java 

Log message:
	2007-11-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
	
	        PR classpath/34276:
		* gnu/java/lang/management/BeanImpl.java:
		(getDescription(MBeanConstructorInfo,MBeanParameterInfo,int)):
		Added to provide a default description if the current one is null.
		(getDescription(MBeanOperationInfo,MBeanParameterInfo,int)):
		Likewise.
		(getParameterName(MBeanConstructorInfo,MBeanParameterInfo,int)):
		Likewise for the name.
		(getParameterName(MBeanOperationInfo,MBeanParameterInfo,int)):
		Likewise.
		* gnu/javax/management/Server.java:
		(getMBeanInfo()): Try using a StandardMBean wrapper if reflection
		fails to find getMBeanInfo().

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.9443&r2=1.9444
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/java/lang/management/BeanImpl.java?cvsroot=classpath&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/javax/management/Server.java?cvsroot=classpath&r1=1.5&r2=1.6



Comment 2 Andrew John Hughes 2007-11-30 01:18:14 UTC
Current issue:

Exception in thread "main" javax.management.ReflectionException: The method threw an exception
   at gnu.javax.management.Server.getMBeanInfo(Server.java:1059)
   at gnu.classpath.examples.management.TestBeans.main(TestBeans.java:38)
Caused by: java.lang.reflect.InvocationTargetException
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:364)
   at gnu.javax.management.Server.getMBeanInfo(Server.java:1035)
   ...1 more
Caused by: java.lang.InternalError: The type used does not have an open type translation.
   at gnu.javax.management.Translator.translate(Translator.java:481)
   at gnu.javax.management.Translator.getTypeFromClass(Translator.java:495)
   at gnu.javax.management.Translator.translate(Translator.java:455)
   at gnu.java.lang.management.BeanImpl.cacheMBeanInfo(BeanImpl.java:170)
   at javax.management.StandardMBean.getMBeanInfo(StandardMBean.java:695)
   at gnu.java.lang.management.BeanImpl.getMBeanInfo(BeanImpl.java:407)
   at java.lang.reflect.Method.invokeNative(Native Method)
   ...3 more
Comment 3 cvs-commit@developer.classpath.org 2007-12-02 01:11:29 UTC
Subject: Bug 34276

CVSROOT:	/cvsroot/classpath
Module name:	classpath
Changes by:	Andrew John Hughes <gnu_andrew>	07/12/02 01:11:04

Modified files:
	.              : ChangeLog 
	gnu/javax/management: Translator.java 

Log message:
	2007-12-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
	
	        PR classpath/34276:
		* gnu/javax/management/Translator.java:
		(translate(String)): Select only public methods
		from a composite type, try this translation in all
		cases and exit only when no fields are translated.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.9444&r2=1.9445
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/javax/management/Translator.java?cvsroot=classpath&r1=1.4&r2=1.5



Comment 4 Andrew John Hughes 2007-12-02 01:15:48 UTC
Created attachment 14680 [details]
First Patch: Fix parameters

Add default names and descriptions for parameters.
Comment 5 Andrew John Hughes 2007-12-02 01:16:40 UTC
Created attachment 14681 [details]
Second Patch: Fix Translator

Fix Translator to handle arbitrary data types correctly.
Comment 6 Andrew John Hughes 2007-12-02 01:18:02 UTC
Currently stalled due to lack of annotation support in cacao:

Exception in thread "main" java.lang.UnsatisfiedLinkError: getDeclaredAnnotations
   at java.lang.Class.getDeclaredAnnotations(Class.java:1575)
   at java.lang.Class.getAnnotations(Class.java:1506)
   at java.lang.Class.getAnnotation(Class.java:1485)
   at javax.management.JMX.isMXBeanInterface(JMX.java:123)
   at javax.management.StandardMBean.<init>(StandardMBean.java:163)
   at gnu.javax.management.Server.getMBeanInfo(Server.java:1041)
   at gnu.classpath.examples.management.TestBeans.main(TestBeans.java:38)
Comment 7 Andrew John Hughes 2007-12-09 22:45:12 UTC
CACAO needs --enable-annotations to enable the annotation support.
With this, the example now works, so closing this bug.