JRE 1.2.2-001 based applet cannot open more than one HTTPs connection in
parallel, when running in Netscape 4.7 browser, on Windows NT 4.0 (service
pack 5).
Customer has a client/server application which allows realtime collaborative
access and manipulation of 3D models through Java applets, running in the
browser's Java VM. It is 100% Java, and makes extensive use of Java 3D.
The problem occurs when trying to provide secure connections for customers'
clients. In order to provide the low latency that realtime 3D requires, they
need to have at least 3 HTTPS connections open at the same time.
Apparently there is a restriction in the Netscape API which limits this to
only 1 connection at a time (it serializes the connection activities so they
can only happen in sequential order, not in parallel). This is asymmetrical
-- they have no such problems with HTTP.
Customer feels that they are at an impasse because they need this
capability of using the browser's HTTPS which has the RSA client licenses
for RSA encryption, yet the browser won't allow multiple simultaneous
HTTPS connections.
Customer is using the following environment:
Netscpae 4.7
NT 4.0 SP5
JRE w/ Plugin 1.2.2-W and JRE w/ Plugin 1.2.2-001
More information on what API's being used and a probable sample test
case will be submitted as soon as we get this info from customer.
Customer is using the following settins in their .java.policy files
(for signed applets)
permission java.net.SocketPermission "*",
"connect,accept,resolve";
permission java.util.PropertyPermission "*",
"read";
permission java.awt.AWTPermission
"accessEventQueue";
permission java.awt.AWTPermission
"accessClipboard";
permission java.lang.RuntimePermission
"modifyThread";
permission java.io.FilePermission "<<ALL
FILES>>", "read,write";
permission java.awt.AWTPermission
"showWindowWithoutWarningBanner";
permission java.lang.RuntimePermission
"queuePrintJob";
permission java.lang.RuntimePermission
"accessClassInPackage.*";
permission java.lang.RuntimePermission
"setFactory";
Customer says that No exceptions are thrown when trying to make an
SSL connection though they eventually time out and throw their own
exceptions.
Here's the example that demonstrates the issue:
(sample test case jdsTest.zip is part of the attchment)
The server is run using server.bat . As it is, the server
will listen for HTTPS on port 7010. If you set useRSA to
false, it will listen for HTTP on 7009. Our actual server
listens on two ports for both direct and SSL connections
with and without HTTP.
The Client.html file runs Client. At the bottom you can
specify the URL to use (it defaults to my machine which is
behind a firewall. Point it at your own example Server
using port http://host:7009 or https://host:7010 as
appropriate. There is a numerical argument that is the
number of messages the server should send to the client.
The message is the timestamp of the request as sent from
the client. The client and server both start a separate
thread for each connection. A message is sent out every
10 seconds (so, a request of count 6 will take 60 seconds
in total).
The test is to make one long connection (around 6 to 10
messages) and then a short one (around 2) in the middle.
Using http will send a few messages from the first request
and send message from both, and then message only from the
first again all showing up at about the right time
Mon Jan 31 13:39:00 PST 2000
Mon Jan 31 13:39:00 PST 2000
Mon Jan 31 13:39:19 PST 2000
Mon Jan 31 13:39:00 PST 2000
Mon Jan 31 13:39:19 PST 2000
Mon Jan 31 13:39:00 PST 2000
Mon Jan 31 13:39:00 PST 2000
Mon Jan 31 13:39:00 PST 2000
This also works properly when Phaos's HTTPS code is used on
the client end. Watch the server too.
Using the plugin/Netscape's HTTPs stuff results in
the first request going through to completion then the
second (things happen sequentially and not parallel
as shown in the output above).
- duplicates
-
JDK-4369538 Multiple HTTPS requests cause a hang in Netscape 4.7
- Closed