From 2aafc237748259e960f6c0e237e3f6793489f1ad Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Wed, 6 May 2015 01:51:57 +0000 Subject: [PATCH] PrintWriter doesn't throw exceptions, so call checkError() --- apps/i2psnark/java/src/org/klomp/snark/dht/PersistDHT.java | 2 ++ .../susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java | 2 ++ core/java/src/net/i2p/crypto/CertUtil.java | 2 ++ core/java/src/net/i2p/data/DataHelper.java | 5 +++++ router/java/src/net/i2p/router/startup/WorkingDir.java | 2 ++ 5 files changed, 13 insertions(+) diff --git a/apps/i2psnark/java/src/org/klomp/snark/dht/PersistDHT.java b/apps/i2psnark/java/src/org/klomp/snark/dht/PersistDHT.java index 8ecd111ef7..2848b00909 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/dht/PersistDHT.java +++ b/apps/i2psnark/java/src/org/klomp/snark/dht/PersistDHT.java @@ -87,6 +87,8 @@ abstract class PersistDHT { out.println(ni.toPersistentString()); count++; } + if (out.checkError()) + throw new IOException("Failed write to " + file); } catch (IOException ioe) { if (log.shouldLog(Log.WARN)) log.warn("Error writing the DHT File", ioe); diff --git a/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java b/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java index 15d394336e..ec869f6255 100644 --- a/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java +++ b/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java @@ -112,6 +112,8 @@ public class SubscriptionsBean extends BaseBean out.println(url); } out.close(); + if (out.checkError()) + throw new IOException("Failed write to " + file); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/core/java/src/net/i2p/crypto/CertUtil.java b/core/java/src/net/i2p/crypto/CertUtil.java index aa484a5226..4d85aa6917 100644 --- a/core/java/src/net/i2p/crypto/CertUtil.java +++ b/core/java/src/net/i2p/crypto/CertUtil.java @@ -53,6 +53,8 @@ public class CertUtil { } wr.println("-----END CERTIFICATE-----"); wr.flush(); + if (wr.checkError()) + throw new IOException("Failed write to " + file); return true; } catch (CertificateEncodingException cee) { error("Error writing X509 Certificate " + file.getAbsolutePath(), cee); diff --git a/core/java/src/net/i2p/data/DataHelper.java b/core/java/src/net/i2p/data/DataHelper.java index ffa1d2577d..55e15727d9 100644 --- a/core/java/src/net/i2p/data/DataHelper.java +++ b/core/java/src/net/i2p/data/DataHelper.java @@ -529,6 +529,11 @@ public class DataHelper { out.flush(); fos.getFD().sync(); out.close(); + if (out.checkError()) { + out = null; + tmpFile.delete(); + throw new IOException("Failed to write properties to " + tmpFile); + } out = null; if (!FileUtil.rename(tmpFile, file)) throw new IOException("Failed rename from " + tmpFile + " to " + file); diff --git a/router/java/src/net/i2p/router/startup/WorkingDir.java b/router/java/src/net/i2p/router/startup/WorkingDir.java index 3be6b6309f..b8503224f6 100644 --- a/router/java/src/net/i2p/router/startup/WorkingDir.java +++ b/router/java/src/net/i2p/router/startup/WorkingDir.java @@ -322,6 +322,8 @@ public class WorkingDir { out.println(s); } System.err.println("Copied " + oldFile + " with modifications"); + if (out.checkError()) + throw new IOException("Failed write to " + newFile); return true; } catch (IOException ioe) { if (in != null) { -- GitLab