HttpRequestRetryHandler.java revision 417f3b92ba4549b2f22340e3107d869d2b9c5bb8
123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)/* 223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * $HeadURL: http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/client/HttpRequestRetryHandler.java $ 323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * $Revision: 535610 $ 423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * $Date: 2007-05-06 06:28:13 -0700 (Sun, 06 May 2007) $ 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * ==================================================================== 723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * Licensed to the Apache Software Foundation (ASF) under one 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * or more contributor license agreements. See the NOTICE file 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * distributed with this work for additional information 1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * regarding copyright ownership. The ASF licenses this file 1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * to you under the Apache License, Version 2.0 (the 1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * "License"); you may not use this file except in compliance 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * with the License. You may obtain a copy of the License at 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * http://www.apache.org/licenses/LICENSE-2.0 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Unless required by applicable law or agreed to in writing, 180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch * software distributed under the License is distributed on an 1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * KIND, either express or implied. See the License for the 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * specific language governing permissions and limitations 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * under the License. 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch * ==================================================================== 2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * This software consists of voluntary contributions made by many 2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * individuals on behalf of the Apache Software Foundation. For more 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * information on the Apache Software Foundation, please see 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * <http://www.apache.org/>. 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) */ 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccipackage org.apache.http.client; 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciimport java.io.IOException; 3523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)import org.apache.http.protocol.HttpContext; 3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)/** 3923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * A handler for determining if an HttpRequest should be retried after a 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * recoverable exception during execution. 4123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * 4223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * <p> 4323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * Classes implementing this interface must synchronize access to shared 4423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * data as methods of this interfrace may be executed from multiple threads 4523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * </p> 4623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * 4723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * @author Michael Becke 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a> 4923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) */ 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccipublic interface HttpRequestRetryHandler { 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 5223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) /** 5323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * Determines if a method should be retried after an IOException 5423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * occurs during execution. 5523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * 5623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * @param exception the exception that occurred 5723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * @param executionCount the number of times this method has been 5823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * unsuccessfully executed 5923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * @param context the context for the request execution 6023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * 6123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * @return <code>true</code> if the method should be retried, <code>false</code> 6223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * otherwise 6323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) */ 641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci boolean retryRequest(IOException exception, int executionCount, HttpContext context); 65 66} 67