public class HttpMethodReleaseInputStream extends InputStream
このInputStreamラッパは、呼び出し元がすべてのコンテンツをコネクションの入力ストリーム から読みだした後もしくは入力ストリームが閉じられた後、HTTPコネクションを確実に クリーンアップするために使われます。さらに、このクラスは、このオブジェクトの ファイナライズメソッドにおいても、リソースのリークを防ぐ最終手段として、コネクション を開放し、入力ストリームを閉じようとします。
重要! この入力ストリームでは、必要なクリーンアップ動作を確実にするため、 すべてのコンテンツを読み出すか、閉じる必要があります。
Constructor and Description |
---|
HttpMethodReleaseInputStream(org.apache.http.HttpEntityEnclosingRequest httpMethod)
Httpコネクションを表す
HttpMethod オブジェクトをから
InputStreamオブジェクトを構築します。
コネクションの入力ストリームが有効だった場合、このコンストラクタでは基となる
InputStreamをInterruptableInputStreamにラップして、ストリームを有効にします
もし、有効なコネクションが無かった場合、空のByteArrayInputStream を
作成します。 |
Modifier and Type | Method and Description |
---|---|
int |
available()
一般的なInputStreamのavailableメソッドですが、
ベースとなる入力ストリームでエラーが発生した場合に、
releaseConnection() の
呼び出しを保証します。 |
void |
close()
一般的なInputStreamのavailableメソッドですが、
ベースとなる入力ストリームが閉じられた場合、
releaseConnection() の
呼び出しを保証します。 |
protected void |
finalize()
コネクションの確実なクリーンアップを保証するために、
releaseConnection()
をクラスのデストラクトの際にクリーンアップが行われていなかった場合に呼び出します |
org.apache.http.HttpEntityEnclosingRequest |
getHttpRequest()
実際のHTTPコネクションを含み管理するHTTPMethodオブジェクトを返します。
|
int |
read()
一般的なInputStreamのreadメソッドですが、
入力ストリームをすべて読み込んだ場合に、
releaseConnection()
メソッドを呼び出します |
int |
read(byte[] b,
int off,
int len)
一般的なInputStreamのreadメソッドですが、
入力ストリームをすべて読み込んだ場合に、
releaseConnection()
メソッドを呼び出します |
protected void |
releaseConnection()
HttpClientメソッドの正しい利用のため、必要なクリーンアップの一部として
HttpMethodオブジェクトのConnectionを強制的に開放します。
|
mark, markSupported, read, reset, skip
public HttpMethodReleaseInputStream(org.apache.http.HttpEntityEnclosingRequest httpMethod)
HttpMethod
オブジェクトをから
InputStreamオブジェクトを構築します。
コネクションの入力ストリームが有効だった場合、このコンストラクタでは基となる
InputStreamをInterruptableInputStreamにラップして、ストリームを有効にします
もし、有効なコネクションが無かった場合、空のByteArrayInputStream
を
作成します。httpMethod
- レスポンスのコンテンツをラップする基とするHTTPMethodオブジェクトpublic org.apache.http.HttpEntityEnclosingRequest getHttpRequest()
protected void releaseConnection() throws IOException
IOException
- コネクションのリリースに失敗した場合public int read() throws IOException
releaseConnection()
メソッドを呼び出しますread
in class InputStream
IOException
public int read(byte[] b, int off, int len) throws IOException
releaseConnection()
メソッドを呼び出しますread
in class InputStream
IOException
public int available() throws IOException
releaseConnection()
の
呼び出しを保証します。available
in class InputStream
IOException
public void close() throws IOException
releaseConnection()
の
呼び出しを保証します。close
in interface Closeable
close
in interface AutoCloseable
close
in class InputStream
IOException
protected void finalize() throws Throwable
releaseConnection()
をクラスのデストラクトの際にクリーンアップが行われていなかった場合に呼び出します
この最終手段としてのクリーンアップは、ユーザがこのクラスの入力ストリームデータを 全て読み出さなかった場合や、オブジェクトのデストラクトの前に入力ストリームを 閉じた場合にのみ必要とされます このメソッドは、強制クリーンアップが必要であり、ユーザにストリームを閉じるよう 注意するため、ログに警告メッセージを記録します。
Copyright © 2018. All rights reserved.