Deprecate the HTTP proxying feature from RMI/JRMP, and disable HTTP proxying by default.
There are two phases of HTTP proxying in RMI/JRMP, each with a client side and a server side component.
1) RMI/JRMP first attempts a direct socket connection. If the direct socket connection fails in certain specific ways,
and if the http proxying properties are set, an attempt is made to make an HTTP connection using the proxy specified
by the httpProxy properties. If connection is successful, the RMI request is then tunneled through the HTTP connection.
2) If the proxied HTTP connection fails, an HTTP connection is attempted using a URL of the form:
and if this connection is successful, the RMI request is then tunneled through that connection.
Both of these phases of HTTP proxying of RMI/JRMP are to be deprecated, including both
client side and server side implementations.
Along with deprecation of this mechanism, they are to be disabled by default.
A system property java.rmi.server.disableHttp exists, whose default value is false. The default
value will be set to true, disabling the HTTP proxying.
This does not deprecate any actual classes or APIs. It will affect a number of documents, including a few places in the specification:
java.rmi.server package doc
java.rmi properties (the disableHttp property)
sun.rmi properties (sun.rmi.transport.proxy.* properties)
RMI Specification, section 3.5 (primary), 10.2 and 10.4 (secondary)
RMI FAQ questions C.9 - C.13