diff options
| -rw-r--r-- | core/java/android/webkit/WebView.java | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index c5c14d3ee08a..de450fcf7354 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -1182,18 +1182,29 @@ public class WebView extends AbsoluteLayout return false; } final Picture p = capturePicture(); + + FileOutputStream out = null; + boolean success = false; try { - final FileOutputStream out = new FileOutputStream(dest); + out = new FileOutputStream(dest); p.writeToStream(out); - out.close(); + success = true; } catch (FileNotFoundException e){ e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (RuntimeException e) { e.printStackTrace(); + } finally { + if (out != null) { + try { + out.close(); + } catch (Throwable t) { + } + } } - if (dest.length() > 0) { + + if (success && dest.length() > 0) { b.putInt("scrollX", mScrollX); b.putInt("scrollY", mScrollY); b.putFloat("scale", mActualScale); @@ -1217,16 +1228,23 @@ public class WebView extends AbsoluteLayout } if (src.exists()) { Picture p = null; + FileInputStream in = null; try { - final FileInputStream in = new FileInputStream(src); + in = new FileInputStream(src); p = Picture.createFromStream(in); - in.close(); } catch (FileNotFoundException e){ e.printStackTrace(); } catch (RuntimeException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (Throwable t) { + } + } } if (p != null) { int sx = b.getInt("scrollX", 0); |