From f7c747ef4b496df77388872c750bf95100991c76 Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Fri, 15 Aug 2014 13:34:55 +0200 Subject: better handling of null streams --- src/eu/siacs/conversations/xml/TagWriter.java | 10 ++++++++-- src/eu/siacs/conversations/xml/XmlReader.java | 19 ++++++++++++++----- src/eu/siacs/conversations/xmpp/XmppConnection.java | 7 ------- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/eu/siacs/conversations/xml/TagWriter.java b/src/eu/siacs/conversations/xml/TagWriter.java index 23a260f2..4828d5d9 100644 --- a/src/eu/siacs/conversations/xml/TagWriter.java +++ b/src/eu/siacs/conversations/xml/TagWriter.java @@ -41,12 +41,18 @@ public class TagWriter { public TagWriter() { } - public void setOutputStream(OutputStream out) { + public void setOutputStream(OutputStream out) throws IOException { + if (out==null) { + throw new IOException(); + } this.plainOutputStream = out; this.outputStream = new OutputStreamWriter(out); } - public OutputStream getOutputStream() { + public OutputStream getOutputStream() throws IOException { + if (this.plainOutputStream==null) { + throw new IOException(); + } return this.plainOutputStream; } diff --git a/src/eu/siacs/conversations/xml/XmlReader.java b/src/eu/siacs/conversations/xml/XmlReader.java index 25d3fe38..1c7e94e6 100644 --- a/src/eu/siacs/conversations/xml/XmlReader.java +++ b/src/eu/siacs/conversations/xml/XmlReader.java @@ -28,24 +28,33 @@ public class XmlReader { this.wakeLock = wakeLock; } - public void setInputStream(InputStream inputStream) { + public void setInputStream(InputStream inputStream) throws IOException { + if (inputStream==null) { + throw new IOException(); + } this.is = inputStream; try { parser.setInput(new InputStreamReader(this.is)); } catch (XmlPullParserException e) { - Log.d(LOGTAG,"error setting input stream"); + throw new IOException("error resetting parser"); } } - public InputStream getInputStream() { + public InputStream getInputStream() throws IOException { + if (this.is==null) { + throw new IOException(); + } return is; } - public void reset() { + public void reset() throws IOException { + if (this.is==null) { + throw new IOException(); + } try { parser.setInput(new InputStreamReader(this.is)); } catch (XmlPullParserException e) { - Log.d(LOGTAG,"error resetting input stream"); + throw new IOException("error resetting parser"); } } diff --git a/src/eu/siacs/conversations/xmpp/XmppConnection.java b/src/eu/siacs/conversations/xmpp/XmppConnection.java index d8c9f4b9..c83f39a8 100644 --- a/src/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/eu/siacs/conversations/xmpp/XmppConnection.java @@ -415,15 +415,8 @@ public class XmppConnection implements Runnable { throws XmlPullParserException, IOException, NoSuchAlgorithmException { tagReader.readTag(); // read tag close - - if (!tagWriter.isActive()) { - throw new IOException(); - } tagWriter.setOutputStream(new ZLibOutputStream(tagWriter .getOutputStream())); - if (tagReader.getInputStream() == null) { - throw new IOException(); - } tagReader .setInputStream(new ZLibInputStream(tagReader.getInputStream())); -- cgit v1.2.3