2015-10-20 8 views
5

私はJersey Client v2.16を使用しています(Dropwizard 0.8.0の推移的な依存関係も使用しています)。Jersey Client閉じるInputStreamレスポンス - 実際に動作しますか?

エンティティがInputStreamとして読み取られるとき、私は何とか応答の終了メカニズムに困惑します。 documentation状態:エンティティは(response.readEntity(InputStream.class)による)のInputStreamに読み込まれる場合は、InputStreamからの読み込み終わるまで

はまた、接続が開いたままになります。その場合、InputStreamまたはResponseは、InputStreamからの読み込みの終了時に手動で閉じる必要があります。私はResponse.readEntity(InputStream.class)を、使用して応答エンティティを取得するとき

しかし、私がで終わることは壊す名前が示唆するようclose()メソッドが呼び出されているとき、その下に何を解放しない、org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStreamのインスタンスが(ありますInputStream契約、そうかもしれない)。私は未発表であることと、ゆっくりとプールを埋める私のプールでのHTTP接続で終わる、結果として

@Override 
public void close() throws IOException { 
    if (LOGGER.isLoggable(Level.FINE)) { 
     LOGGER.log(Level.FINE, LocalizationMessages.MBR_TRYING_TO_CLOSE_STREAM(reader.getClass())); 
    } 
} 

:これはclose()方法です。

レスポンスへの参照を取得するのが非常に簡単ではなく、公式ドキュメントの状態がthe InputStream **or** the Response should be closed manuallyであるため、物理リソースを実際にリリースするにはどうすればよいですか?これはジャージークライアントとの既知のバグであるよう

答えて

関連する問題