new URL ("http: //www.example.com:-1/index.html")
のような無効なURLインスタンスを作成できました。ポート番号に-1
を指定することは有効ではありません。しかし、以前のリリースでは、このようなURLをHTTPコマンドで送信する際に、-1
が削除されていました。1.4.2では、-1
がURLに残るため、一部のHTTPサーバーやプロキシで問題となる可能性があります。アプリケーションでポート番号が-1
のURLインスタンスを作成しないでください。この例では、-1
はデフォルト・ポートを参照すると仮定していますが、このURLを作成するには、new URL ("http://www.example.com/index.html")
が正しい方法です。この注意は、単一の引数によるURLコンストラクタにだけ適用されます。1.4では修正され、サーバーからのhttpエラーではすべてIOExceptionがスローされ、リソースが見つからないとき(つまり、応答コードが404または410の場合)に、専用の例外FileNotFoundExeptionをスローします。この例外は、ファイル・タイプに関係なくスローされます。
アプリケーションで、サーバーからhttpエラーが返されたときに例外がスローされないことを想定していた場合、そのようなアプリケーションは1.4でのこの変更を認識する必要があります。4160499を参照してください。
この問題に関連して、httpエラーがサーバーから返されたときにhttpサーバーからエラー・ページを読み取るために、HttpURLConnection.getErrorStream()メソッドを使えるようになりました。これまでのgetErrorStream()は、常にnullを返していました。
アプリケーションで、toString()が解決されたホスト名の文字列を返すことを前提としている場合、1.4でこの変更がなされたことに注意してください。4239141を参照してください。
後続の検索が常に失敗するという動作を前提としたアプリケーションでは、この問題に注意する必要があります。4256129を参照してください。また、ネガティブ検索をキャッシュするかどうかは、java.securityファイルのnetworkaddress.cache.negative.ttlプロパティで制御できます。
PortUnreachableExceptionに関する既知の問題を次に示します。
DHCPと動的DNSを併用している場合は、2つのオプションがあります。(i) /etc/nsswitch.confでネーム・サービスの検索順序を変更し、hostsファイル(「hosts: DNSファイル」)の前にDNSを使用してください。または(ii)デフォルトのプロバイダの代わりにDNSネーム・サービス・プロバイダを使用するように、InetAddressを構成してください(-Dsun.net.spi.nameservice.provider.1=dns,sun)。この問題は4665037で確認できます。