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

Commit 1fbeece6 authored by Gil Dobjanschi's avatar Gil Dobjanschi
Browse files

Close the file input stream if the XML file parsing fails.

Change-Id: I254633a173d61ff8be3f2f399a2d41305076ed78
parent 8cbb85dc
Loading
Loading
Loading
Loading
+106 −101
Original line number Diff line number Diff line
@@ -748,9 +748,11 @@ public class VideoEditorTestImpl implements VideoEditor {
     */
    private void load() throws FileNotFoundException, XmlPullParserException, IOException {
        final File file = new File(mProjectPath, PROJECT_FILENAME);
        final FileInputStream fis = new FileInputStream(file);

        try {
            // Load the metadata
            final XmlPullParser parser = Xml.newPullParser();
        final FileInputStream fis = new FileInputStream(file);
            parser.setInput(fis, "UTF-8");
            int eventType = parser.getEventType();
            String name;
@@ -767,38 +769,38 @@ public class VideoEditorTestImpl implements VideoEditor {
                            final String mediaItemId = parser.getAttributeValue("", ATTR_ID);
                            final String type = parser.getAttributeValue("", ATTR_TYPE);
                            final String filename = parser.getAttributeValue("", ATTR_FILENAME);
                        final int renderingMode = Integer.parseInt(parser.getAttributeValue("",
                                ATTR_RENDERING_MODE));
                            final int renderingMode = Integer.parseInt(
                                    parser.getAttributeValue("", ATTR_RENDERING_MODE));

                            if (MediaImageItem.class.getSimpleName().equals(type)) {
                            final long durationMs = Long.parseLong(parser.getAttributeValue("",
                                    ATTR_DURATION));
                                final long durationMs = Long.parseLong(
                                        parser.getAttributeValue("", ATTR_DURATION));
                                currentMediaItem = new MediaImageItem(this, mediaItemId, filename,
                                        durationMs, renderingMode);
                            } else if (MediaVideoItem.class.getSimpleName().equals(type)) {
                            final long beginMs = Long.parseLong(parser.getAttributeValue("",
                                    ATTR_BEGIN_TIME));
                            final long endMs = Long.parseLong(parser.getAttributeValue("",
                                    ATTR_END_TIME));
                            final int volume = Integer.parseInt(parser.getAttributeValue("",
                                    ATTR_VOLUME));
                            final boolean muted = Boolean.parseBoolean(parser.getAttributeValue("",
                                    ATTR_MUTED));
                            final String audioWaveformFilename = parser.getAttributeValue("",
                                    ATTR_AUDIO_WAVEFORM_FILENAME);
                                final long beginMs = Long.parseLong(
                                        parser.getAttributeValue("", ATTR_BEGIN_TIME));
                                final long endMs = Long.parseLong(
                                        parser.getAttributeValue("", ATTR_END_TIME));
                                final int volume = Integer.parseInt(
                                        parser.getAttributeValue("", ATTR_VOLUME));
                                final boolean muted = Boolean.parseBoolean(
                                        parser.getAttributeValue("", ATTR_MUTED));
                                final String audioWaveformFilename =
                                        parser.getAttributeValue("", ATTR_AUDIO_WAVEFORM_FILENAME);
                                currentMediaItem = new MediaVideoItem(this, mediaItemId, filename,
                                        renderingMode, beginMs, endMs, volume, muted,
                                        audioWaveformFilename);

                            final long beginTimeMs = Long.parseLong(parser.getAttributeValue("",
                                    ATTR_BEGIN_TIME));
                            final long endTimeMs = Long.parseLong(parser.getAttributeValue("",
                                    ATTR_END_TIME));
                            ((MediaVideoItem)currentMediaItem).setExtractBoundaries(beginTimeMs,
                                    endTimeMs);
                                final long beginTimeMs = Long.parseLong(
                                        parser.getAttributeValue("", ATTR_BEGIN_TIME));
                                final long endTimeMs = Long.parseLong(
                                        parser.getAttributeValue("", ATTR_END_TIME));
                                ((MediaVideoItem)currentMediaItem).setExtractBoundaries(
                                        beginTimeMs, endTimeMs);

                            final int volumePercent = Integer.parseInt(parser.getAttributeValue("",
                                    ATTR_VOLUME));
                                final int volumePercent = Integer.parseInt(
                                        parser.getAttributeValue("", ATTR_VOLUME));
                                ((MediaVideoItem)currentMediaItem).setVolume(volumePercent);
                            } else {
                                Log.e(TAG, "Unknown media item type: " + type);
@@ -860,9 +862,12 @@ public class VideoEditorTestImpl implements VideoEditor {
                }
                eventType = parser.next();
            }

        fis.close();
            computeTimelineDuration();
        } finally {
            if (fis != null) {
                fis.close();
            }
        }
    }

    /**