diff --git a/src/main/java/org/dynmap/JsonFileClientUpdateComponent.java b/src/main/java/org/dynmap/JsonFileClientUpdateComponent.java index 6ee45755..5ca77b32 100644 --- a/src/main/java/org/dynmap/JsonFileClientUpdateComponent.java +++ b/src/main/java/org/dynmap/JsonFileClientUpdateComponent.java @@ -93,10 +93,12 @@ public class JsonFileClientUpdateComponent extends ClientUpdateComponent { int retrycnt = 0; boolean done = false; while(!done) { + FileOutputStream fos = null; try { - FileOutputStream fos = new FileOutputStream(outputTempFile); + fos = new FileOutputStream(outputTempFile); fos.write(clientConfiguration.toJSONString().getBytes("UTF-8")); fos.close(); + fos = null; outputFile.delete(); outputTempFile.renameTo(outputFile); done = true; @@ -109,6 +111,14 @@ public class JsonFileClientUpdateComponent extends ClientUpdateComponent { Log.severe("Exception while writing JSON-configuration-file.", ioe); done = true; } + } finally { + if(fos != null) { + try { + fos.close(); + } catch (IOException iox) { + } + fos = null; + } } } } @@ -132,10 +142,12 @@ public class JsonFileClientUpdateComponent extends ClientUpdateComponent { int retrycnt = 0; boolean done = false; while(!done) { + FileOutputStream fos = null; try { - FileOutputStream fos = new FileOutputStream(outputTempFile); + fos = new FileOutputStream(outputTempFile); fos.write(Json.stringifyJson(update).getBytes("UTF-8")); fos.close(); + fos = null; outputFile.delete(); outputTempFile.renameTo(outputFile); done = true; @@ -148,6 +160,14 @@ public class JsonFileClientUpdateComponent extends ClientUpdateComponent { Log.severe("Exception while writing JSON-file.", ioe); done = true; } + } finally { + if(fos != null) { + try { + fos.close(); + } catch (IOException iox) { + } + fos = null; + } } } plugin.events.trigger("clientupdatewritten", clientUpdate); @@ -160,14 +180,23 @@ public class JsonFileClientUpdateComponent extends ClientUpdateComponent { File webchatFile = getStandaloneFile("dynmap_webchat.json"); if (webchatFile.exists() && lastTimestamp != 0) { JSONArray jsonMsgs = null; + Reader inputFileReader = null; try { - Reader inputFileReader = new InputStreamReader(new FileInputStream(webchatFile), cs_utf8); + inputFileReader = new InputStreamReader(new FileInputStream(webchatFile), cs_utf8); jsonMsgs = (JSONArray) parser.parse(inputFileReader); - inputFileReader.close(); } catch (IOException ex) { Log.severe("Exception while reading JSON-file.", ex); } catch (ParseException ex) { Log.severe("Exception while parsing JSON-file.", ex); + } finally { + if(inputFileReader != null) { + try { + inputFileReader.close(); + } catch (IOException iox) { + + } + inputFileReader = null; + } } if (jsonMsgs != null) { diff --git a/src/main/java/org/dynmap/regions/FactionsConfigHandler.java b/src/main/java/org/dynmap/regions/FactionsConfigHandler.java index 917cb807..cf21d9ff 100644 --- a/src/main/java/org/dynmap/regions/FactionsConfigHandler.java +++ b/src/main/java/org/dynmap/regions/FactionsConfigHandler.java @@ -47,14 +47,21 @@ public class FactionsConfigHandler { return rslt; } JSONObject fact = null; + Reader inputFileReader = null; try { - Reader inputFileReader = new InputStreamReader(new FileInputStream(faction), cs_utf8); + inputFileReader = new InputStreamReader(new FileInputStream(faction), cs_utf8); fact = (JSONObject) parser.parse(inputFileReader); - inputFileReader.close(); } catch (IOException ex) { Log.severe("Exception while reading factions.json.", ex); } catch (ParseException ex) { Log.severe("Exception while parsing factions.json.", ex); + } finally { + if(inputFileReader != null) { + try { + inputFileReader.close(); + } catch (IOException iox) {} + inputFileReader = null; + } } if(fact == null) return rslt; @@ -66,13 +73,19 @@ public class FactionsConfigHandler { } JSONObject blocks = null; try { - Reader inputFileReader = new InputStreamReader(new FileInputStream(board), cs_utf8); + inputFileReader = new InputStreamReader(new FileInputStream(board), cs_utf8); blocks = (JSONObject) parser.parse(inputFileReader); - inputFileReader.close(); } catch (IOException ex) { Log.severe("Exception while reading board.json.", ex); } catch (ParseException ex) { Log.severe("Exception while parsing board.json.", ex); + } finally { + if(inputFileReader != null) { + try { + inputFileReader.close(); + } catch (IOException iox) {} + inputFileReader = null; + } } if(blocks == null) return rslt; diff --git a/src/main/java/org/dynmap/regions/RegionsComponent.java b/src/main/java/org/dynmap/regions/RegionsComponent.java index c4951a91..8de64edf 100644 --- a/src/main/java/org/dynmap/regions/RegionsComponent.java +++ b/src/main/java/org/dynmap/regions/RegionsComponent.java @@ -157,14 +157,21 @@ public class RegionsComponent extends ClientComponent { else { outputFile = new File(plugin.getDataFolder(), webWorldPath.toString()); } + FileOutputStream fos = null; try { - FileOutputStream fos = new FileOutputStream(outputFile); + fos = new FileOutputStream(outputFile); fos.write(Json.stringifyJson(regionData).getBytes()); - fos.close(); } catch (FileNotFoundException ex) { Log.severe("Exception while writing JSON-file.", ex); } catch (IOException ioe) { Log.severe("Exception while writing JSON-file.", ioe); + } finally { + if(fos != null) { + try { + fos.close(); + } catch (IOException iox) {} + fos = null; + } } }