Patch-ID# 112045-08 Keywords: security notification address thread listener ber exception hang rmi Synopsis: Java Dynamic Management Kit 4.2 patch Date: May/14/2004 Install Requirements: Additional instructions may be listed below Solaris Release: 8 SunOS Release: 5.8 Unbundled Product: Java Dynamic Management Kit Unbundled Release: 4.2 Xref: Topic: Relevant Architectures: sparc BugId's fixed with this patch: 4381195 4406639 4416912 4468685 4486059 4492741 4496037 4497571 4499265 4499327 4499338 4500398 4510777 4523504 4527169 4527199 4614893 4620163 4621117 4621752 4624466 4625857 4626073 4633253 4637910 4641694 4641696 4641746 4647944 4650415 4653805 4654066 4654674 4662779 4680431 4686953 4691195 4692891 4781797 4783766 4853016 4927360 5021241 5025838 5025849 Changes incorporated in this version: 5025849 5021241 5025838 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: Obsoleted by: Files included with this patch: /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/allclasses-frame.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/DaemonTaskServer.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/DefaultPaths.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/ProxyHandler.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/Task.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/TaskServer.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/comm/GenericHttpConnectorClient.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/comm/HttpConnectorClient.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/comm/HttpsConnectorClient.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/comm/RmiConnectorClient.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/package-frame.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/package-summary.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/package-tree.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/snmp/manager/SnmpEventReportDispatcher.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/snmp/manager/package-frame.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/snmp/manager/package-summary.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/com/sun/jdmk/snmp/manager/package-tree.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/index-all.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/overview-summary.html /SUNWjdmk/jdmk4.2/1.2/docs/locale/C/api/overview-tree.html /SUNWjdmk/jdmk4.2/1.2/lib/jdmkrt.jar /SUNWjdmk/jdmk4.2/1.2/lib/jdmktk.jar Problem Description: 5025838 Bad code generated when an Index is imported from another MIB. 5021241 SnmpRequest::waitForCompletion(0) calls never return 5025849 mibgen fails with NullPointerException when description clause is missing (from 112045-07) 4781797 SnmpAdaptorServer.sendTrap* method throw exception after 497.10 days 4927360 Heatbeat: memory leak (from 112045-06) 4853016 RmiConnectorClient in CascadingAgent need to be given explicit IP address (from 112045-05) 4783766 RmiConnectorClient.disconnect creates problems when remote MBeanServer dies (from 112045-04) 4680431 Timer.removeNotifications(String type) is causing NullPointerException 4686953 mbean exception bug 4653805 URLConnection with timeout option 4626073 Master agent locks up due to synchronization problem in JDMK 4691195 isConnected() returns false inside connection heartbeat notification 4647944 bad pdu type in a response of an SNMP Inform 4662779 SNMP manager may stay blocked without reporting any error 4625857 trap consumer for an EMS using JDMK4.2 4692891 SNMP counter64 response causing problem in JDMK session (from 112045-03) 4654674 OID encoded with subid exceeding 64 bit size are accepted by BerDecoder 4654066 java.lang.IllegalArgumentException if badly encoded trap PDU sent to agent. 4650415 Http performance problem 4624466 CascadingAgent looses register/unreg notifs when used with a pattern matching 4621117 need a way to get the Thread id/name in the debug/trace logs 4621752 CascadingAgent : remote mbean unregistartion is done twice 4614893 hang during Cascading.stop() with the patch 112045-02 4633253 sync. issues when tyring to access remote MBean of SubAgent being disconnected 4637910 OutOfMemoryError in BER decoding. 4641746 Inconsistency in OID BER encoding/decoding leads to IllegalArgumentException 4641696 java.lang.IllegalArgumentException when receiving a bad encoded IP Address 4641694 java.lang.ArrayIndexOutOfBoundsException: 0 while merging bulk responses 4620163 System.out.println() in RmiConnectorClient constructor ;( (patch 112045-02) (from 112045-02) 4527199 Cascading agent can block (local) mbean server for ever (deadlock) 4527169 Cascading agent does not cascade all mbeans of the cascaded remote mbean server 4416912 notification: no provision to use IP addresses instead of DNS's host names 4510777 Threading design of JDMK's trap listener needs major improvement 4523504 can not pass explicit IP address to use when registering for notifications (from 112045-01) 4496037 bug in method toString of SnmpRequest class 4381195 Using SNMP Proxy, wrong response on GetNext 4468685 Memory leak when using the JDMK SNMP manager classes 4486059 JDMK 4.2 bug report - Class javax.management.snmp.manager.SnmpPeer 4492741 JDMK 4.2 Snmp GetBulk & SnmpUserDataFactory 4497571 RmiConnectorClient.setOperationContext(null) gets NullPointerException 4406639 mibgen confused by syntax Integer32 (1): generates unexistent SnmpIntFixed 4499265 SnmpTableSupport is not serializable. 4499338 The discovery service does not allow to select an IP broadcast address 4499327 CascadingAgent can't be restarted when the connection fails with the subAgent 4500398 Cascading receives all cascaded names every time a new one is added Patch Installation Instructions: -------------------------------- Please refer to the man pages for instructions on using 'patchadd' and 'patchrm' scripts provided with Solaris. Any other special or non-generic installation instructions should be described below as special instructions. The following example installs a patch to a standalone machine: example# patchadd /var/spool/patch/104945-07 The following example removes a patch from a standalone system: example# patchrm 104945-02 For additional examples please see the appropriate man pages. Special Install Instructions: ----------------------------- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- If you want to activate the fix for bug 4416912 (use IP addresses instead of hostnames) you must use the property -DuseIpAddresses *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- For classes RmiConnectorClient, GenericHttpConnectorClient, HttpConnectorClient, and HttpsConnectorClient, a new constructor is provided, allowing to give explicitly the IP address to use. (fix for bug 4523504) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- You can use a new class com.sun.jdmk.snmp.manager.SnmpEventReportDispatcher (fix for bug 4510777), instead of javax.management.snmp.manager.SnmpEventReportDispatcher, where thread design has been improved. To use this new class (documented in api doc) : * import the 2 new classes com.sun.jdmk.DaemonTaskServer com.sun.jdmk.snmp.manager.SnmpEventReportDispatcher * create and start a DaemonTaskServer DaemonTaskServer taskServer = new DaemonTaskServer(), taskServer.start(), * create the SnmpEventReportDispatcher, with the taskServer in argument SnmpEventReportDispatcher informDispatcher = new SnmpEventReportDispatcher(port, taskServer) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- To use the fix for bug 4692891 (Counter64 as an UnsignedLong), that enables to use values > 2^63-1 for Counter64 variables, this is what to do : 1/ Compilation by mibgen ------------------------ A new option has been added to mibgen : -ulong. You must use this option if you want to consider Counter64 variables as UnsignedLong (instead of Long) example : mibgen -ulong mib.txt 2/ Modifications in your Manager application --------------------------------------------- *) there is a new class com.sun.jdmk.UnsignedLong that must be used, and imported in your application *) There is a new constructor in the class SnmpCounter64, that takes in argument an UnsignedLong. This constructor must be used. Example : SnmpCounter64 var = new SnmpCounter64(UnsignedLong.make(Long.MAX_VALUE 1)) , The static method UnsignedLong.make(long x) returns an UnsignedLong. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- if you want to set a timeout to your RmiConnectorClient, (fix for bug 4626073), use the new constructor : public RmiConnectorClient(InetAddress add, int timeout), with timeout = timeout in number of seconds. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- To use fix for bug 4653805, use property -Dcom.sun.jdmk.urlconnectionTimeout. With this property, a timeout is used each time JDMK uses URLConnection, Default value is 10s (10000ms), it is tunable by giving the property an explicit value, e.g.: -Dcom.sun.jdmk.urlconnectionTimeout=15000 15000 here means 15000ms, i.e., 15s. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- To use the fix for BugId 4783766 : There is a new method : public void disconnect(boolean local) in these 2 classes : - RmiConnectorClient - GenericHttpConnectorClient If local=true, then, no request will be sent to the server. You must use disconnect(true) instead of disconnect() if you know that the server is down *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- To use the fix for BugId 4853016 (if you need to give explicitely the local addr where you want to receive notifications) : new methods have been added : - a new constructor in HttpConnectorClient : public HttpConnectorClient(String localhost) - a new method in CascadingAgent : public void setSubAgentParams(Object[] subAgentParams, String[] subAgentSignature) with subAgentParams : array of objects to be passed as arguments to the constructor call subAgentSignature : array of String presenting the signature of the constructor parameters This method sets parameters passed to a ClientConnector constructor (the ClientConnector which connects to a sub-agent). If you want to give explicitely the local address to the HttpConnectorClient of your cascadingAgent, you must call, after the creation of the cascadingAgent, (and before registering it), the method setSubAgentParams. exple : CascadingAgent remAgent = new CascadingAgent(address, com.sun.jdmk.comm.HttpConnectorClient , new ObjectName( CascadedDomain:* ), null), remAgent.setSubAgentParams(new Object[] { mylocalHost }, new String[] { java.lang.String }), ObjectInstance remAgentInstance = server.registerMBean(remAgent, mbeanObjectName), README -- Last modified date: Friday, May 14, 2004