From 25012a674445fdb72d8d7f7aedfc0a9c780175f2 Mon Sep 17 00:00:00 2001 From: rcollier Date: Sat, 5 Oct 2013 23:14:24 +0000 Subject: [PATCH] SMACK-425 Few changes based on review http://fisheye.igniterealtime.org/cru/SMACK-4 git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_1@13759 b35dd754-fafc-0310-a699-88a17e54d16e --- .../org/jivesoftware/smack/PacketReader.java | 16 +++-- .../smack/SmackConfiguration.java | 6 +- ...dIQ.java => ExceptionLoggingCallback.java} | 39 +++--------- ...on.java => ExceptionThrowingCallback.java} | 16 +---- .../smack/parsing/LogException.java | 51 ---------------- .../parsing/ParsingExceptionCallback.java | 32 +--------- ...rsedMessage.java => UnparsablePacket.java} | 9 ++- .../smack/parsing/UnparsedPresence.java | 61 ------------------- 8 files changed, 27 insertions(+), 203 deletions(-) rename source/org/jivesoftware/smack/parsing/{UnparsedIQ.java => ExceptionLoggingCallback.java} (52%) rename source/org/jivesoftware/smack/parsing/{ThrowException.java => ExceptionThrowingCallback.java} (70%) delete mode 100644 source/org/jivesoftware/smack/parsing/LogException.java rename source/org/jivesoftware/smack/parsing/{UnparsedMessage.java => UnparsablePacket.java} (82%) delete mode 100644 source/org/jivesoftware/smack/parsing/UnparsedPresence.java diff --git a/source/org/jivesoftware/smack/PacketReader.java b/source/org/jivesoftware/smack/PacketReader.java index 05f8de99c..3ec83ac0e 100644 --- a/source/org/jivesoftware/smack/PacketReader.java +++ b/source/org/jivesoftware/smack/PacketReader.java @@ -23,9 +23,7 @@ package org.jivesoftware.smack; import org.jivesoftware.smack.Connection.ListenerWrapper; import org.jivesoftware.smack.packet.*; import org.jivesoftware.smack.parsing.ParsingExceptionCallback; -import org.jivesoftware.smack.parsing.UnparsedIQ; -import org.jivesoftware.smack.parsing.UnparsedMessage; -import org.jivesoftware.smack.parsing.UnparsedPresence; +import org.jivesoftware.smack.parsing.UnparsablePacket; import org.jivesoftware.smack.sasl.SASLMechanism.Challenge; import org.jivesoftware.smack.sasl.SASLMechanism.Failure; import org.jivesoftware.smack.sasl.SASLMechanism.Success; @@ -188,9 +186,9 @@ class PacketReader { packet = PacketParserUtils.parseMessage(parser); } catch (Exception e) { String content = PacketParserUtils.parseContentDepth(parser, parserDepth); - UnparsedMessage message = new UnparsedMessage(content, e); + UnparsablePacket message = new UnparsablePacket(content, e); if (callback != null) { - callback.messageParsingException(e, message); + callback.handleUnparsablePacket(message); } continue; } @@ -202,9 +200,9 @@ class PacketReader { iq = PacketParserUtils.parseIQ(parser, connection); } catch (Exception e) { String content = PacketParserUtils.parseContentDepth(parser, parserDepth); - UnparsedIQ uniq = new UnparsedIQ(content, e); + UnparsablePacket message = new UnparsablePacket(content, e); if (callback != null) { - callback.iqParsingException(e, uniq); + callback.handleUnparsablePacket(message); } continue; } @@ -216,9 +214,9 @@ class PacketReader { presence = PacketParserUtils.parsePresence(parser); } catch (Exception e) { String content = PacketParserUtils.parseContentDepth(parser, parserDepth); - UnparsedPresence unpresence = new UnparsedPresence(content, e); + UnparsablePacket message = new UnparsablePacket(content, e); if (callback != null) { - callback.presenceParsingException(e, unpresence); + callback.handleUnparsablePacket(message); } continue; } diff --git a/source/org/jivesoftware/smack/SmackConfiguration.java b/source/org/jivesoftware/smack/SmackConfiguration.java index d1f59b24c..f22046e46 100644 --- a/source/org/jivesoftware/smack/SmackConfiguration.java +++ b/source/org/jivesoftware/smack/SmackConfiguration.java @@ -29,7 +29,7 @@ import java.util.List; import java.util.Vector; import org.jivesoftware.smack.parsing.ParsingExceptionCallback; -import org.jivesoftware.smack.parsing.ThrowException; +import org.jivesoftware.smack.parsing.ExceptionThrowingCallback; import org.xmlpull.mxp1.MXParser; import org.xmlpull.v1.XmlPullParser; @@ -61,10 +61,10 @@ public final class SmackConfiguration { private static int packetCollectorSize = 5000; /** - * The default parsing exception callback is {@link ThrowException} which will + * The default parsing exception callback is {@link ExceptionThrowingCallback} which will * throw an exception and therefore disconnect the active connection. */ - private static ParsingExceptionCallback defaultCallback = new ThrowException(); + private static ParsingExceptionCallback defaultCallback = new ExceptionThrowingCallback(); /** * This automatically enables EntityCaps for new connections if it is set to true diff --git a/source/org/jivesoftware/smack/parsing/UnparsedIQ.java b/source/org/jivesoftware/smack/parsing/ExceptionLoggingCallback.java similarity index 52% rename from source/org/jivesoftware/smack/parsing/UnparsedIQ.java rename to source/org/jivesoftware/smack/parsing/ExceptionLoggingCallback.java index a9ad6a6d5..771913ebf 100644 --- a/source/org/jivesoftware/smack/parsing/UnparsedIQ.java +++ b/source/org/jivesoftware/smack/parsing/ExceptionLoggingCallback.java @@ -20,43 +20,18 @@ package org.jivesoftware.smack.parsing; -import org.jivesoftware.smack.packet.IQ; - /** - * Representation of an unparsed IQ stanza. + * Simple parsing exception callback that only logs the encountered parsing exception to stderr. * * @author Florian Schmaus - * + * */ -public class UnparsedIQ extends IQ { - private final String content; - private final Exception e; - - public UnparsedIQ(final String content, final Exception e) { - this.content = content; - this.e = e; - } - - /** - * - * @return the exception that caused the parser to fail - */ - public Exception getException() { - return e; - } - - /** - * Retrieve the raw stanza data - * - * @return the raw stanza data - */ - public String getContent() { - return content; - } +public class ExceptionLoggingCallback extends ParsingExceptionCallback { @Override - public String getChildElementXML() { - return null; + public void handleUnparsablePacket(UnparsablePacket unparsed) throws Exception { + System.err.print("Smack message parsing exception: " + unparsed.getParsingException().getMessage()); + unparsed.getParsingException().printStackTrace(); + System.err.println("Unparsed content: " + unparsed.getContent()); } - } diff --git a/source/org/jivesoftware/smack/parsing/ThrowException.java b/source/org/jivesoftware/smack/parsing/ExceptionThrowingCallback.java similarity index 70% rename from source/org/jivesoftware/smack/parsing/ThrowException.java rename to source/org/jivesoftware/smack/parsing/ExceptionThrowingCallback.java index 400950346..46a6ca438 100644 --- a/source/org/jivesoftware/smack/parsing/ThrowException.java +++ b/source/org/jivesoftware/smack/parsing/ExceptionThrowingCallback.java @@ -29,20 +29,10 @@ import org.jivesoftware.smack.ConnectionListener; * @author Florian Schmaus * */ -public class ThrowException extends ParsingExceptionCallback { +public class ExceptionThrowingCallback extends ParsingExceptionCallback { @Override - public void messageParsingException(Exception e, UnparsedMessage message) throws Exception { - throw e; - } - - @Override - public void iqParsingException(Exception e, UnparsedIQ iq) throws Exception { - throw e; - } - - @Override - public void presenceParsingException(Exception e, UnparsedPresence presence) throws Exception { - throw e; + public void handleUnparsablePacket(UnparsablePacket packetData) throws Exception { + throw packetData.getParsingException(); } } diff --git a/source/org/jivesoftware/smack/parsing/LogException.java b/source/org/jivesoftware/smack/parsing/LogException.java deleted file mode 100644 index dd3031e9a..000000000 --- a/source/org/jivesoftware/smack/parsing/LogException.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2013 Florian Schmaus. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.parsing; - -/** - * Simple parsing exception callback that only logs the encountered parsing exception to stderr. - * - * @author Florian Schmaus - * - */ -public class LogException extends ParsingExceptionCallback { - - @Override - public void messageParsingException(Exception e, UnparsedMessage message) throws Exception { - System.err.print("Smack message parsing exception: " + e.getMessage()); - e.printStackTrace(); - System.err.println("Unparsed content: " + message.getContent()); - } - - @Override - public void iqParsingException(Exception e, UnparsedIQ iq) throws Exception { - System.err.print("Smack iq parsing exception: " + e.getMessage()); - e.printStackTrace(); - System.err.println("Unparsed content: " + iq.getContent()); - } - - @Override - public void presenceParsingException(Exception e, UnparsedPresence presence) throws Exception { - System.err.print("Smack presence parsing exception: " + e.getMessage()); - e.printStackTrace(); - System.err.println("Unparsed content: " + presence.getContent()); - } -} diff --git a/source/org/jivesoftware/smack/parsing/ParsingExceptionCallback.java b/source/org/jivesoftware/smack/parsing/ParsingExceptionCallback.java index 3c57d089c..cfb36aed6 100644 --- a/source/org/jivesoftware/smack/parsing/ParsingExceptionCallback.java +++ b/source/org/jivesoftware/smack/parsing/ParsingExceptionCallback.java @@ -31,7 +31,7 @@ package org.jivesoftware.smack.parsing; * stanza that caused the parsing error by using the getContent() (for example {@link UnparsedIQ#getContent()}) * method. * - * Smack provides 2 predefined ParsingExceptionCallback's: {@link LogException} and {@link ThrowException}. + * Smack provides 2 predefined ParsingExceptionCallback's: {@link ExceptionLoggingCallback} and {@link ExceptionThrowingCallback}. * * @author Florian Schmaus * @@ -41,36 +41,10 @@ public abstract class ParsingExceptionCallback { /** * Called when parsing an message stanza caused an exception. * - * @param e - * the exception thrown while parsing the message stanza - * @param message + * @param stanzaData * the raw message stanza data that caused the exception * @throws Exception */ - public void messageParsingException(Exception e, UnparsedMessage message) throws Exception { - } - - /** - * Called when parsing an IQ stanza caused an exception. - * - * @param e - * the exception thrown while parsing the iq stanza - * @param iq - * the raw iq stanza data that caused the exception - * @throws Exception - */ - public void iqParsingException(Exception e, UnparsedIQ iq) throws Exception { - } - - /** - * Called when parsing a presence stanza caused an exception. - * - * @param e - * the exception thrown while parsing the presence stanza - * @param presence - * the raw presence stanza data that caused the exception - * @throws Exception - */ - public void presenceParsingException(Exception e, UnparsedPresence presence) throws Exception { + public void handleUnparsablePacket(UnparsablePacket stanzaData) throws Exception { } } diff --git a/source/org/jivesoftware/smack/parsing/UnparsedMessage.java b/source/org/jivesoftware/smack/parsing/UnparsablePacket.java similarity index 82% rename from source/org/jivesoftware/smack/parsing/UnparsedMessage.java rename to source/org/jivesoftware/smack/parsing/UnparsablePacket.java index e23773cf2..57775efb7 100644 --- a/source/org/jivesoftware/smack/parsing/UnparsedMessage.java +++ b/source/org/jivesoftware/smack/parsing/UnparsablePacket.java @@ -20,19 +20,18 @@ package org.jivesoftware.smack.parsing; -import org.jivesoftware.smack.packet.Message; /** - * Representation of an unparsed IQ stanza. + * Representation of an unparsable packet. * * @author Florian Schmaus * */ -public class UnparsedMessage extends Message { +public class UnparsablePacket { private final String content; private final Exception e; - public UnparsedMessage(final String content, final Exception e) { + public UnparsablePacket(final String content, final Exception e) { this.content = content; this.e = e; } @@ -41,7 +40,7 @@ public class UnparsedMessage extends Message { * * @return the exception that caused the parser to fail */ - public Exception getException() { + public Exception getParsingException() { return e; } diff --git a/source/org/jivesoftware/smack/parsing/UnparsedPresence.java b/source/org/jivesoftware/smack/parsing/UnparsedPresence.java deleted file mode 100644 index a14e0ae49..000000000 --- a/source/org/jivesoftware/smack/parsing/UnparsedPresence.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * $RCSfile$ - * $Revision$ - * $Date$ - * - * Copyright 2013 Florian Schmaus. - * - * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.parsing; - -import org.jivesoftware.smack.packet.Presence; - -/** - * Representation of an unparsed IQ stanza. - * - * @author Florian Schmaus - * - */ -public class UnparsedPresence extends Presence { - private String content; - private Exception e; - - public UnparsedPresence(Type type) { - super(type); - } - - public UnparsedPresence(final String content, final Exception e) { - super(Presence.Type.error); - this.content = content; - this.e = e; - } - - /** - * - * @return the exception that caused the parser to fail - */ - public Exception getException() { - return e; - } - - /** - * Retrieve the raw stanza data - * - * @return the raw stanza data - */ - public String getContent() { - return content; - } -}