Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4312465

JRE 1.2.2-001 based applet cannot open more than one HTTPs connection

XMLWordPrintable

    • fcs
    • x86
    • windows_nt


      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).

            stanleyh Stanley Ho (Inactive)
            duke J. Duke
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: