Patch-ID# 112054-07
Keywords: security notification address thread listener ber exception hang rmi
Synopsis: Java Dynamic Management Kit 4.2 patch
Date: Nov/14/2003


Install Requirements: Additional instructions may be listed below                      
                      
Solaris Release: 

SunOS Release: 

Unbundled Product: Java Dynamic Management Kit

Unbundled Release: 4.2

Xref: patch available for sparc as patch 112045-07

Topic: 

Relevant Architectures: i86pc

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

Changes incorporated in this version: 4927360 4781797

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: 


Problem Description:

4781797   SnmpAdaptorServer.sendTrap* method throw exception after 497.10 days
 
4927360   Heatbeat: memory leak
 
(from 112054-06)
 
 
4853016 RmiConnectorClient in CascadingAgent need to be given explicitely IP address
 
(from 112054-05)
 
 
4783766 RmiConnectorClient.disconnect creates problems when remote MBeanServer dies
 
(from 112054-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 112054-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 112054-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 112054-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:
0

Special Install Instructions:
-----------------------------
 
Before installing this patch, you need to remove JDMK 4.2 product with:
 
# cd <install_dir>\SUNWjdmk\jdmk4.2\1.2
# java uninstall_jdmk42_nt_12
 
Before installing this patch, you need to remove JDMK 4.2 previous PATCH if any
with:
 
# cd <install_dir>\SUNWjdmk\jdmk4.2 PATCH 02\1.2
# java uninstall_jdmk42_nt_12
 
To install this patch, you need to execute "setup.bat" which is provided by this
 patch.
 
To desinstall this patch, you need to do:
 
# cd <install_dir>\SUNWjdmk\jdmk4.2\1.2
# java uninstall_jdmk42_nt_12
 
 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
 
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, November 14, 2003

