Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 4674902
Votes 0
Synopsis (fmspec) deficiencies in RMI (JRMP) wire protocol specification
Category java:rmi
Reported Against 1.4
Release Fixed
State 6-Fix Understood, bug
Priority: 4-Low
Related Bugs
Submit Date 25-APR-2002
Description
The Java Remote Method Invocation Specification's Chapter 10, "RMI Wire
Protocol", which is really the specification for the JRMP wire protocol,
includes the following deficiencies:

- The "Version" component of the connection header sent by the client is
specified (in section 10.2.1) to be the literal sequence of octets 0x00 0x01. 
In reality, however, this sequence has always been 0x00 0x02 since RMI first
became part of Java (in JDK 1.1), so it appears as if the spec is only
specifying an earlier version of the protocol than has always been provided. 
The spec should be updated to specify that 0x00 0x02 is the only value of
"Version" supported, because no FCS version of RMI (JRMP) has ever supported
0x00 0x01.

- The "endpoint negotiation" for the StreamProtocol and the MultiplexProtocol is described tangentially and vaguely in this text from section 10.2.1:

    For the StreamProtocol and the MultiplexProtocol, the server must respond
    with a a [sic] byte 0x4e acknowledging support for the protocol, and an
    EndpointIdentifier that contains the host name and port number that the
    server can see is being used by the client. The client can use this
    information to determine its host name if it is otherwise unable to do that
    for security reasons. The client must then respond with another
    EndpointIdentifier that contains the client's default endpoint for accepting
    connections. This can be used by a server in the MultiplexProtocol case to
    identify the client.

    For the StreamProtocol, after this endpoint negotiation...

The wire format of these EndointIdentifier entities is not specified (in
reality, the format is the host IP string in DataOutput.writeUTF format followed
by the port number in DataOutput.writeInt format).  Also, this piece of the
protocol is not well integrated into the surrounding description, such as in the
grammars for "Out" or "In".  In particular, section 10.2.2 "Format of an Input
Stream" makes no mention of it at all (it needs to be implied from 10.2.1), so
an isolated look at that section would seem to indicate that "ProtocolAck"
should always be directly followed by "Returns".
Work Around
N/A
Evaluation
These deficiencies in the JRMP wire protocol specification should be fixed in the next major release.
  xxxxx@xxxxx   2002-07-16
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang