diff --git a/src/com/androidquery/callback/AbstractAjaxCallback.java b/src/com/androidquery/callback/AbstractAjaxCallback.java index 1fbb68a7..b5c3df63 100644 --- a/src/com/androidquery/callback/AbstractAjaxCallback.java +++ b/src/com/androidquery/callback/AbstractAjaxCallback.java @@ -165,6 +165,31 @@ private void clear(){ transformer = null; ah = null; act = null; + + callback = null; + targetFile = null; + cacheDir = null; + cookies = null; + headers = null; + params = null; + proxy = null; + networkUrl = null; + + abort = false; + blocked = false; + completed = false; + fileCache = false; + memCache = false; + reauth = false; + refresh = false; + + method = Constants.METHOD_DETECT; + policy = Constants.CACHE_DEFAULT; + lastStatus = 200; + expire = 0; + retry = 0; + timeout = 0; + uiCallback = true; } /** @@ -1183,6 +1208,11 @@ private void filePut(){ } } + }else if(status.getFile() != null && status.getSource() == AjaxStatus.NETWORK && status.getInvalid()){ + File file = status.getFile(); + if (file.exists()) { + file.delete(); + } } }catch(Exception e){ AQUtility.debug(e); @@ -1663,7 +1693,15 @@ private void httpDo(HttpUriRequest hr, String url, Map headers, file = null; } } - + + }catch(IOException e){ + if (file != null) { + AQUtility.close(os); + os = null; + file.delete(); + } + throw e; + }finally{ AQUtility.close(is); AQUtility.close(os);