Patch-ID# 113634-03
Keywords: snmp memory leak discovery cascading rmi
Synopsis: Java Dynamic Management Kit 5.0 patch
Date: Nov/17/2003


Install Requirements: None                      
                      
Solaris Release: 8 9

SunOS Release: 5.8 5.9

Unbundled Product: Java Dynamic Management Kit

Unbundled Release: 5.0

Xref: 

Topic: 

Relevant Architectures: sparc

BugId's fixed with this patch: 4624028 4626073 4653805 4658703 4680431 4692891 4755854 4756550 4770217 4770295 4776369 4783766 4873785 4878413 4884304 4898453

Changes incorporated in this version: 4873785 4884304 4898453 4878413

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: 

/usr/sadm/lib/snmp/jsnmpapi.jar
<install_dir>/SUNWjdmk/jdmk5.0/lib/jdmkrt.jar
<install_dir>/SUNWjdmk/jdmk5.0/lib/jdmktk.jar

Problem Description:

4878413 fixes in RmiConnectorAddress break compatibility JDMK 5.0 - 4.2
 
4898453 modelmbean pointlessly forbid empty descriptor field values.
 
4884304 Exception in RequiredModelMBean.setAttribute() if no setter
 
4873785 HttpConnectorServer not able to listen on a particular network interface IP addr
 
(from 113634-02)
 
 
4783766 RmiConnectorClient.disconnect creates problems when remote MBeanServer dies
 
4624028 Enhancement request for support of RMI/SSL
 
(from 113634-01)
 
 
4680431 Timer.removeNotifications(String type) is causing NullPointerException
 
4692891 SNMP counter64 response causing problem in JDMK session
 
4653805 URLConnection with timeout option
 
4626073 Master agent locks up due to synchronization problem in JDMK
 
4658703 Trace should display JDMK version and release Number
 
4776369 Memory leak in Finalize()
 
4756550 the method setUserData does not work after starting the DiscoveryResponder
 
4755854 JDMK Discovery passes hostnames through discovery packets.
 
4770295 SnmpAdaptorServerMBean interface must contain the addMib(mib, context) method
 
4770217 delays due to getLocalHost() timeouts

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-02
 
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:
-----------------------------
 
 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
 
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 avoid the access to the method getLocalHost() (fix for bugId 4770217), you must run
your jdmk application with the property jdmk.hostname set to your local IP address. For example :
java -Djdmk.hostname=129.157.179.168 BaseAgent
 
 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
 
To use the fix for bugId 4755854 : To have the correct hostname/IP address, you just have
to use this constructor for DiscoveryClient :
 public DiscoveryClient (String multicastGroup, int multicastPort, InetAddress inf)
-> The address inf will now be taken for the return address.
 
 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
 
To use the fix for bugId 4624028 : You must use, on the client side, the new constructor in RmiConnectorClient.java
	public RmiConnectorClient(RMIClientSocketFactory csf)
 
 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
 
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 4873785 : use the 2 new constructors 
of the classes HttpConnectorServer and HttpsConnectorServer :
    public HttpConnectorServer(int port, InetAddress bindAddr) 
    public HttpConnectorServer(int port, AuthInfo[] authInfoList, InetAddress bindAddr) 
where bindAddr is the addr to listen on.

README -- Last modified date:  Monday, November 17, 2003

