harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Elford (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-3717) [classlib][luni] java.net.HttpURLConnection.getResponseCode() anomoly
Date Wed, 21 Nov 2007 20:04:43 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-3717?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12544584

Chris Elford commented on HARMONY-3717:

It is looking like Harmony is not following section 5.1.2 of the W3C specification for HTTP
which defines a request-uri.


   The absoluteURI form is REQUIRED when the request is being made to a
   proxy. The proxy is requested to forward the request or service it
   from a valid cache, and return the response. Note that the proxy MAY
   forward the request on to another proxy or directly to the server

Fielding, et al.            Standards Track                    [Page 36]

RFC 2616                        HTTP/1.1                       June 1999

   specified by the absoluteURI. In order to avoid request loops, a
   proxy MUST be able to recognize all of its server names, including
   any aliases, local variations, and the numeric IP address. An example
   Request-Line would be:

       GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1

Harmony sends a relative URI instead of an absolute URI.


> [classlib][luni] java.net.HttpURLConnection.getResponseCode() anomoly
> ---------------------------------------------------------------------
>                 Key: HARMONY-3717
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3717
>             Project: Harmony
>          Issue Type: Bug
>          Components: App-Oriented Bug Reports, Classlib
>         Environment: Windows XP SP2
> c:\java\hre50\bin\java -version
> svn = r530500, (Apr 20 2007), Windows/ia32/msvc 1310, release build
>            Reporter: Chris Elford
>            Priority: Minor
>         Attachments: http.java, network.txt
> I am trying to see if OpenJNLP works with Harmony.  OpenJNLP is a pretty old implementation
of the JNLP protocol w/o security.  I hacked OpenJNLP to recognize Windows XP and then try
to load a jnlp app from the the web (http://www.eclipse.org/swt/jws/controlexample.jnlp in
this case).  It fails with 
> java.io.IOException: Bad Request
>         at org.nanode.jnlp.JNLPParser$URLJNLPParser.openInputStream(JNLPParser.java:491)
>         at org.nanode.jnlp.JNLPParser.parse(JNLPParser.java:119)
>         at org.nanode.jnlp.JNLPParser.parseDescriptor(JNLPParser.java:292)
>         at org.nanode.app.openjnlp.DefaultAppHandler.handleOpenURL(Unknown Source)
>         at org.nanode.app.OpenJNLP.main(Unknown Source)
> Launching failed: http://www.eclipse.org/swt/jws/controlexample.jnlp
> [It works with the Sun JVM].  
> Instrumenting the code shows that the following basic code is executed
> URLConnection uc = srcURL.openConnection();
>  if (uc instanceof HttpURLConnection) {
>      HttpURLConnection huc = (HttpURLConnection) uc;
>      if (huc.getResponseCode() != HttpURLConnection.HTTP_OK) {
>          throw new IOException(huc.getResponseMessage());
>     }
> }
> getResponseCode() is returning error 400 and thus the app throws the exception.  I noted
that if I insert a call to huc.getHeaderFields() before the if that checks the response code,
I will subsequently get a response 200 (HTTP_OK) and things proceed.  It appears like there
is some sort of race or deferral in populating the response codes here.  Note that instead
of calling huc.getHeaderFields(), I tried putting a 5 sec sleep in and it did NOT fix it.
 It doesn't look like it is a normal race.
> Note that it works with the Sun VM without any mods at all.
> Note that I am using a proxy server via -Dproxyset=true -DproxyHost=xxx -DproxyPort=yyy
at the java command line.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message