Edit D:\app\Administrator\product\11.2.0\dbhome_1\owb\lib\int\HTTPClient\doc\0.3-1_bugs_fixed.html
<HTML> <HEAD> <TITLE>Bugs fixed in V0.3-1</TITLE> <LINK REV="made" HREF="mailto:ronald@innovation.ch"> <LINK REL="Previous" HREF="index.html"> </HEAD> <BODY BGCOLOR="#FFFFFF"> <H1>Contents</H1> <UL> <LI><A HREF="#bugs">Bugs fixed</A> <LI><A HREF="#changes">Enhancements</A> <LI><A HREF="#upgrading">Upgrading</A> </UL> <H1><A NAME="bugs">Bugs fixed in V0.3-1</A></H1> <P>There were a number of bugs in the initial release of Version 0.3 which are fixed in this bug fix release: <UL> <LI>Bug in RedirectionModule fixed: a server redirecting to a new host name which mapped to the same IP-address as the old host name would be infinitely redirected. <LI>The RedirectionModule was not doing the redirects properly when redirected to a new non IP-based virtual host (it was trying to be too smart). <LI>URL parameters were being propagated in the RedirectionModule when they shouldn't be touched. <LI>The context was not preserved when redirecting (i.e the new HTTPConnection was always using the default context). <LI>Redirection bugs in HttpURLConnection fixed. <LI><A HREF="api/HTTPClient.HttpURLConnection.html#getHeaderField(int)">HttpURLConnection.getHeaderField(0)</A> now returns the response status line; <A HREF="api/HTTPClient.HttpURLConnection.html#getHeaderFieldKey(int)">HttpURLConnection.getHeaderFieldKey(0)</A> returns null. This is undocumented, but the JDK 1.1.x and JDK 1.2 behave that way. <LI>Problem concerning firewalls in HttpURLConnection fixed: if you were behind a firewall and using a proxy to reach hosts for which you were unable to resolve the host name (as is often the case behind firewalls for hosts outside the firewall) then the constructor would throw an UnknownHostException. This fix also fixes problems when talking to non IP-based virtual hosts. <LI>Cookie parser assumed weekday in expires attribute was 3 chars (as per spec); it now also handles non-abbreviated weekdays <LI>Cookie header parsing had a bug which could generate an ArrayOutOfBoundsException. <LI>IdempotentSequence fixed <LI>Invoking HTTPConnection.stop() could cause a NullPointerException in StreamDemultiplexor.java. <LI>EstablishConnection (defined in HTTPConnection.java) would get a NullPointerException if a Timeout was set and the connection failed after that. <LI>only <var>Content-type: multipart/byteranges</var> was recognized; <var>Content-type: multipart/x-byteranges</var> was not due to a typo. <LI>requestHandler invocation fixed - previously you couldn't return a new response. Also, public constructor added to Response so that a finished response can be created. <LI>AuthorizationInfo: the realm was being trim()'d everywhere, which of course screwed up if your realm really started or ended with whitespace. Therefore, the trim()'s have been removed. <LI>ContentEncoding module was only sending the tokens <var>gzip</var> and <var>compress</var>; it now also send <var>x-gzip</var> and <var>x-compress</var> (in addition) <LI>Starting with JDK 1.2 Final <var>java.util.zip.InflaterInputStream</var> throws a NullPointerException in if passed a null stream. TransferEncodingModule.java and ContentEncodingModule.java now catch that. <LI><A HREF="api/HTTPClient.Util.html#httpDate">Util.httpDate()</A> now generates dates correctly when the default Locale isn't "en" (i.e US, UK, etc). <LI>TokenChar in Util was not defined correctly (included 128-255) <LI>Kludge in Util.findStr() to work around VJ++ - this was in V0.2-3, but somehow didn't make it into V0.3 <LI>Constructor <A HREF="api/HTTPClient.HttpHeaderElement.html#HttpHeaderElement(java.lang.String, java.lang.String, HTTPClient.NVPair[])">HttpHeaderElement(String, String, NVPair[])</A> didn't make a copy of the <var>NVPair[]</var>. </UL> <H1><A NAME="changes">Enhancements and workarounds</A></H1> <P>A number of enhancements and workarounds for buggy servers/scripts have been incorporated into this bug fix too: <UL> <LI><A HREF="api/HTTPClient.HttpHeaderElement.html#toString">HttpHeaderElement.toString()</A> now only quotes if necessary <LI>New <A HREF="api/HTTPClient.HttpURLConnection.html#setInstanceFollowRedirects">setInstanceFollowRedirects()</A> and <A HREF="api/HTTPClient.HttpURLConnection.html#getInstanceFollowRedirects">getInstanceFollowRedirects()</A> methods added to <A HREF="api/HTTPClient.HttpURLConnection.html">HttpURLConnection</A> to control redirection for the specific instance only. <LI>Entity delimiter selection now updated to conform to HTTP/1.1-Rev.6 (Transfer-Encoding adjustments) <LI>Cookie2 class updated to rev-10 of the state management draft (introduction of the .local domain). <LI>Cookie policy popup updated to handle Cookie2 requests <LI><var>Proxy-Connection</var> header is correctly stripped when necessary <LI>Minor hack for HotJava: if HttpURLConnection is running under HotJava then invoking getResponseCode() will also do a HTTPResponse.getData() if the status code is an error (>= 300). HotJava has the nasty habit of not picking up its data. <LI>HttpURLConnection now also reads the properties <var>nonProxyHosts</var> and <var>http.proxyHost</var> each time an instance is created; previously these were only read by HTTPConnection at class initialization time. <LI>Digest Authentication handler updated to latest spec (draft-ietf-http-authentication-03.txt). Fully backwards compliant with rfc-2069. <LI>Response header parser loosened a bit; it will now parse and accept invalid headers of the form "name value" (i.e. missing `:'). <LI>Cookie and Cookie2 parsers loosened a bit; previously domain attributes always had a dot prepended to them if they didn't already start with one. This is to prevent unwanted sharing of cookies between domains having similar names. However, in some cases the server set the domain attribute to be the same as the servers FQDN. When a dot was then prepended the domain attribute didn't tail match the servers FQDN anymore. Therefore this situation has been special-cased to not prepend a dot. <LI>An invalid expires attribute in a Set-Cookie header is now ignored (i.e. treated as if there were no expires), instead of throwing a ProtocolException as was done previously. <LI>Cookie parser changed with respect to accepting domain attributes. Previously, it followed Netscape's cookie spec which included the 2/3 dot rule. Because this doesn't work well for many countries the rules have been changed to those used in Cookie2 (which also have their problems, but are certainly better). <LI>The boundary parameter in Codecs.mpFormDataEncode() now does not quote the value part, i.e. instead of using Content-type: multipart/form-data; boundary="---....--" it now uses Content-type: multipart/form-data; boundary=---....-- This is because there are just too many broken parsers out there which can't handle the parameter value being quoted. This is especially galling as RFC-2046 *recommends* the value be quoted. <LI>Codecs: mpFormDataEncode() does not print the leading CR LR anymore - some (broken) parsers couldn't handle a preamble. <LI>Codecs: new overloaded versions of <A HREF ="api/HTTPClient.Codecs.html#mpFormDataEncode(HTTPClient.NVPair[], HTTPClient.NVPair[], HTTPClient.NVPair[], HTTPClient.FilenameMangler)">mpFormDataEncode()</A> and <A HREF ="api/HTTPClient.Codecs.html#mpFormDataDecode(byte[], java.lang.String, java.lang.String, HTTPClient.FilenameMangler)">mpFormDataDecode()</A> are available which take a <A HREF="api/HTTPClient.FilenameMangler.html">FilenameMangler</A> as an additional argument. This mangler can be used to control the names of the resulting files stored, and the names put into the encoded data. <LI>Only a single timeout thread is now used - it is shared by all connections. This should be a little more efficient... <LI>new <A HREF="api/HTTPClient.URI.html">URI</A> class added. This class parses URLs correctly and implements correct equals(), but most importantly it does not require a URLStreamHandler to exist for the scheme. The client now uses URI internally instead of java.net.URL . <LI>Added <A HREF="api/HTTPClient.HTTPResponse.html#getOriginalURI">getOriginalURI()</A> and <A HREF="api/HTTPClient.HTTPResponse.html#getEffectiveURI">getEffectiveURI()</A> to <A HREF="api/HTTPClient.HTTPResponse.html">HTTPResponse</A>. These both return URI's, and getEffectiveURI() returns the same as getOriginalURI() when no redirection took place (- to check for redirection, use <code>if (resp.getEffective() != resp.getOriginalURL())</code> <LI><A HREF="api/HTTPClient.CookieModule.html">CookieModule</A> has three new methods: <A HREF="api/HTTPClient.CookieModule.html#listAllCookies">listAllCookies()</A>, which will return an array of all the currently stored cookies, <A HREF="api/HTTPClient.CookieModule.html#addCookie">addCookie()</A> to add a cookie to the list, and <A HREF="api/HTTPClient.CookieModule.html#removeCookie">removeCookie()</A> to remove a Cookie. In addition, the <A HREF="api/HTTPClient.Cookie.html">Cookie</A> and <A HREF="api/HTTPClient.Cookie2.html">Cookie2</A> classes each have a new public constructor. <LI>Access to cookie lists now properly synchronized <LI>Cookie may be saved and loaded again at startup by setting the new system property <var>HTTPClient.cookies.save</var> too <var>true</var>. The file used for saving files may be specified in the system property <var>HTTPClient.cookies.jar</var>; if this property is not set a system dependent name is chosen. <LI><A HREF="api/HTTPClient.AuthorizationInfo.html">AuthorizationInfo</A> has two new methods: <A HREF="api/HTTPClient.AuthorizationInfo.html#getCookie">getCookie()</A> and <A HREF="api/HTTPClient.AuthorizationInfo.html#setCookie">setCookie()</A>. These manipulate the "cookie" when the simple form of the WWW-Authenticate and Authorization headers is used. <LI>Parser and Realm attribute treatment loosened in AuthorizationInfo to allow for schemes which don't use the Realm. <LI>AuthorizationInfo better documented, especially concerning the various fields and their uses. </UL> <H1><A NAME="upgrading">Upgrading from Version 0.3</A></H1> <P>V0.3-1 should be plug-in compatible with V0.3. I.e. no changes to your code are required unless you wish to make use of some of the new features. <P> <A HREF="index.html"> <IMG SRC="images/back.gif" ALT="[HTTPClient]"></A> <HR> <ADDRESS> Ronald Tschalär / 10. February 1999 / <A HREF="mailto:ronald@innovation.ch">ronald@innovation.ch</A>. </ADDRESS> </BODY> </HTML>
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de