Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dad86349 authored by John Eckerdal's avatar John Eckerdal Committed by Johan Redestig
Browse files

Add better error handling for savePicture and restorePicture

If an Exception occurs when storing the file treat this as an error
and always fail to try to prevent corrupted pictures to be stored to
the file system.

Close files if they were opened, the caller might want to perform other
file operations on the file and if it is still open these may fail.

Change-Id: Ic68596b5c745bbe413096c22684c388e853a7643
parent d6c19197
Loading
Loading
Loading
Loading
+23 −5
Original line number Diff line number Diff line
@@ -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);