From 83da113bffa535a1b6c8f7ae65bb49e4f9ac57b6 Mon Sep 17 00:00:00 2001 From: Yanjun Jiang Date: Wed, 20 Aug 2014 15:12:01 -0400 Subject: [PATCH] Make EventBFileWriter safe from exceptions. Make sure all closeable objects in EventBFileWriter are properly closed, even in the presence of exceptions. --- .../eventbgenerator/EventBFileWriter.java | 41 ++++++++++++++----- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/src/main/java/ca/mcscert/jtet/eventbgenerator/EventBFileWriter.java b/src/main/java/ca/mcscert/jtet/eventbgenerator/EventBFileWriter.java index 04b80dd..bf02670 100644 --- a/src/main/java/ca/mcscert/jtet/eventbgenerator/EventBFileWriter.java +++ b/src/main/java/ca/mcscert/jtet/eventbgenerator/EventBFileWriter.java @@ -28,10 +28,7 @@ */ package ca.mcscert.jtet.eventbgenerator; -import java.io.BufferedWriter; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; +import java.io.*; /** * @@ -39,14 +36,36 @@ import java.io.OutputStreamWriter; */ final public class EventBFileWriter { - public static void writeEventBFile(String fileName, String fileContent) { + public static void writeEventBBumFile(String fileName, String content) throws IOException { + FileOutputStream fos = null; + try { - BufferedWriter br = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName + ".bum"), "UTF8")); - br.write(fileContent); - br.flush(); - br.close(); - } catch (IOException e) { - e.printStackTrace(); + fos = new FileOutputStream(fileName); + OutputStreamWriter osw = null; + + try { + osw = new OutputStreamWriter(fos, "UTF8"); + BufferedWriter bw = null; + + try { + bw = new BufferedWriter(osw); + bw.write(content); + bw.flush(); + } finally { + if (bw != null) { + bw.close(); + } + } + + } finally { + if (osw != null) { + osw.close(); + } + } + } finally { + if (fos != null) { + fos.close(); + } } } } -- GitLab