diff --git a/build.gradle b/build.gradle index 5cfd4ad21..f4e013e2e 100644 --- a/build.gradle +++ b/build.gradle @@ -170,7 +170,7 @@ allprojects { // version 52.0" error messages caused by the errorprone javac. // See https://github.com/tbroyer/gradle-errorprone-plugin/issues/18 for more information. configurations.errorprone { - resolutionStrategy.force 'com.google.errorprone:error_prone_core:2.0.5' + resolutionStrategy.force 'com.google.errorprone:error_prone_core:2.0.15' } } diff --git a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/BOSHConfiguration.java b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/BOSHConfiguration.java index 92615f32e..252a49a43 100644 --- a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/BOSHConfiguration.java +++ b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/BOSHConfiguration.java @@ -55,6 +55,7 @@ public final class BOSHConfiguration extends ConnectionConfiguration { return proxy != null; } + @Override public ProxyInfo getProxyInfo() { return proxy; } diff --git a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java index f88cc7c3e..abf9105f6 100644 --- a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java +++ b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java @@ -203,11 +203,13 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { saslFeatureReceived.reportSuccess(); } + @Override public boolean isSecureConnection() { // TODO: Implement SSL usage return false; } + @Override public boolean isUsingCompression() { // TODO: Implement compression return false; @@ -313,16 +315,25 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { /** * Initialize the SmackDebugger which allows to log and debug XML traffic. */ + @Override protected void initDebugger() { // TODO: Maybe we want to extend the SmackDebugger for simplification // and a performance boost. // Initialize a empty writer which discards all data. writer = new Writer() { - public void write(char[] cbuf, int off, int len) { /* ignore */} - public void close() { /* ignore */ } - public void flush() { /* ignore */ } - }; + @Override + public void write(char[] cbuf, int off, int len) { + /* ignore */} + + @Override + public void close() { + /* ignore */ } + + @Override + public void flush() { + /* ignore */ } + }; // Initialize a pipe for received raw data. try { @@ -338,6 +349,7 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { // Add listeners for the received and sent raw data. client.addBOSHClientResponseListener(new BOSHClientResponseListener() { + @Override public void responseReceived(BOSHMessageEvent event) { if (event.getBody() != null) { try { @@ -350,6 +362,7 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { } }); client.addBOSHClientRequestListener(new BOSHClientRequestListener() { + @Override public void requestSent(BOSHMessageEvent event) { if (event.getBody() != null) { try { @@ -366,6 +379,7 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { private Thread thread = this; private int bufferLength = 1024; + @Override public void run() { try { char[] cbuf = new char[bufferLength]; @@ -406,6 +420,7 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { * Process the connection listeners and try to login if the * connection was formerly authenticated and is now reconnected. */ + @Override public void connectionEvent(BOSHClientConnEvent connEvent) { try { if (connEvent.isConnected()) { @@ -463,6 +478,7 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { * * @param event the BOSH client response which includes the received packet. */ + @Override public void responseReceived(BOSHMessageEvent event) { AbstractBody body = event.getBody(); if (body != null) { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java index 2e8f5a5c5..eab2710c2 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java @@ -1616,6 +1616,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { private long lastStanzaReceived; + @Override public long getLastStanzaReceived() { return lastStanzaReceived; } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java b/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java index 90a5f9a6a..4430b1f9e 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java @@ -70,6 +70,7 @@ public final class ReconnectionManager { static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { if (connection instanceof AbstractXMPPConnection) { ReconnectionManager.getInstanceFor((AbstractXMPPConnection) connection); @@ -204,6 +205,7 @@ public final class ReconnectionManager { /** * The process will try the reconnection until the connection succeed or the user cancel it */ + @Override public void run() { final AbstractXMPPConnection connection = weakRefConnection.get(); if (connection == null) { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java b/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java index 74f8d49fb..7bdb8e18a 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java @@ -37,6 +37,7 @@ import org.jivesoftware.smack.sasl.core.SASLXOauth2Mechanism; import org.jivesoftware.smack.sasl.core.SCRAMSHA1Mechanism; import org.jivesoftware.smack.sasl.core.ScramSha1PlusMechanism; import org.jivesoftware.smack.util.FileUtils; +import org.jivesoftware.smack.util.StringUtils; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; @@ -60,7 +61,7 @@ public final class SmackInitialization { static { String smackVersion; try { - BufferedReader reader = new BufferedReader(new InputStreamReader(FileUtils.getStreamForUrl("classpath:org.jivesoftware.smack/version", null))); + BufferedReader reader = new BufferedReader(new InputStreamReader(FileUtils.getStreamForUrl("classpath:org.jivesoftware.smack/version", null), StringUtils.UTF8)); smackVersion = reader.readLine(); try { reader.close(); @@ -232,7 +233,7 @@ public final class SmackInitialization { } } if (SmackInitializer.class.isAssignableFrom(initClass)) { - SmackInitializer initializer = (SmackInitializer) initClass.newInstance(); + SmackInitializer initializer = (SmackInitializer) initClass.getConstructor().newInstance(); List exceptions = initializer.initialize(); if (exceptions == null || exceptions.size() == 0) { LOGGER.log(Level.FINE, "Loaded SmackInitializer " + className); diff --git a/smack-core/src/main/java/org/jivesoftware/smack/debugger/AbstractDebugger.java b/smack-core/src/main/java/org/jivesoftware/smack/debugger/AbstractDebugger.java index a7940fe08..7a58e64cb 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/debugger/AbstractDebugger.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/debugger/AbstractDebugger.java @@ -49,6 +49,7 @@ public abstract class AbstractDebugger implements SmackDebugger { // Create a special Reader that wraps the main Reader and logs data to the GUI. this.reader = new ObservableReader(reader); readerListener = new ReaderListener() { + @Override public void read(String str) { log("RECV (" + connection.getConnectionCounter() + "): " + str); } @@ -58,6 +59,7 @@ public abstract class AbstractDebugger implements SmackDebugger { // Create a special Writer that wraps the main Writer and logs data to the GUI. this.writer = new ObservableWriter(writer); writerListener = new WriterListener() { + @Override public void write(String str) { log("SENT (" + connection.getConnectionCounter() + "): " + str); } @@ -68,6 +70,7 @@ public abstract class AbstractDebugger implements SmackDebugger { // the GUI. This is what we call "interpreted" packet data, since it's the packet // data as Smack sees it and not as it's coming in as raw XML. listener = new StanzaListener() { + @Override public void processStanza(Stanza packet) { if (printInterpreted) { log("RCV PKT (" + connection.getConnectionCounter() + "): " + packet.toXML()); @@ -76,10 +79,12 @@ public abstract class AbstractDebugger implements SmackDebugger { }; connListener = new ConnectionListener() { + @Override public void connected(XMPPConnection connection) { log("XMPPConnection connected (" + connection + ")"); } + @Override public void authenticated(XMPPConnection connection, boolean resumed) { String logString = "XMPPConnection authenticated (" + connection + ")"; if (resumed) { @@ -87,6 +92,7 @@ public abstract class AbstractDebugger implements SmackDebugger { } log(logString); } + @Override public void connectionClosed() { log( "XMPPConnection closed (" + @@ -94,24 +100,28 @@ public abstract class AbstractDebugger implements SmackDebugger { ")"); } + @Override public void connectionClosedOnError(Exception e) { log( "XMPPConnection closed due to an exception (" + connection + ")", e); } + @Override public void reconnectionFailed(Exception e) { log( "Reconnection failed due to an exception (" + connection + ")", e); } + @Override public void reconnectionSuccessful() { log( "XMPPConnection reconnected (" + connection + ")"); } + @Override public void reconnectingIn(int seconds) { log( "XMPPConnection (" + @@ -125,6 +135,7 @@ public abstract class AbstractDebugger implements SmackDebugger { protected abstract void log(String logMessage, Throwable throwable); + @Override public Reader newConnectionReader(Reader newReader) { reader.removeReaderListener(readerListener); ObservableReader debugReader = new ObservableReader(newReader); @@ -133,6 +144,7 @@ public abstract class AbstractDebugger implements SmackDebugger { return reader; } + @Override public Writer newConnectionWriter(Writer newWriter) { writer.removeWriterListener(writerListener); ObservableWriter debugWriter = new ObservableWriter(newWriter); @@ -159,18 +171,22 @@ public abstract class AbstractDebugger implements SmackDebugger { connection.addConnectionListener(connListener); } + @Override public Reader getReader() { return reader; } + @Override public Writer getWriter() { return writer; } + @Override public StanzaListener getReaderListener() { return listener; } + @Override public StanzaListener getWriterListener() { return null; } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/filter/AbstractFromToMatchesFilter.java b/smack-core/src/main/java/org/jivesoftware/smack/filter/AbstractFromToMatchesFilter.java index 7f71678cf..d9b5605e0 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/filter/AbstractFromToMatchesFilter.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/filter/AbstractFromToMatchesFilter.java @@ -47,6 +47,7 @@ public abstract class AbstractFromToMatchesFilter implements StanzaFilter { this.ignoreResourcepart = ignoreResourcepart; } + @Override public final boolean accept(final Stanza stanza) { Jid stanzaAddress = getAddressToCompare(stanza); @@ -63,6 +64,7 @@ public abstract class AbstractFromToMatchesFilter implements StanzaFilter { protected abstract Jid getAddressToCompare(Stanza stanza); + @Override public final String toString() { String matchMode = ignoreResourcepart ? "ignoreResourcepart" : "full"; return getClass().getSimpleName() + " (" + matchMode + "): " + address; diff --git a/smack-core/src/main/java/org/jivesoftware/smack/filter/AndFilter.java b/smack-core/src/main/java/org/jivesoftware/smack/filter/AndFilter.java index a1a5749fc..216c3ddde 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/filter/AndFilter.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/filter/AndFilter.java @@ -44,6 +44,7 @@ public class AndFilter extends AbstractListFilter implements StanzaFilter { super(filters); } + @Override public boolean accept(Stanza packet) { for (StanzaFilter filter : filters) { if (!filter.accept(packet)) { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/filter/NotFilter.java b/smack-core/src/main/java/org/jivesoftware/smack/filter/NotFilter.java index e657cf4eb..c836be1c1 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/filter/NotFilter.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/filter/NotFilter.java @@ -39,6 +39,7 @@ public class NotFilter implements StanzaFilter { this.filter = Objects.requireNonNull(filter, "Parameter must not be null."); } + @Override public boolean accept(Stanza packet) { return !filter.accept(packet); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketExtensionFilter.java b/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketExtensionFilter.java index f6458194f..82c1016c0 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketExtensionFilter.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketExtensionFilter.java @@ -67,6 +67,7 @@ public class PacketExtensionFilter implements StanzaFilter { this(packetExtension.getElementName(), packetExtension.getNamespace()); } + @Override public boolean accept(Stanza packet) { return packet.hasExtension(elementName, namespace); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketIDFilter.java b/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketIDFilter.java index e4ea23248..d596f9ef9 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketIDFilter.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketIDFilter.java @@ -54,10 +54,12 @@ public class PacketIDFilter implements StanzaFilter { this.packetID = packetID; } + @Override public boolean accept(Stanza packet) { return packetID.equals(packet.getStanzaId()); } + @Override public String toString() { return getClass().getSimpleName() + ": id=" + packetID; } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketTypeFilter.java b/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketTypeFilter.java index f20fdeac1..8b254f56e 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketTypeFilter.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/filter/PacketTypeFilter.java @@ -51,6 +51,7 @@ public class PacketTypeFilter implements StanzaFilter { this.packetType = packetType; } + @Override public boolean accept(Stanza packet) { return packetType.isInstance(packet); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaExtensionFilter.java b/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaExtensionFilter.java index e8fb46d46..f7f810e82 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaExtensionFilter.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaExtensionFilter.java @@ -65,6 +65,7 @@ public class StanzaExtensionFilter implements StanzaFilter { this(packetExtension.getElementName(), packetExtension.getNamespace()); } + @Override public boolean accept(Stanza packet) { return packet.hasExtension(elementName, namespace); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaIdFilter.java b/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaIdFilter.java index 3cc9740a1..0e6b0f404 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaIdFilter.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaIdFilter.java @@ -47,10 +47,12 @@ public class StanzaIdFilter implements StanzaFilter { this.stanzaId = StringUtils.requireNotNullOrEmpty(stanzaID, "Stanza ID must not be null or empty."); } + @Override public boolean accept(Stanza stanza) { return stanzaId.equals(stanza.getStanzaId()); } + @Override public String toString() { return getClass().getSimpleName() + ": id=" + stanzaId; } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaTypeFilter.java b/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaTypeFilter.java index 8b8971cda..156a7914e 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaTypeFilter.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/filter/StanzaTypeFilter.java @@ -51,6 +51,7 @@ public final class StanzaTypeFilter implements StanzaFilter { this.packetType = packetType; } + @Override public boolean accept(Stanza packet) { return packetType.isInstance(packet); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/DefaultExtensionElement.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/DefaultExtensionElement.java index 88166db43..e51b5b4ee 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/DefaultExtensionElement.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/DefaultExtensionElement.java @@ -70,6 +70,7 @@ public class DefaultExtensionElement implements ExtensionElement { * * @return the XML element name of the stanza(/packet) extension. */ + @Override public String getElementName() { return elementName; } @@ -79,6 +80,7 @@ public class DefaultExtensionElement implements ExtensionElement { * * @return the XML namespace of the stanza(/packet) extension. */ + @Override public String getNamespace() { return namespace; } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/Message.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/Message.java index e0ec0ce82..ebf18faef 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/Message.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/Message.java @@ -570,6 +570,7 @@ public final class Message extends Stanza implements TypedCloneable { } + @Override public int hashCode() { final int prime = 31; int result = 1; @@ -578,6 +579,7 @@ public final class Message extends Stanza implements TypedCloneable { return result; } + @Override public boolean equals(Object obj) { if (this == obj) { return true; @@ -632,6 +634,7 @@ public final class Message extends Stanza implements TypedCloneable { return message; } + @Override public int hashCode() { final int prime = 31; int result = 1; @@ -640,6 +643,7 @@ public final class Message extends Stanza implements TypedCloneable { return result; } + @Override public boolean equals(Object obj) { if (this == obj) { return true; diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java index 88549db4f..e51033f43 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java @@ -78,7 +78,7 @@ public class IntrospectionProvider{ IOException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException { ParserUtils.assertAtStartTag(parser); - Object object = objectClass.newInstance(); + Object object = objectClass.getConstructor().newInstance(); outerloop: while (true) { int eventType = parser.next(); switch (eventType) { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java index 2090401cc..bee798fb0 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java @@ -83,7 +83,8 @@ public class ProviderFileLoader implements ProviderLoader { // reflection later to create instances of the class. // Add the provider to the map. if (IQProvider.class.isAssignableFrom(provider)) { - iqProviders.add(new IQProviderInfo(elementName, namespace, (IQProvider) provider.newInstance())); + IQProvider iqProvider = (IQProvider) provider.getConstructor().newInstance(); + iqProviders.add(new IQProviderInfo(elementName, namespace, iqProvider)); } else { exceptions.add(new IllegalArgumentException(className + " is not a IQProvider")); @@ -96,7 +97,9 @@ public class ProviderFileLoader implements ProviderLoader { // then we'll use reflection later to create instances // of the class. if (ExtensionElementProvider.class.isAssignableFrom(provider)) { - extProviders.add(new ExtensionProviderInfo(elementName, namespace, (ExtensionElementProvider) provider.newInstance())); + ExtensionElementProvider extensionElementProvider = (ExtensionElementProvider) provider.getConstructor().newInstance(); + extProviders.add(new ExtensionProviderInfo(elementName, namespace, + extensionElementProvider)); } else { exceptions.add(new IllegalArgumentException(className @@ -104,9 +107,10 @@ public class ProviderFileLoader implements ProviderLoader { } break; case "streamFeatureProvider": + ExtensionElementProvider streamFeatureProvider = (ExtensionElementProvider) provider.getConstructor().newInstance(); sfProviders.add(new StreamFeatureProviderInfo(elementName, namespace, - (ExtensionElementProvider) provider.newInstance())); + streamFeatureProvider)); break; default: LOGGER.warning("Unknown provider type: " + typeName); diff --git a/smack-core/src/main/java/org/jivesoftware/smack/proxy/Socks4ProxySocketConnection.java b/smack-core/src/main/java/org/jivesoftware/smack/proxy/Socks4ProxySocketConnection.java index 40ef48215..65a54059a 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/proxy/Socks4ProxySocketConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/proxy/Socks4ProxySocketConnection.java @@ -23,6 +23,8 @@ import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; +import org.jivesoftware.smack.util.StringUtils; + /** * Socket factory for socks4 proxy. * @@ -89,7 +91,8 @@ public class Socks4ProxySocketConnection implements ProxySocketConnection { if(user!=null) { - System.arraycopy(user.getBytes(), 0, buf, index, user.length()); + byte[] userBytes = user.getBytes(StringUtils.UTF8); + System.arraycopy(userBytes, 0, buf, index, user.length()); index+=user.length(); } buf[index++]=0; diff --git a/smack-core/src/main/java/org/jivesoftware/smack/proxy/Socks5ProxySocketConnection.java b/smack-core/src/main/java/org/jivesoftware/smack/proxy/Socks5ProxySocketConnection.java index d7b71802e..3e54f877c 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/proxy/Socks5ProxySocketConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/proxy/Socks5ProxySocketConnection.java @@ -22,6 +22,8 @@ import java.io.OutputStream; import java.net.InetSocketAddress; import java.net.Socket; +import org.jivesoftware.smack.util.StringUtils; + /** * Socket factory for Socks5 proxy. * @@ -132,11 +134,13 @@ public class Socks5ProxySocketConnection implements ProxySocketConnection { index=0; buf[index++]=1; buf[index++]=(byte)(user.length()); - System.arraycopy(user.getBytes(), 0, buf, index, + byte[] userBytes = user.getBytes(StringUtils.UTF8); + System.arraycopy(userBytes, 0, buf, index, user.length()); index+=user.length(); - buf[index++]=(byte)(passwd.length()); - System.arraycopy(passwd.getBytes(), 0, buf, index, + byte[] passwordBytes = user.getBytes(StringUtils.UTF8); + buf[index++]=(byte)(passwordBytes.length); + System.arraycopy(passwordBytes, 0, buf, index, passwd.length()); index+=passwd.length(); @@ -210,7 +214,7 @@ public class Socks5ProxySocketConnection implements ProxySocketConnection { buf[index++]=1; // CONNECT buf[index++]=0; - byte[] hostb= host.getBytes(); + byte[] hostb= host.getBytes(StringUtils.UTF8); int len=hostb.length; buf[index++]=3; // DOMAINNAME buf[index++]=(byte)(len); diff --git a/smack-core/src/main/java/org/jivesoftware/smack/sasl/SASLMechanism.java b/smack-core/src/main/java/org/jivesoftware/smack/sasl/SASLMechanism.java index 3a81b3535..c2cc66e3a 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/sasl/SASLMechanism.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/sasl/SASLMechanism.java @@ -265,9 +265,10 @@ public abstract class SASLMechanism implements Comparable { return null; } + @Override public final int compareTo(SASLMechanism other) { // Switch to Integer.compare(int, int) once Smack is on Android 19 or higher. - Integer ourPriority = new Integer(getPriority()); + Integer ourPriority = getPriority(); return ourPriority.compareTo(other.getPriority()); } @@ -300,7 +301,7 @@ public abstract class SASLMechanism implements Comparable { } /** - * SASLprep the given String. + * SASLprep the given String. The resulting String is in UTF-8. * * @param string the String to sasl prep. * @return the given String SASL preped diff --git a/smack-core/src/main/java/org/jivesoftware/smack/sasl/core/SASLAnonymous.java b/smack-core/src/main/java/org/jivesoftware/smack/sasl/core/SASLAnonymous.java index 7f99b5ef8..509104d2b 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/sasl/core/SASLAnonymous.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/sasl/core/SASLAnonymous.java @@ -30,6 +30,7 @@ public class SASLAnonymous extends SASLMechanism { public static final String NAME = "ANONYMOUS"; + @Override public String getName() { return NAME; } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/sasl/core/ScramMechanism.java b/smack-core/src/main/java/org/jivesoftware/smack/sasl/core/ScramMechanism.java index a59b40815..08a1f6aab 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/sasl/core/ScramMechanism.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/sasl/core/ScramMechanism.java @@ -16,6 +16,7 @@ */ package org.jivesoftware.smack.sasl.core; +import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.SecureRandom; import java.util.Collections; @@ -105,7 +106,15 @@ public abstract class ScramMechanism extends SASLMechanism { @Override protected byte[] evaluateChallenge(byte[] challenge) throws SmackException { - final String challengeString = new String(challenge); + String challengeString; + try { + // TODO: Where is it specified that this is an UTF-8 encoded string? + challengeString = new String(challenge, StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } + switch (state) { case AUTH_TEXT_SENT: final String serverFirstMessage = challengeString; @@ -358,14 +367,21 @@ public abstract class ScramMechanism extends SASLMechanism { * (PRF) and with dkLen == output length of HMAC() == output length of H(). *

* - * @param str + * @param normalizedPassword the normalized password. * @param salt * @param iterations * @return the result of the Hi function. * @throws SmackException */ - private byte[] hi(String str, byte[] salt, int iterations) throws SmackException { - byte[] key = str.getBytes(); + private byte[] hi(String normalizedPassword, byte[] salt, int iterations) throws SmackException { + byte[] key; + try { + // According to RFC 5802 ยง 2.2, the resulting string of the normalization is also in UTF-8. + key = normalizedPassword.getBytes(StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(); + } // U1 := HMAC(str, salt + INT(1)) byte[] u = hmac(key, ByteUtils.concact(salt, ONE)); byte[] res = u.clone(); diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/ArrayBlockingQueueWithShutdown.java b/smack-core/src/main/java/org/jivesoftware/smack/util/ArrayBlockingQueueWithShutdown.java index a24c06d49..742b34cf1 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/ArrayBlockingQueueWithShutdown.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/ArrayBlockingQueueWithShutdown.java @@ -240,6 +240,7 @@ public class ArrayBlockingQueueWithShutdown extends AbstractQueue implemen * @param e the element to add. * @throws InterruptedException if interrupted while waiting or if the queue was shut down. */ + @Override public void put(E e) throws InterruptedException { checkNotNull(e); lock.lockInterruptibly(); @@ -452,6 +453,7 @@ public class ArrayBlockingQueueWithShutdown extends AbstractQueue implemen } } + @Override public boolean hasNext() { return nextIndex >= 0; } @@ -469,6 +471,7 @@ public class ArrayBlockingQueueWithShutdown extends AbstractQueue implemen } } + @Override public E next() { lock.lock(); try { @@ -486,6 +489,7 @@ public class ArrayBlockingQueueWithShutdown extends AbstractQueue implemen } } + @Override public void remove() { lock.lock(); try { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/FileUtils.java b/smack-core/src/main/java/org/jivesoftware/smack/util/FileUtils.java index 395fdf846..8fa5bb557 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/FileUtils.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/FileUtils.java @@ -87,7 +87,8 @@ public final class FileUtils { public static boolean addLines(String url, Set set) throws MalformedURLException, IOException { InputStream is = getStreamForUrl(url, null); if (is == null) return false; - BufferedReader br = new BufferedReader(new InputStreamReader(is)); + InputStreamReader sr = new InputStreamReader(is, StringUtils.UTF8); + BufferedReader br = new BufferedReader(sr); String line; while ((line = br.readLine()) != null) { set.add(line); @@ -102,6 +103,7 @@ public final class FileUtils { * @return the content of file or null in case of an error * @throws IOException */ + @SuppressWarnings("DefaultCharset") public static String readFileOrThrow(File file) throws FileNotFoundException, IOException { Reader reader = null; try { @@ -132,6 +134,7 @@ public final class FileUtils { return null; } + @SuppressWarnings("DefaultCharset") public static void writeFileOrThrow(File file, CharSequence content) throws IOException { FileWriter writer = new FileWriter(file, false); try { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/ObservableReader.java b/smack-core/src/main/java/org/jivesoftware/smack/util/ObservableReader.java index 3cd27ff2f..43713261a 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/ObservableReader.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/ObservableReader.java @@ -37,6 +37,7 @@ public class ObservableReader extends Reader { this.wrappedReader = wrappedReader; } + @Override public int read(char[] cbuf, int off, int len) throws IOException { int count = wrappedReader.read(cbuf, off, len); if (count > 0) { @@ -54,34 +55,42 @@ public class ObservableReader extends Reader { return count; } + @Override public void close() throws IOException { wrappedReader.close(); } + @Override public int read() throws IOException { return wrappedReader.read(); } + @Override public int read(char[] cbuf) throws IOException { return wrappedReader.read(cbuf); } + @Override public long skip(long n) throws IOException { return wrappedReader.skip(n); } + @Override public boolean ready() throws IOException { return wrappedReader.ready(); } + @Override public boolean markSupported() { return wrappedReader.markSupported(); } + @Override public void mark(int readAheadLimit) throws IOException { wrappedReader.mark(readAheadLimit); } + @Override public void reset() throws IOException { wrappedReader.reset(); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/ObservableWriter.java b/smack-core/src/main/java/org/jivesoftware/smack/util/ObservableWriter.java index 8a7a754de..a92d00c28 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/ObservableWriter.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/ObservableWriter.java @@ -38,36 +38,43 @@ public class ObservableWriter extends Writer { this.wrappedWriter = wrappedWriter; } + @Override public void write(char[] cbuf, int off, int len) throws IOException { wrappedWriter.write(cbuf, off, len); String str = new String(cbuf, off, len); maybeNotifyListeners(str); } + @Override public void flush() throws IOException { notifyListeners(); wrappedWriter.flush(); } + @Override public void close() throws IOException { wrappedWriter.close(); } + @Override public void write(int c) throws IOException { wrappedWriter.write(c); } + @Override public void write(char[] cbuf) throws IOException { wrappedWriter.write(cbuf); String str = new String(cbuf); maybeNotifyListeners(str); } + @Override public void write(String str) throws IOException { wrappedWriter.write(str); maybeNotifyListeners(str); } + @Override public void write(String str, int off, int len) throws IOException { wrappedWriter.write(str, off, len); str = str.substring(off, off + len); diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/stringencoder/Base32.java b/smack-core/src/main/java/org/jivesoftware/smack/util/stringencoder/Base32.java index 3a373671a..8e2f27f14 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/stringencoder/Base32.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/stringencoder/Base32.java @@ -20,6 +20,9 @@ package org.jivesoftware.smack.util.stringencoder; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; +import java.io.UnsupportedEncodingException; + +import org.jivesoftware.smack.util.StringUtils; /** * Base32 string encoding is useful for when filenames case-insensitive filesystems are encoded. @@ -53,7 +56,13 @@ public class Base32 { public static String decode(String str) { ByteArrayOutputStream bs = new ByteArrayOutputStream(); - byte[] raw = str.getBytes(); + byte[] raw; + try { + raw = str.getBytes(StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } for (int i = 0; i < raw.length; i++) { char c = (char) raw[i]; if (!Character.isWhitespace(c)) { @@ -106,11 +115,24 @@ public class Base32 { } } - return new String(bs.toByteArray()); + String res; + try { + res = new String(bs.toByteArray(), StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } + return res; } public static String encode(String str) { - byte[] b = str.getBytes(); + byte[] b; + try { + b = str.getBytes(StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } ByteArrayOutputStream os = new ByteArrayOutputStream(); for (int i = 0; i < (b.length + 4) / 5; i++) { @@ -153,7 +175,14 @@ public class Base32 { os.write(c); } } - return new String(os.toByteArray()); + String res; + try { + res = new String(os.toByteArray(), StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } + return res; } private static int lenToPadding(int blocklen) { diff --git a/smack-core/src/test/java/org/jivesoftware/smack/DummyConnection.java b/smack-core/src/test/java/org/jivesoftware/smack/DummyConnection.java index 1bd11e119..40f9b4e7a 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/DummyConnection.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/DummyConnection.java @@ -180,6 +180,7 @@ public class DummyConnection extends AbstractXMPPConnection { * * @param packet the stanza(/packet) to process. */ + @Override public void processStanza(Stanza packet) { invokeStanzaCollectorsAndNotifyRecvListeners(packet); } diff --git a/smack-core/src/test/java/org/jivesoftware/smack/StanzaCollectorTest.java b/smack-core/src/test/java/org/jivesoftware/smack/StanzaCollectorTest.java index 60560b504..4120f4529 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/StanzaCollectorTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/StanzaCollectorTest.java @@ -176,7 +176,7 @@ public class StanzaCollectorTest assertNull(collector.pollResult()); } - class OKEverything implements StanzaFilter + static class OKEverything implements StanzaFilter { @Override public boolean accept(Stanza packet) @@ -186,7 +186,7 @@ public class StanzaCollectorTest } - class TestStanzaCollector extends StanzaCollector + static class TestStanzaCollector extends StanzaCollector { protected TestStanzaCollector(XMPPConnection conection, StanzaFilter packetFilter, int size) { @@ -194,7 +194,7 @@ public class StanzaCollectorTest } } - class TestPacket extends Stanza + static class TestPacket extends Stanza { public TestPacket(int i) { diff --git a/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java b/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java index 5855aba7f..9e1862b11 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java @@ -19,6 +19,7 @@ package org.jivesoftware.smack.sasl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; @@ -38,14 +39,14 @@ public class DigestMd5SaslTest extends AbstractSaslTest { super(saslMechanism); } - protected void runTest(boolean useAuthzid) throws NotConnectedException, SmackException, InterruptedException, XmppStringprepException { + protected void runTest(boolean useAuthzid) throws NotConnectedException, SmackException, InterruptedException, XmppStringprepException, UnsupportedEncodingException { EntityBareJid authzid = null; if (useAuthzid) { authzid = JidCreate.entityBareFrom("shazbat@xmpp.org"); } saslMechanism.authenticate("florian", "irrelevant", JidCreate.domainBareFrom("xmpp.org"), "secret", authzid, null); byte[] response = saslMechanism.evaluateChallenge(challengeBytes); - String responseString = new String(response); + String responseString = new String(response, StringUtils.UTF8); String[] responseParts = responseString.split(","); Map responsePairs = new HashMap(); for (String part : responseParts) { diff --git a/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java b/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java index 117e9e3c1..b988a3e3a 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java @@ -851,6 +851,7 @@ public class PacketParserUtilsTest { XmlUnitUtils.assertSimilar(saslFailureString, saslFailure.toXML()); } + @SuppressWarnings("ReferenceEquality") private static String determineNonDefaultLanguage() { String otherLanguage = "jp"; Locale[] availableLocales = Locale.getAvailableLocales(); diff --git a/smack-core/src/test/java/org/jivesoftware/smack/util/StringUtilsTest.java b/smack-core/src/test/java/org/jivesoftware/smack/util/StringUtilsTest.java index f9bfae04f..0cff5a730 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/util/StringUtilsTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/util/StringUtilsTest.java @@ -21,6 +21,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import java.io.UnsupportedEncodingException; + import org.junit.Test; /** @@ -72,16 +74,16 @@ public class StringUtilsTest { } @Test - public void testEncodeHex() { + public void testEncodeHex() throws UnsupportedEncodingException { String input = ""; String output = ""; - assertEquals(new String(StringUtils.encodeHex(input.getBytes())), - new String(output.getBytes())); + assertEquals(new String(StringUtils.encodeHex(input.getBytes(StringUtils.UTF8))), + output); input = "foo bar 123"; output = "666f6f2062617220313233"; - assertEquals(new String(StringUtils.encodeHex(input.getBytes())), - new String(output.getBytes())); + assertEquals(new String(StringUtils.encodeHex(input.getBytes(StringUtils.UTF8))), + output); } @Test diff --git a/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JLoggingConnectionListener.java b/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JLoggingConnectionListener.java index ec25f3639..a0161f3e6 100644 --- a/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JLoggingConnectionListener.java +++ b/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JLoggingConnectionListener.java @@ -40,22 +40,27 @@ class SLF4JLoggingConnectionListener implements ConnectionListener { logger.debug("({}) Connection authenticated as {}", connection.hashCode(), connection.getUser()); } + @Override public void connectionClosed() { logger.debug("({}) Connection closed", connection.hashCode()); } + @Override public void connectionClosedOnError(Exception e) { logger.debug("({}) Connection closed due to an exception: {}", connection.hashCode(), e); } + @Override public void reconnectionFailed(Exception e) { logger.debug("({}) Reconnection failed due to an exception: {}", connection.hashCode(), e); } + @Override public void reconnectionSuccessful() { logger.debug("({}) Connection reconnected", connection.hashCode()); } + @Override public void reconnectingIn(int seconds) { logger.debug("({}) Connection will reconnect in {}", connection.hashCode(), seconds); } diff --git a/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JLoggingPacketListener.java b/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JLoggingPacketListener.java index 4021e3d66..2b651dfc5 100644 --- a/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JLoggingPacketListener.java +++ b/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JLoggingPacketListener.java @@ -31,6 +31,7 @@ class SLF4JLoggingPacketListener implements StanzaListener { this.prefix = Validate.notNull(prefix); } + @Override public void processStanza(Stanza packet) { if (SLF4JSmackDebugger.printInterpreted.get() && logger.isDebugEnabled()) { logger.debug("{}: PKT [{}] '{}'", prefix, packet.getClass().getName(), packet.toXML()); diff --git a/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JRawXmlListener.java b/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JRawXmlListener.java index c44bbcd2f..c013a18b6 100644 --- a/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JRawXmlListener.java +++ b/smack-debug-slf4j/src/main/java/org/jivesoftware/smackx/debugger/slf4j/SLF4JRawXmlListener.java @@ -28,10 +28,12 @@ class SLF4JRawXmlListener implements ReaderListener, WriterListener { this.logger = Validate.notNull(logger); } + @Override public void read(String str) { logger.debug("{}: {}", SLF4JSmackDebugger.RECEIVED_TAG, str); } + @Override public void write(String str) { logger.debug("{}: {}", SLF4JSmackDebugger.SENT_TAG, str); } diff --git a/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/EnhancedDebugger.java b/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/EnhancedDebugger.java index d4f744dd7..9802bd4c3 100644 --- a/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/EnhancedDebugger.java +++ b/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/EnhancedDebugger.java @@ -208,8 +208,10 @@ public class EnhancedDebugger implements SmackDebugger { packetReaderListener = new StanzaListener() { SimpleDateFormat dateFormatter = new SimpleDateFormat("HH:mm:ss:SS"); + @Override public void processStanza(final Stanza packet) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { addReadPacketToTable(dateFormatter, packet); } @@ -223,8 +225,10 @@ public class EnhancedDebugger implements SmackDebugger { packetWriterListener = new StanzaListener() { SimpleDateFormat dateFormatter = new SimpleDateFormat("HH:mm:ss:SS"); + @Override public void processStanza(final Stanza packet) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { addSentPacketToTable(dateFormatter, packet); } @@ -235,8 +239,10 @@ public class EnhancedDebugger implements SmackDebugger { // Create a thread that will listen for any connection closed event connListener = new AbstractConnectionListener() { + @Override public void connectionClosed() { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { statusField.setValue("Closed"); EnhancedDebuggerWindow.connectionClosed(EnhancedDebugger.this); @@ -245,8 +251,10 @@ public class EnhancedDebugger implements SmackDebugger { } + @Override public void connectionClosedOnError(final Exception e) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { statusField.setValue("Closed due to an exception"); EnhancedDebuggerWindow.connectionClosedOnError(EnhancedDebugger.this, e); @@ -254,16 +262,20 @@ public class EnhancedDebugger implements SmackDebugger { }); } + @Override public void reconnectingIn(final int seconds){ SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { statusField.setValue("Attempt to reconnect in " + seconds + " seconds"); } }); } + @Override public void reconnectionSuccessful() { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { statusField.setValue("Reconnection stablished"); EnhancedDebuggerWindow.connectionEstablished(EnhancedDebugger.this); @@ -271,8 +283,10 @@ public class EnhancedDebugger implements SmackDebugger { }); } + @Override public void reconnectionFailed(Exception e) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { statusField.setValue("Reconnection failed"); } @@ -291,11 +305,13 @@ public class EnhancedDebugger implements SmackDebugger { 0) { // CHECKSTYLE:OFF private static final long serialVersionUID = 8136121224474217264L; - public boolean isCellEditable(int rowIndex, int mColIndex) { + @Override + public boolean isCellEditable(int rowIndex, int mColIndex) { // CHECKSTYLE:ON return false; } + @Override public Class getColumnClass(int columnIndex) { if (columnIndex == 2 || columnIndex == 3) { return Icon.class; @@ -344,6 +360,7 @@ public class EnhancedDebugger implements SmackDebugger { JPopupMenu menu = new JPopupMenu(); JMenuItem menuItem1 = new JMenuItem("Copy"); menuItem1.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { // Get the clipboard Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); @@ -391,6 +408,7 @@ public class EnhancedDebugger implements SmackDebugger { menu = new JPopupMenu(); menuItem1 = new JMenuItem("Copy"); menuItem1.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { // Get the clipboard Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); @@ -401,6 +419,7 @@ public class EnhancedDebugger implements SmackDebugger { JMenuItem menuItem2 = new JMenuItem("Clear"); menuItem2.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { sentText.setText(""); } @@ -426,6 +445,7 @@ public class EnhancedDebugger implements SmackDebugger { menu = new JPopupMenu(); menuItem1 = new JMenuItem("Copy"); menuItem1.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { // Get the clipboard Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); @@ -436,6 +456,7 @@ public class EnhancedDebugger implements SmackDebugger { menuItem2 = new JMenuItem("Clear"); menuItem2.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { receivedText.setText(""); } @@ -449,8 +470,10 @@ public class EnhancedDebugger implements SmackDebugger { // Create a special Reader that wraps the main Reader and logs data to the GUI. ObservableReader debugReader = new ObservableReader(reader); readerListener = new ReaderListener() { + @Override public void read(final String str) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { if (EnhancedDebuggerWindow.PERSISTED_DEBUGGER && !EnhancedDebuggerWindow.getInstance().isVisible()) { @@ -487,8 +510,10 @@ public class EnhancedDebugger implements SmackDebugger { // Create a special Writer that wraps the main Writer and logs data to the GUI. ObservableWriter debugWriter = new ObservableWriter(writer); writerListener = new WriterListener() { + @Override public void write(final String str) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { if (EnhancedDebuggerWindow.PERSISTED_DEBUGGER && !EnhancedDebuggerWindow.getInstance().isVisible()) { @@ -536,6 +561,7 @@ public class EnhancedDebugger implements SmackDebugger { JPopupMenu menu = new JPopupMenu(); JMenuItem menuItem = new JMenuItem("Message"); menuItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { adhocMessages.setText( ""); @@ -579,6 +608,7 @@ public class EnhancedDebugger implements SmackDebugger { menuItem = new JMenuItem("Send"); menuItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { if (!"".equals(adhocMessages.getText())) { AdHocPacket packetToSend = new AdHocPacket(adhocMessages.getText()); @@ -595,6 +625,7 @@ public class EnhancedDebugger implements SmackDebugger { menuItem = new JMenuItem("Clear"); menuItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { adhocMessages.setText(null); } @@ -709,7 +740,8 @@ public class EnhancedDebugger implements SmackDebugger { new Object[]{"Type", "Received", "Sent"}) { // CHECKSTYLE:OFF private static final long serialVersionUID = -6793886085109589269L; - public boolean isCellEditable(int rowIndex, int mColIndex) { + @Override + public boolean isCellEditable(int rowIndex, int mColIndex) { // CHECKSTYLE:ON return false; } @@ -726,6 +758,7 @@ public class EnhancedDebugger implements SmackDebugger { tabbedPane.setToolTipTextAt(4, "Information and statistics about the debugged connection"); } + @Override public Reader newConnectionReader(Reader newReader) { ((ObservableReader) reader).removeReaderListener(readerListener); ObservableReader debugReader = new ObservableReader(newReader); @@ -734,6 +767,7 @@ public class EnhancedDebugger implements SmackDebugger { return reader; } + @Override public Writer newConnectionWriter(Writer newWriter) { ((ObservableWriter) writer).removeWriterListener(writerListener); ObservableWriter debugWriter = new ObservableWriter(newWriter); @@ -746,6 +780,7 @@ public class EnhancedDebugger implements SmackDebugger { public void userHasLogged(final EntityFullJid user) { final EnhancedDebugger debugger = this; SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { userField.setText(user.toString()); EnhancedDebuggerWindow.userHasLogged(debugger, user.toString()); @@ -757,18 +792,22 @@ public class EnhancedDebugger implements SmackDebugger { } + @Override public Reader getReader() { return reader; } + @Override public Writer getWriter() { return writer; } + @Override public StanzaListener getReaderListener() { return packetReaderListener; } + @Override public StanzaListener getWriterListener() { return packetWriterListener; } @@ -801,6 +840,7 @@ public class EnhancedDebugger implements SmackDebugger { */ private void addReadPacketToTable(final SimpleDateFormat dateFormatter, final Stanza packet) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { String messageType; Jid from = packet.getFrom(); @@ -862,6 +902,7 @@ public class EnhancedDebugger implements SmackDebugger { */ private void addSentPacketToTable(final SimpleDateFormat dateFormatter, final Stanza packet) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { String messageType; Jid to = packet.getTo(); @@ -978,9 +1019,9 @@ public class EnhancedDebugger implements SmackDebugger { * The whole text to send must be passed to the constructor. This implies that the client of * this class is responsible for sending a valid text to the constructor. */ - private class AdHocPacket extends Stanza { + private static class AdHocPacket extends Stanza { - private String text; + private final String text; /** * Create a new AdHocPacket with the text to send. The passed text must be a valid text to @@ -992,6 +1033,7 @@ public class EnhancedDebugger implements SmackDebugger { this.text = text; } + @Override public String toXML() { return text; } @@ -1006,7 +1048,7 @@ public class EnhancedDebugger implements SmackDebugger { /** * Listens for debug window popup dialog events. */ - private class PopupListener extends MouseAdapter { + private static class PopupListener extends MouseAdapter { JPopupMenu popup; @@ -1014,10 +1056,12 @@ public class EnhancedDebugger implements SmackDebugger { popup = popupMenu; } + @Override public void mousePressed(MouseEvent e) { maybeShowPopup(e); } + @Override public void mouseReleased(MouseEvent e) { maybeShowPopup(e); } @@ -1039,6 +1083,7 @@ public class EnhancedDebugger implements SmackDebugger { this.table = table; } + @Override public void valueChanged(ListSelectionEvent e) { if (table.getSelectedRow() == -1) { // Clear the messageTextArea since there is none packet selected diff --git a/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/EnhancedDebuggerWindow.java b/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/EnhancedDebuggerWindow.java index 893a6607b..f246d1f51 100644 --- a/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/EnhancedDebuggerWindow.java +++ b/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/EnhancedDebuggerWindow.java @@ -210,6 +210,7 @@ public final class EnhancedDebuggerWindow { if (!PERSISTED_DEBUGGER) { // Add listener for window closing event frame.addWindowListener(new WindowAdapter() { + @Override public void windowClosing(WindowEvent evt) { rootWindowClosing(evt); } @@ -280,6 +281,7 @@ public final class EnhancedDebuggerWindow { // Add a menu item that allows to close the current selected tab JMenuItem menuItem = new JMenuItem("Close"); menuItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { // Remove the selected tab pane if it's not the Smack info pane if (tabbedPane.getSelectedIndex() < tabbedPane.getComponentCount() - 1) { @@ -301,6 +303,7 @@ public final class EnhancedDebuggerWindow { // Add a menu item that allows to close all the tabs that have their connections closed menuItem = new JMenuItem("Close All Not Active"); menuItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { ArrayList debuggersToRemove = new ArrayList(); // Remove all the debuggers of which their connections are no longer valid @@ -348,7 +351,7 @@ public final class EnhancedDebuggerWindow { debugger.cancel(); } // Release any reference to the debuggers - debuggers.removeAll(debuggers); + debuggers.clear(); // Release the default instance instance = null; } @@ -356,7 +359,7 @@ public final class EnhancedDebuggerWindow { /** * Listens for debug window popup dialog events. */ - private class PopupListener extends MouseAdapter { + private static class PopupListener extends MouseAdapter { JPopupMenu popup; @@ -364,10 +367,12 @@ public final class EnhancedDebuggerWindow { popup = popupMenu; } + @Override public void mousePressed(MouseEvent e) { maybeShowPopup(e); } + @Override public void mouseReleased(MouseEvent e) { maybeShowPopup(e); } diff --git a/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/LiteDebugger.java b/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/LiteDebugger.java index e8571b2e1..ea0fed8b9 100644 --- a/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/LiteDebugger.java +++ b/smack-debug/src/main/java/org/jivesoftware/smackx/debugger/LiteDebugger.java @@ -86,6 +86,7 @@ public class LiteDebugger implements SmackDebugger { // Add listener for window closing event frame.addWindowListener(new WindowAdapter() { + @Override public void windowClosing(WindowEvent evt) { rootWindowClosing(evt); } @@ -114,6 +115,7 @@ public class LiteDebugger implements SmackDebugger { JPopupMenu menu = new JPopupMenu(); JMenuItem menuItem1 = new JMenuItem("Copy"); menuItem1.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { // Get the clipboard Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); @@ -124,6 +126,7 @@ public class LiteDebugger implements SmackDebugger { JMenuItem menuItem2 = new JMenuItem("Clear"); menuItem2.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { sentText1.setText(""); sentText2.setText(""); @@ -151,6 +154,7 @@ public class LiteDebugger implements SmackDebugger { menu = new JPopupMenu(); menuItem1 = new JMenuItem("Copy"); menuItem1.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { // Get the clipboard Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); @@ -161,6 +165,7 @@ public class LiteDebugger implements SmackDebugger { menuItem2 = new JMenuItem("Clear"); menuItem2.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { receivedText1.setText(""); receivedText2.setText(""); @@ -188,6 +193,7 @@ public class LiteDebugger implements SmackDebugger { menu = new JPopupMenu(); menuItem1 = new JMenuItem("Copy"); menuItem1.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { // Get the clipboard Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); @@ -198,6 +204,7 @@ public class LiteDebugger implements SmackDebugger { menuItem2 = new JMenuItem("Clear"); menuItem2.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { interpretedText1.setText(""); interpretedText2.setText(""); @@ -219,6 +226,7 @@ public class LiteDebugger implements SmackDebugger { // Create a special Reader that wraps the main Reader and logs data to the GUI. ObservableReader debugReader = new ObservableReader(reader); readerListener = new ReaderListener() { + @Override public void read(String str) { int index = str.lastIndexOf(">"); if (index != -1) { @@ -242,6 +250,7 @@ public class LiteDebugger implements SmackDebugger { // Create a special Writer that wraps the main Writer and logs data to the GUI. ObservableWriter debugWriter = new ObservableWriter(writer); writerListener = new WriterListener() { + @Override public void write(String str) { sentText1.append(str); sentText2.append(str); @@ -262,6 +271,7 @@ public class LiteDebugger implements SmackDebugger { // the GUI. This is what we call "interpreted" packet data, since it's the packet // data as Smack sees it and not as it's coming in as raw XML. listener = new StanzaListener() { + @Override public void processStanza(Stanza packet) { interpretedText1.append(packet.toXML().toString()); interpretedText2.append(packet.toXML().toString()); @@ -286,17 +296,19 @@ public class LiteDebugger implements SmackDebugger { /** * Listens for debug window popup dialog events. */ - private class PopupListener extends MouseAdapter { + private static class PopupListener extends MouseAdapter { JPopupMenu popup; PopupListener(JPopupMenu popupMenu) { popup = popupMenu; } + @Override public void mousePressed(MouseEvent e) { maybeShowPopup(e); } + @Override public void mouseReleased(MouseEvent e) { maybeShowPopup(e); } @@ -308,6 +320,7 @@ public class LiteDebugger implements SmackDebugger { } } + @Override public Reader newConnectionReader(Reader newReader) { ((ObservableReader)reader).removeReaderListener(readerListener); ObservableReader debugReader = new ObservableReader(newReader); @@ -316,6 +329,7 @@ public class LiteDebugger implements SmackDebugger { return reader; } + @Override public Writer newConnectionWriter(Writer newWriter) { ((ObservableWriter)writer).removeWriterListener(writerListener); ObservableWriter debugWriter = new ObservableWriter(newWriter); @@ -332,18 +346,22 @@ public class LiteDebugger implements SmackDebugger { frame.setTitle(title); } + @Override public Reader getReader() { return reader; } + @Override public Writer getWriter() { return writer; } + @Override public StanzaListener getReaderListener() { return listener; } + @Override public StanzaListener getWriterListener() { return null; } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/CarbonManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/CarbonManager.java index b641a0ff2..d023b0ce6 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/CarbonManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/CarbonManager.java @@ -72,6 +72,7 @@ public final class CarbonManager extends Manager { static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { getInstanceFor(connection); } @@ -271,6 +272,7 @@ public final class CarbonManager extends Manager { try { connection().sendIqWithResponseCallback(setIQ, new StanzaListener() { + @Override public void processStanza(Stanza packet) { enabled_state = use; } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/packet/AbstractHttpOverXmpp.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/packet/AbstractHttpOverXmpp.java index a7ac49d8c..c4eccfdf9 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/packet/AbstractHttpOverXmpp.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/packet/AbstractHttpOverXmpp.java @@ -44,6 +44,7 @@ public abstract class AbstractHttpOverXmpp extends IQ { this.version = Objects.requireNonNull(builder.version, "version must not be null"); } + @Override protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) { IQChildElementXmlStringBuilder builder = getIQHoxtChildElementBuilder(xml); builder.optAppend(headers); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/element/IoTSetRequest.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/element/IoTSetRequest.java index b77787f98..052cb07c1 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/element/IoTSetRequest.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/element/IoTSetRequest.java @@ -1,6 +1,6 @@ /** * - * Copyright ยฉ 2016 Florian Schmaus + * Copyright ยฉ 2016-2017 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ */ package org.jivesoftware.smackx.iot.control.element; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -31,7 +32,21 @@ public class IoTSetRequest extends IQ { public IoTSetRequest(Collection setData) { super(ELEMENT, NAMESPACE); setType(Type.set); - this.setData = Collections.unmodifiableCollection(setData); + + /* + * Ugly workaround for the following error prone false positive: + * + * IoTSetRequest.java:34: error: incompatible types: Collection cannot be converted to Collection + * this.setData = Collections.unmodifiableCollection(setDataA); + * ^ + * where CAP#1 is a fresh type-variable: + * CAP#1 extends SetData from capture of ? extends SetData + */ + Collection tmp = new ArrayList<>(setData.size()); + for (SetData data : setData) { + tmp.add(data); + } + this.setData = Collections.unmodifiableCollection(tmp); } public Collection getSetData() { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/element/SetData.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/element/SetData.java index 1e7505a83..4d9e29286 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/element/SetData.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/element/SetData.java @@ -30,7 +30,7 @@ public abstract class SetData implements NamedElement { DOUBLE, ; - private String toStringCache; + private final String toStringCache; private Type() { toStringCache = this.name().toLowerCase(Locale.US); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/IoTDataManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/IoTDataManager.java index 6e4b6f63d..78268a159 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/IoTDataManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/IoTDataManager.java @@ -61,6 +61,7 @@ public final class IoTDataManager extends IoTManager { // Ensure a IoTDataManager exists for every connection. static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { if (!isAutoEnableActive()) return; getInstanceFor(connection); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/IoTDiscoveryManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/IoTDiscoveryManager.java index 2fa512911..e81a41818 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/IoTDiscoveryManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/IoTDiscoveryManager.java @@ -74,6 +74,7 @@ public final class IoTDiscoveryManager extends Manager { // Ensure a IoTProvisioningManager exists for every connection. static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { if (!IoTManager.isAutoEnableActive()) return; getInstanceFor(connection); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/element/NodeInfo.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/element/NodeInfo.java index 08ce2db11..85412a126 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/element/NodeInfo.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/element/NodeInfo.java @@ -62,6 +62,7 @@ public final class NodeInfo { } @Override + @SuppressWarnings("ReferenceEquality") public int hashCode() { if (this == EMPTY) { return 0; diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/IoTProvisioningManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/IoTProvisioningManager.java index 3fc6c6741..42a53e6c0 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/IoTProvisioningManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/IoTProvisioningManager.java @@ -82,6 +82,7 @@ public final class IoTProvisioningManager extends Manager { // Ensure a IoTProvisioningManager exists for every connection. static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { if (!IoTManager.isAutoEnableActive()) return; getInstanceFor(connection); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smack/chat2/ChatManager.java b/smack-extensions/src/main/java/org/jivesoftware/smack/chat2/ChatManager.java index 32b473a17..9e8ab2410 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smack/chat2/ChatManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smack/chat2/ChatManager.java @@ -53,6 +53,7 @@ import org.jxmpp.jid.Jid; * * @see XEP-0296: Best Practices for Resource Locking */ +@SuppressWarnings("FunctionalInterfaceClash") public final class ChatManager extends Manager { private static final Map INSTANCES = new WeakHashMap<>(); @@ -188,22 +189,84 @@ public final class ChatManager extends Manager { return true; } - public boolean addListener(IncomingChatMessageListener listener) { + /** + * Add a new listener for incoming chat messages. + * + * @param listener the listener to add. + * @return true if the listener was not already added. + */ + public boolean addIncomingListener(IncomingChatMessageListener listener) { return incomingListeners.add(listener); } + /** + * Add a new listener for incoming chat messages. + * + * @param listener the listener to add. + * @return true if the listener was not already added. + */ + @Deprecated + @SuppressWarnings("FunctionalInterfaceClash") + public boolean addListener(IncomingChatMessageListener listener) { + return addIncomingListener(listener); + } + + /** + * Remove an incoming chat message listener. + * + * @param listener the listener to remove. + * @return true if the listener was active and got removed. + */ + @SuppressWarnings("FunctionalInterfaceClash") public boolean removeListener(IncomingChatMessageListener listener) { return incomingListeners.remove(listener); } - public boolean addListener(OutgoingChatMessageListener listener) { + /** + * Add a new listener for outgoing chat messages. + * + * @param listener the listener to add. + * @return true if the listener was not already added. + */ + public boolean addOutgoingListener(OutgoingChatMessageListener listener) { return outgoingListeners.add(listener); } - public boolean removeOutoingLIstener(OutgoingChatMessageListener listener) { + /** + * Add a new listener for incoming chat messages. + * + * @param listener the listener to add. + * @return true if the listener was not already added. + * @deprecated use {@link #addOutgoingListener(OutgoingChatMessageListener)} instead. + */ + @Deprecated + @SuppressWarnings("FunctionalInterfaceClash") + public boolean addListener(OutgoingChatMessageListener listener) { + return addOutgoingListener(listener); + } + + /** + * Remove an outgoing chat message listener. + * + * @param listener the listener to remove. + * @return true if the listener was active and got removed. + */ + public boolean removeListener(OutgoingChatMessageListener listener) { return outgoingListeners.remove(listener); } + /** + * Remove an outgoing chat message listener. + * + * @param listener the listener to remove. + * @return true if the listener was active and got removed. + * @deprecated use {@link #removeListener(OutgoingChatMessageListener)} instead. + */ + @Deprecated + public boolean removeOutoingLIstener(OutgoingChatMessageListener listener) { + return removeListener(listener); + } + /** * Start a new or retrieve the existing chat with jid. * diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/AMPManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/AMPManager.java index 20d8c887d..8800268c8 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/AMPManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/AMPManager.java @@ -40,6 +40,7 @@ public class AMPManager { // The ServiceDiscoveryManager class should have been already initialized static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { AMPManager.setServiceEnabled(connection, true); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java index 8fe39bdc7..18869392a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java @@ -47,6 +47,7 @@ public class AttentionExtension implements ExtensionElement { * * @see org.jivesoftware.smack.packet.PacketExtension#getElementName() */ + @Override public String getElementName() { return ELEMENT_NAME; } @@ -56,6 +57,7 @@ public class AttentionExtension implements ExtensionElement { * * @see org.jivesoftware.smack.packet.PacketExtension#getNamespace() */ + @Override public String getNamespace() { return NAMESPACE; } @@ -65,6 +67,7 @@ public class AttentionExtension implements ExtensionElement { * * @see org.jivesoftware.smack.packet.PacketExtension#toXML() */ + @Override public String toXML() { final StringBuilder sb = new StringBuilder(); sb.append('<').append(getElementName()).append(" xmlns=\"").append( diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/BookmarkedConference.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/BookmarkedConference.java index f08e3c0a2..fa1a4f1d8 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/BookmarkedConference.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/BookmarkedConference.java @@ -131,6 +131,7 @@ public class BookmarkedConference implements SharedBookmark { this.isShared = isShared; } + @Override public boolean isShared() { return isShared; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/BookmarkedURL.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/BookmarkedURL.java index 0a521bcdf..55f30bfa0 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/BookmarkedURL.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/BookmarkedURL.java @@ -102,6 +102,7 @@ public class BookmarkedURL implements SharedBookmark { this.isShared = shared; } + @Override public boolean isShared() { return isShared; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java index b176e3576..d196f23c4 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java @@ -151,6 +151,7 @@ public class Bookmarks implements PrivateData { * * @return the element name. */ + @Override public String getElementName() { return ELEMENT; } @@ -160,6 +161,7 @@ public class Bookmarks implements PrivateData { * * @return the namespace. */ + @Override public String getNamespace() { return NAMESPACE; } @@ -218,6 +220,7 @@ public class Bookmarks implements PrivateData { super(); } + @Override public PrivateData parsePrivateData(XmlPullParser parser) throws XmlPullParserException, IOException { Bookmarks storage = new Bookmarks(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamListener.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamListener.java index d5a49cc98..cc69e7e74 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamListener.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamListener.java @@ -34,6 +34,7 @@ public abstract class InBandBytestreamListener implements BytestreamListener { + @Override public void incomingBytestreamRequest(BytestreamRequest request) { incomingBytestreamRequest((InBandBytestreamRequest) request); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManager.java index e823c2cc7..e8f28404b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManager.java @@ -103,6 +103,7 @@ public final class InBandBytestreamManager implements BytestreamManager { */ static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(final XMPPConnection connection) { // create the manager for this connection InBandBytestreamManager.getByteStreamManager(connection); @@ -236,6 +237,7 @@ public final class InBandBytestreamManager implements BytestreamManager { * * @param listener the listener to register */ + @Override public void addIncomingBytestreamListener(BytestreamListener listener) { this.allRequestListeners.add(listener); } @@ -246,6 +248,7 @@ public final class InBandBytestreamManager implements BytestreamManager { * * @param listener the listener to remove */ + @Override public void removeIncomingBytestreamListener(BytestreamListener listener) { this.allRequestListeners.remove(listener); } @@ -268,6 +271,7 @@ public final class InBandBytestreamManager implements BytestreamManager { * @param listener the listener to register * @param initiatorJID the JID of the user that wants to establish an In-Band Bytestream */ + @Override public void addIncomingBytestreamListener(BytestreamListener listener, Jid initiatorJID) { this.userListeners.put(initiatorJID, listener); } @@ -277,6 +281,9 @@ public final class InBandBytestreamManager implements BytestreamManager { * * @param initiatorJID the JID of the user the listener should be removed */ + @Override + // TODO: Change argument to Jid in Smack 4.3. + @SuppressWarnings("CollectionIncompatibleType") public void removeIncomingBytestreamListener(String initiatorJID) { this.userListeners.remove(initiatorJID); } @@ -402,6 +409,7 @@ public final class InBandBytestreamManager implements BytestreamManager { * @throws SmackException if there was no response from the server. * @throws InterruptedException */ + @Override public InBandBytestreamSession establishSession(Jid targetJID) throws XMPPException, SmackException, InterruptedException { String sessionID = getNextSessionID(); return establishSession(targetJID, sessionID); @@ -420,6 +428,7 @@ public final class InBandBytestreamManager implements BytestreamManager { * @throws NotConnectedException * @throws InterruptedException */ + @Override public InBandBytestreamSession establishSession(Jid targetJID, String sessionID) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException { Open byteStreamRequest = new Open(sessionID, this.defaultBlockSize, this.stanza); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamRequest.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamRequest.java index 8040416d7..e9b846326 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamRequest.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamRequest.java @@ -50,6 +50,7 @@ public class InBandBytestreamRequest implements BytestreamRequest { * * @return the sender of the In-Band Bytestream open request */ + @Override public Jid getFrom() { return this.byteStreamRequest.getFrom(); } @@ -59,6 +60,7 @@ public class InBandBytestreamRequest implements BytestreamRequest { * * @return the session ID of the In-Band Bytestream open request */ + @Override public String getSessionID() { return this.byteStreamRequest.getSessionID(); } @@ -71,6 +73,7 @@ public class InBandBytestreamRequest implements BytestreamRequest { * @throws NotConnectedException * @throws InterruptedException */ + @Override public InBandBytestreamSession accept() throws NotConnectedException, InterruptedException { XMPPConnection connection = this.manager.getConnection(); @@ -92,6 +95,7 @@ public class InBandBytestreamRequest implements BytestreamRequest { * @throws NotConnectedException * @throws InterruptedException */ + @Override public void reject() throws NotConnectedException, InterruptedException { this.manager.replyRejectPacket(this.byteStreamRequest); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSession.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSession.java index 40f185af1..b87443887 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSession.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSession.java @@ -109,18 +109,22 @@ public class InBandBytestreamSession implements BytestreamSession { } + @Override public InputStream getInputStream() { return this.inputStream; } + @Override public OutputStream getOutputStream() { return this.outputStream; } + @Override public int getReadTimeout() { return this.inputStream.readTimeout; } + @Override public void setReadTimeout(int timeout) { if (timeout < 0) { throw new IllegalArgumentException("Timeout must be >= 0"); @@ -151,6 +155,7 @@ public class InBandBytestreamSession implements BytestreamSession { this.closeBothStreamsEnabled = closeBothStreamsEnabled; } + @Override public void close() throws IOException { closeByLocal(true); // close input stream closeByLocal(false); // close output stream @@ -224,7 +229,9 @@ public class InBandBytestreamSession implements BytestreamSession { this.inputStream.cleanup(); // remove session from manager - InBandBytestreamManager.getByteStreamManager(this.connection).getSessions().remove(this); + // Thanks Google Error Prone for finding the bug where remove() was called with 'this' as argument. Changed + // now to remove(byteStreamRequest.getSessionID). + InBandBytestreamManager.getByteStreamManager(this.connection).getSessions().remove(byteStreamRequest.getSessionID()); } } @@ -283,6 +290,7 @@ public class InBandBytestreamSession implements BytestreamSession { */ protected abstract StanzaFilter getDataPacketFilter(); + @Override public synchronized int read() throws IOException { checkClosed(); @@ -298,6 +306,7 @@ public class InBandBytestreamSession implements BytestreamSession { return buffer[bufferPointer++] & 0xff; } + @Override public synchronized int read(byte[] b, int off, int len) throws IOException { if (b == null) { throw new NullPointerException(); @@ -331,6 +340,7 @@ public class InBandBytestreamSession implements BytestreamSession { return len; } + @Override public synchronized int read(byte[] b) throws IOException { return read(b, 0, b.length); } @@ -405,10 +415,12 @@ public class InBandBytestreamSession implements BytestreamSession { } } + @Override public boolean markSupported() { return false; } + @Override public void close() throws IOException { if (closeInvoked) { return; @@ -444,11 +456,13 @@ public class InBandBytestreamSession implements BytestreamSession { */ private class IQIBBInputStream extends IBBInputStream { + @Override protected StanzaListener getDataPacketListener() { return new StanzaListener() { private long lastSequence = -1; + @Override public void processStanza(Stanza packet) throws NotConnectedException, InterruptedException { // get data packet extension DataPacketExtension data = ((Data) packet).getDataPacketExtension(); @@ -491,6 +505,7 @@ public class InBandBytestreamSession implements BytestreamSession { }; } + @Override protected StanzaFilter getDataPacketFilter() { /* * filter all IQ stanzas having type 'SET' (represented by Data class), containing a @@ -507,9 +522,11 @@ public class InBandBytestreamSession implements BytestreamSession { */ private class MessageIBBInputStream extends IBBInputStream { + @Override protected StanzaListener getDataPacketListener() { return new StanzaListener() { + @Override public void processStanza(Stanza packet) { // get data packet extension DataPacketExtension data = (DataPacketExtension) packet.getExtension( @@ -555,6 +572,7 @@ public class InBandBytestreamSession implements BytestreamSession { */ private class IBBDataPacketFilter implements StanzaFilter { + @Override public boolean accept(Stanza packet) { // sender equals remote peer if (!packet.getFrom().equals(remoteJID)) { @@ -619,6 +637,7 @@ public class InBandBytestreamSession implements BytestreamSession { */ protected abstract void writeToXML(DataPacketExtension data) throws IOException, NotConnectedException, InterruptedException; + @Override public synchronized void write(int b) throws IOException { if (this.isClosed) { throw new IOException("Stream is closed"); @@ -632,6 +651,7 @@ public class InBandBytestreamSession implements BytestreamSession { buffer[bufferPointer++] = (byte) b; } + @Override public synchronized void write(byte[] b, int off, int len) throws IOException { if (b == null) { throw new NullPointerException(); @@ -662,6 +682,7 @@ public class InBandBytestreamSession implements BytestreamSession { } } + @Override public synchronized void write(byte[] b) throws IOException { write(b, 0, b.length); } @@ -698,6 +719,7 @@ public class InBandBytestreamSession implements BytestreamSession { bufferPointer += len - available; } + @Override public synchronized void flush() throws IOException { if (this.isClosed) { throw new IOException("Stream is closed"); @@ -735,6 +757,7 @@ public class InBandBytestreamSession implements BytestreamSession { } + @Override public void close() throws IOException { if (isClosed) { return; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListener.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListener.java index 7188a355a..1a4f3686d 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListener.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListener.java @@ -66,6 +66,7 @@ class InitiationListener extends AbstractIqRequestHandler { public IQ handleIQRequest(final IQ packet) { initiationListenerExecutor.execute(new Runnable() { + @Override public void run() { try { processRequest(packet); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtension.java index 1e82f8dc8..e076acc95 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtension.java @@ -126,10 +126,12 @@ public class DataPacketExtension implements ExtensionElement { return this.decodedData; } + @Override public String getElementName() { return ELEMENT; } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/InitiationListener.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/InitiationListener.java index 6ed097d05..60309be81 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/InitiationListener.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/InitiationListener.java @@ -62,6 +62,7 @@ final class InitiationListener extends AbstractIqRequestHandler { public IQ handleIQRequest(final IQ packet) { initiationListenerExecutor.execute(new Runnable() { + @Override public void run() { try { processRequest(packet); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamListener.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamListener.java index bbb576041..6c8f9d916 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamListener.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamListener.java @@ -32,6 +32,7 @@ import org.jivesoftware.smackx.bytestreams.BytestreamRequest; */ public abstract class Socks5BytestreamListener implements BytestreamListener { + @Override public void incomingBytestreamRequest(BytestreamRequest request) { incomingBytestreamRequest((Socks5BytestreamRequest) request); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java index 268f63779..04f4d6ac4 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java @@ -98,6 +98,7 @@ public final class Socks5BytestreamManager extends Manager implements Bytestream static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(final XMPPConnection connection) { // create the manager for this connection Socks5BytestreamManager.getBytestreamManager(connection); @@ -198,6 +199,7 @@ public final class Socks5BytestreamManager extends Manager implements Bytestream * * @param listener the listener to register */ + @Override public void addIncomingBytestreamListener(BytestreamListener listener) { this.allRequestListeners.add(listener); } @@ -208,6 +210,7 @@ public final class Socks5BytestreamManager extends Manager implements Bytestream * * @param listener the listener to remove */ + @Override public void removeIncomingBytestreamListener(BytestreamListener listener) { this.allRequestListeners.remove(listener); } @@ -230,6 +233,7 @@ public final class Socks5BytestreamManager extends Manager implements Bytestream * @param listener the listener to register * @param initiatorJID the JID of the user that wants to establish a SOCKS5 Bytestream */ + @Override public void addIncomingBytestreamListener(BytestreamListener listener, Jid initiatorJID) { this.userListeners.put(initiatorJID, listener); } @@ -239,6 +243,9 @@ public final class Socks5BytestreamManager extends Manager implements Bytestream * * @param initiatorJID the JID of the user the listener should be removed */ + // TODO: Change parameter to Jid in Smack 4.3. + @Override + @SuppressWarnings("CollectionIncompatibleType") public void removeIncomingBytestreamListener(String initiatorJID) { this.userListeners.remove(initiatorJID); } @@ -386,6 +393,7 @@ public final class Socks5BytestreamManager extends Manager implements Bytestream * @throws InterruptedException if the current thread was interrupted while waiting * @throws SmackException if there was no response from the server. */ + @Override public Socks5BytestreamSession establishSession(Jid targetJID) throws XMPPException, IOException, InterruptedException, SmackException { String sessionID = getNextSessionID(); @@ -405,6 +413,7 @@ public final class Socks5BytestreamManager extends Manager implements Bytestream * @throws SmackException if the target does not support SOCKS5. * @throws XMPPException */ + @Override public Socks5BytestreamSession establishSession(Jid targetJID, String sessionID) throws IOException, InterruptedException, NoResponseException, SmackException, XMPPException{ XMPPConnection connection = connection(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamRequest.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamRequest.java index e636cd3eb..84fb63a4a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamRequest.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamRequest.java @@ -170,6 +170,7 @@ public class Socks5BytestreamRequest implements BytestreamRequest { * * @return the sender of the SOCKS5 Bytestream initialization request. */ + @Override public Jid getFrom() { return this.bytestreamRequest.getFrom(); } @@ -179,6 +180,7 @@ public class Socks5BytestreamRequest implements BytestreamRequest { * * @return the session ID of the SOCKS5 Bytestream initialization request. */ + @Override public String getSessionID() { return this.bytestreamRequest.getSessionID(); } @@ -195,6 +197,7 @@ public class Socks5BytestreamRequest implements BytestreamRequest { * @throws XMPPErrorException * @throws SmackException */ + @Override public Socks5BytestreamSession accept() throws InterruptedException, XMPPErrorException, SmackException { Collection streamHosts = this.bytestreamRequest.getStreamHosts(); @@ -264,6 +267,7 @@ public class Socks5BytestreamRequest implements BytestreamRequest { * @throws NotConnectedException * @throws InterruptedException */ + @Override public void reject() throws NotConnectedException, InterruptedException { this.manager.replyRejectPacket(this.bytestreamRequest); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamSession.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamSession.java index adb423c65..06cf408ad 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamSession.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamSession.java @@ -64,14 +64,17 @@ public class Socks5BytestreamSession implements BytestreamSession { return !this.isDirect; } + @Override public InputStream getInputStream() throws IOException { return this.socket.getInputStream(); } + @Override public OutputStream getOutputStream() throws IOException { return this.socket.getOutputStream(); } + @Override public int getReadTimeout() throws IOException { try { return this.socket.getSoTimeout(); @@ -81,6 +84,7 @@ public class Socks5BytestreamSession implements BytestreamSession { } } + @Override public void setReadTimeout(int timeout) throws IOException { try { this.socket.setSoTimeout(timeout); @@ -90,6 +94,7 @@ public class Socks5BytestreamSession implements BytestreamSession { } } + @Override public void close() throws IOException { this.socket.close(); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java index 2de338a5c..91e2dbe31 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.bytestreams.socks5; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; @@ -34,6 +35,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.XMPPException.XMPPErrorException; +import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream.StreamHost; /** @@ -82,6 +84,7 @@ class Socks5Client { // wrap connecting in future for timeout FutureTask futureTask = new FutureTask(new Callable() { + @Override public Socket call() throws IOException, SmackException { // initialize socket @@ -199,7 +202,13 @@ class Socks5Client { * @return SOCKS5 connection request message */ private byte[] createSocks5ConnectRequest() { - byte[] addr = this.digest.getBytes(); + byte[] addr; + try { + addr = digest.getBytes(StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } byte[] data = new byte[7 + addr.length]; data[0] = (byte) 0x05; // version (SOCKS5) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientForInitiator.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientForInitiator.java index 4bdbff82d..bb02f486a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientForInitiator.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientForInitiator.java @@ -69,6 +69,7 @@ class Socks5ClientForInitiator extends Socks5Client { this.target = target; } + @Override public Socket getSocket(int timeout) throws IOException, InterruptedException, TimeoutException, XMPPException, SmackException { Socket socket = null; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Proxy.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Proxy.java index 54f9dacfa..4a1006877 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Proxy.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Proxy.java @@ -38,6 +38,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.jivesoftware.smack.SmackException; +import org.jivesoftware.smack.util.StringUtils; /** * The Socks5Proxy class represents a local SOCKS5 proxy server. It can be enabled/disabled by @@ -381,6 +382,7 @@ public final class Socks5Proxy { */ private class Socks5ServerProcess implements Runnable { + @Override public void run() { while (true) { Socket socket = null; @@ -470,7 +472,7 @@ public final class Socks5Proxy { byte[] connectionRequest = Socks5Utils.receiveSocks5Message(in); // extract digest - String responseDigest = new String(connectionRequest, 5, connectionRequest[4]); + String responseDigest = new String(connectionRequest, 5, connectionRequest[4], StringUtils.UTF8); // return error if digest is not allowed if (!Socks5Proxy.this.allowedConnections.contains(responseDigest)) { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/packet/Bytestream.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/packet/Bytestream.java index df45488af..4b87c8ecf 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/packet/Bytestream.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/packet/Bytestream.java @@ -317,6 +317,7 @@ public class Bytestream extends IQ { return port; } + @Override public String getElementName() { return ELEMENTNAME; } @@ -366,6 +367,7 @@ public class Bytestream extends IQ { return JID; } + @Override public String getElementName() { return ELEMENTNAME; } @@ -408,6 +410,7 @@ public class Bytestream extends IQ { return target; } + @Override public String getElementName() { return ELEMENTNAME; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/EntityCapsManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/EntityCapsManager.java index d61b7c4b1..afcdfce6a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/EntityCapsManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/EntityCapsManager.java @@ -65,6 +65,7 @@ import java.util.WeakHashMap; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.logging.Level; import java.util.logging.Logger; +import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -113,6 +114,7 @@ public final class EntityCapsManager extends Manager { static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { getInstanceFor(connection); } @@ -346,6 +348,7 @@ public final class EntityCapsManager extends Manager { // XEP-0115 specifies that a client SHOULD include entity capabilities // with every presence notification it sends. StanzaListener packetInterceptor = new StanzaListener() { + @Override public void processStanza(Stanza packet) { if (!entityCapsEnabled) { // Be sure to not send stanzas with the caps extension if it's not enabled @@ -403,7 +406,11 @@ public final class EntityCapsManager extends Manager { * @param user * the user (Full JID) */ + // TODO: Change parameter type to Jid in Smack 4.3. + @SuppressWarnings("CollectionIncompatibleType") public static void removeUserCapsNode(String user) { + // While JID_TO_NODEVER_CHACHE has the generic types , it is ok to call remove with String + // arguments, since the same Jid and String representations would be equal and have the same hash code. JID_TO_NODEVER_CACHE.remove(user); } @@ -658,6 +665,7 @@ public final class EntityCapsManager extends Manager { // XEP-0128 data forms, sort the forms by the FORM_TYPE (i.e., // by the XML character data of the element). SortedSet fs = new TreeSet(new Comparator() { + @Override public int compare(FormField f1, FormField f2) { return f1.getVariable().compareTo(f2.getVariable()); } @@ -701,9 +709,16 @@ public final class EntityCapsManager extends Manager { // encoded using Base64 as specified in Section 4 of RFC 4648 // (note: the Base64 output MUST NOT include whitespace and MUST set // padding bits to zero). + byte[] bytes; + try { + bytes = sb.toString().getBytes(StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } byte[] digest; synchronized(md) { - digest = md.digest(sb.toString().getBytes()); + digest = md.digest(bytes); } String version = Base64.encodeToString(digest); return new CapsVersionAndHash(version, hash); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/packet/CapsExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/packet/CapsExtension.java index b14eeb3ca..b23b6de6e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/packet/CapsExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/packet/CapsExtension.java @@ -35,10 +35,12 @@ public class CapsExtension implements ExtensionElement { this.hash = hash; } + @Override public String getElementName() { return ELEMENT; } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java index ba27200c9..55f4f616c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java @@ -27,6 +27,7 @@ import org.xmlpull.v1.XmlPullParserException; public class CapsExtensionProvider extends ExtensionElementProvider { + @Override public CapsExtension parse(XmlPullParser parser, int initialDepth) throws XmlPullParserException, IOException, SmackException { String hash = null; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/ChatStateManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/ChatStateManager.java index 212ad0918..0552fd9b1 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/ChatStateManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/ChatStateManager.java @@ -119,6 +119,7 @@ public final class ChatStateManager extends Manager { } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; @@ -129,6 +130,7 @@ public final class ChatStateManager extends Manager { } + @Override public int hashCode() { return connection().hashCode(); } @@ -164,12 +166,14 @@ public final class ChatStateManager extends Manager { } } - private class IncomingMessageInterceptor implements ChatManagerListener, ChatMessageListener { + private static class IncomingMessageInterceptor implements ChatManagerListener, ChatMessageListener { + @Override public void chatCreated(final org.jivesoftware.smack.chat.Chat chat, boolean createdLocally) { chat.addMessageListener(this); } + @Override public void processMessage(org.jivesoftware.smack.chat.Chat chat, Message message) { ExtensionElement extension = message.getExtension(NAMESPACE); if (extension == null) { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/AdHocCommand.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/AdHocCommand.java index e3f5331f6..46c819ff6 100755 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/AdHocCommand.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/AdHocCommand.java @@ -457,12 +457,13 @@ public abstract class AdHocCommand { */ sessionExpired("session-expired"); - private String value; + private final String value; SpecificErrorCondition(String value) { this.value = value; } + @Override public String toString() { return value; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/AdHocCommandManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/AdHocCommandManager.java index b0e9902a1..8ddc1167d 100755 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/AdHocCommandManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/AdHocCommandManager.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.commands; +import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -83,6 +84,7 @@ public final class AdHocCommandManager extends Manager { */ static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { getAddHocCommandsManager(connection); } @@ -200,8 +202,16 @@ public final class AdHocCommandManager extends Manager { */ public void registerCommand(String node, String name, final Class clazz) { registerCommand(node, name, new LocalCommandFactory() { + @Override public LocalCommand getInstance() throws InstantiationException, IllegalAccessException { - return clazz.newInstance(); + try { + return clazz.getConstructor().newInstance(); + } + catch (IllegalArgumentException | InvocationTargetException | NoSuchMethodException + | SecurityException e) { + // TODO: Throw those method in Smack 4.3. + throw new IllegalStateException(e); + } } }); } @@ -393,6 +403,7 @@ public final class AdHocCommandManager extends Manager { // See if the session reaping thread is started. If not, start it. if (sessionsSweeper == null) { sessionsSweeper = new Thread(new Runnable() { + @Override public void run() { while (true) { for (String sessionId : executingCommands.keySet()) { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/packet/AdHocCommandData.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/packet/AdHocCommandData.java index 56a107a03..80cd688ce 100755 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/packet/AdHocCommandData.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/packet/AdHocCommandData.java @@ -248,9 +248,11 @@ public class AdHocCommandData extends IQ { this.condition = condition; } + @Override public String getElementName() { return condition.toString(); } + @Override public String getNamespace() { return namespace; } @@ -259,6 +261,7 @@ public class AdHocCommandData extends IQ { return condition; } + @Override public String toXML() { StringBuilder buf = new StringBuilder(); buf.append('<').append(getElementName()); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/packet/DelayInformation.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/packet/DelayInformation.java index 00450d7ea..3133676bb 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/packet/DelayInformation.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/packet/DelayInformation.java @@ -88,10 +88,12 @@ public class DelayInformation implements ExtensionElement { return reason; } + @Override public String getElementName() { return ELEMENT; } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/AbstractNodeInformationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/AbstractNodeInformationProvider.java index ba9ecddaa..6d64bc848 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/AbstractNodeInformationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/AbstractNodeInformationProvider.java @@ -25,18 +25,22 @@ import java.util.List; public abstract class AbstractNodeInformationProvider implements NodeInformationProvider { + @Override public List getNodeItems() { return null; } + @Override public List getNodeFeatures() { return null; } + @Override public List getNodeIdentities() { return null; } + @Override public List getNodePacketExtensions() { return null; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java index 2a9b8cabf..89667770c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java @@ -91,6 +91,7 @@ public final class ServiceDiscoveryManager extends Manager { // Create a new ServiceDiscoveryManager on every established connection static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { getInstanceFor(connection); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/packet/DiscoverInfo.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/packet/DiscoverInfo.java index 1957d2392..93e19cbc5 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/packet/DiscoverInfo.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/packet/DiscoverInfo.java @@ -394,6 +394,7 @@ public class DiscoverInfo extends IQ implements TypedCloneable { * XEP-0015 5.4 Processing Method (Step 3.3). * */ + @Override public boolean equals(Object obj) { if (obj == null) return false; @@ -437,6 +438,7 @@ public class DiscoverInfo extends IQ implements TypedCloneable { * @return a negative integer, zero, or a positive integer as this object is less than, * equal to, or greater than the specified object. */ + @Override public int compareTo(DiscoverInfo.Identity other) { String otherLang = other.lang == null ? "" : other.lang; String thisLang = lang == null ? "" : lang; @@ -512,6 +514,7 @@ public class DiscoverInfo extends IQ implements TypedCloneable { return xml; } + @Override public boolean equals(Object obj) { if (obj == null) return false; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FaultTolerantNegotiator.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FaultTolerantNegotiator.java index bbb853919..597e744ed 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FaultTolerantNegotiator.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FaultTolerantNegotiator.java @@ -55,11 +55,13 @@ public class FaultTolerantNegotiator extends StreamNegotiator { secondaryNegotiator.newStreamInitiation(from, streamID); } + @Override InputStream negotiateIncomingStream(Stanza streamInitiation) { throw new UnsupportedOperationException("Negotiation only handled by create incoming " + "stream method."); } + @Override public InputStream createIncomingStream(final StreamInitiation initiation) throws SmackException, XMPPErrorException, InterruptedException { // This could be either an xep47 ibb 'open' iq or an xep65 streamhost iq IQ initationSet = initiateIncomingStream(connection, initiation); @@ -79,6 +81,7 @@ public class FaultTolerantNegotiator extends StreamNegotiator { } } + @Override public OutputStream createOutgoingStream(String streamID, Jid initiator, Jid target) throws SmackException, XMPPException, InterruptedException { OutputStream stream; @@ -92,6 +95,7 @@ public class FaultTolerantNegotiator extends StreamNegotiator { return stream; } + @Override public String[] getNamespaces() { String[] primary = primaryNegotiator.getNamespaces(); String[] secondary = secondaryNegotiator.getNamespaces(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransfer.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransfer.java index 5f5177183..13220ffaf 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransfer.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransfer.java @@ -292,12 +292,13 @@ public abstract class FileTransfer { */ cancelled("Cancelled"); - private String status; + private final String status; private Status(String status) { this.status = status; } + @Override public String toString() { return status; } @@ -358,6 +359,7 @@ public abstract class FileTransfer { return msg; } + @Override public String toString() { return msg; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/IBBTransferNegotiator.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/IBBTransferNegotiator.java index 27d63571c..2e28455fa 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/IBBTransferNegotiator.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/IBBTransferNegotiator.java @@ -58,6 +58,7 @@ public class IBBTransferNegotiator extends StreamNegotiator { this.manager = InBandBytestreamManager.getByteStreamManager(connection); } + @Override public OutputStream createOutgoingStream(String streamID, Jid initiator, Jid target) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException { InBandBytestreamSession session = this.manager.establishSession(target, streamID); @@ -65,6 +66,7 @@ public class IBBTransferNegotiator extends StreamNegotiator { return session.getOutputStream(); } + @Override public InputStream createIncomingStream(StreamInitiation initiation) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException { /* @@ -87,10 +89,12 @@ public class IBBTransferNegotiator extends StreamNegotiator { this.manager.ignoreBytestreamRequestOnce(streamID); } + @Override public String[] getNamespaces() { return new String[] { DataPacketExtension.NAMESPACE }; } + @Override InputStream negotiateIncomingStream(Stanza streamInitiation) throws NotConnectedException, InterruptedException { // build In-Band Bytestream request InBandBytestreamRequest request = new ByteStreamRequest(this.manager, diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/IncomingFileTransfer.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/IncomingFileTransfer.java index 2783e6910..6e4afef41 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/IncomingFileTransfer.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/IncomingFileTransfer.java @@ -126,6 +126,7 @@ public class IncomingFileTransfer extends FileTransfer { } Thread transferThread = new Thread(new Runnable() { + @Override public void run() { try { inputStream = negotiateStream(); @@ -184,6 +185,7 @@ public class IncomingFileTransfer extends FileTransfer { FutureTask streamNegotiatorTask = new FutureTask( new Callable() { + @Override public InputStream call() throws Exception { return streamNegotiator .createIncomingStream(recieveRequest.getStreamInitiation()); @@ -220,6 +222,7 @@ public class IncomingFileTransfer extends FileTransfer { return inputStream; } + @Override public void cancel() { setStatus(Status.cancelled); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/OutgoingFileTransfer.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/OutgoingFileTransfer.java index 7d8777b63..ce2d0ae91 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/OutgoingFileTransfer.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/OutgoingFileTransfer.java @@ -174,6 +174,7 @@ public class OutgoingFileTransfer extends FileTransfer { setFileInfo(fileName, fileSize); this.callback = progress; transferThread = new Thread(new Runnable() { + @Override public void run() { try { OutgoingFileTransfer.this.outputStream = negotiateStream( @@ -192,7 +193,7 @@ public class OutgoingFileTransfer extends FileTransfer { } private void checkTransferThread() { - if (transferThread != null && transferThread.isAlive() || isDone()) { + if ((transferThread != null && transferThread.isAlive()) || isDone()) { throw new IllegalStateException( "File transfer in progress or has already completed."); } @@ -225,6 +226,7 @@ public class OutgoingFileTransfer extends FileTransfer { } transferThread = new Thread(new Runnable() { + @Override public void run() { try { outputStream = negotiateStream(file.getName(), file @@ -298,6 +300,7 @@ public class OutgoingFileTransfer extends FileTransfer { setFileInfo(fileName, fileSize); transferThread = new Thread(new Runnable() { + @Override public void run() { //Create packet filter try { @@ -398,6 +401,7 @@ public class OutgoingFileTransfer extends FileTransfer { return outputStream; } + @Override public void cancel() { setStatus(Status.cancelled); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java index f3ada0e69..89021126c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java @@ -34,6 +34,7 @@ public final class GeoLocationManager extends Manager { static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { getInstanceFor(connection); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/LastActivityManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/LastActivityManager.java index b49051ce8..0d9a11cfb 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/LastActivityManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/LastActivityManager.java @@ -108,6 +108,7 @@ public final class LastActivityManager extends Manager { // Enable the LastActivity support on every established connection static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { LastActivityManager.getInstanceFor(connection); } @@ -135,6 +136,7 @@ public final class LastActivityManager extends Manager { // Listen to all the sent messages to reset the idle time on each one connection.addPacketSendingListener(new StanzaListener() { + @Override public void processStanza(Stanza packet) { Presence presence = (Presence) packet; Presence.Mode mode = presence.getMode(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/packet/DefaultPrivateData.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/packet/DefaultPrivateData.java index 02a208452..83474b3c3 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/packet/DefaultPrivateData.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/packet/DefaultPrivateData.java @@ -66,6 +66,7 @@ public class DefaultPrivateData implements PrivateData { * * @return the XML element name of the stanza(/packet) extension. */ + @Override public String getElementName() { return elementName; } @@ -75,10 +76,12 @@ public class DefaultPrivateData implements PrivateData { * * @return the XML namespace of the stanza(/packet) extension. */ + @Override public String getNamespace() { return namespace; } + @Override public String toXML() { StringBuilder buf = new StringBuilder(); buf.append('<').append(elementName).append(" xmlns=\"").append(namespace).append("\">"); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/VersionManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/VersionManager.java index 202a084dc..a6797315a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/VersionManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/VersionManager.java @@ -71,6 +71,7 @@ public final class VersionManager extends Manager { static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { VersionManager.getInstanceFor(connection); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/DefaultParticipantStatusListener.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/DefaultParticipantStatusListener.java index 6cf4de52c..baf836557 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/DefaultParticipantStatusListener.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/DefaultParticipantStatusListener.java @@ -32,48 +32,63 @@ import org.jxmpp.jid.parts.Resourcepart; */ public class DefaultParticipantStatusListener implements ParticipantStatusListener { + @Override public void joined(EntityFullJid participant) { } + @Override public void left(EntityFullJid participant) { } + @Override public void kicked(EntityFullJid participant, Jid actor, String reason) { } + @Override public void voiceGranted(EntityFullJid participant) { } + @Override public void voiceRevoked(EntityFullJid participant) { } + @Override public void banned(EntityFullJid participant, Jid actor, String reason) { } + @Override public void membershipGranted(EntityFullJid participant) { } + @Override public void membershipRevoked(EntityFullJid participant) { } + @Override public void moderatorGranted(EntityFullJid participant) { } + @Override public void moderatorRevoked(EntityFullJid participant) { } + @Override public void ownershipGranted(EntityFullJid participant) { } + @Override public void ownershipRevoked(EntityFullJid participant) { } + @Override public void adminGranted(EntityFullJid participant) { } + @Override public void adminRevoked(EntityFullJid participant) { } + @Override public void nicknameChanged(EntityFullJid participant, Resourcepart newNickname) { } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/DefaultUserStatusListener.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/DefaultUserStatusListener.java index 021f16d8e..9b0d71108 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/DefaultUserStatusListener.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/DefaultUserStatusListener.java @@ -30,42 +30,55 @@ import org.jxmpp.jid.Jid; */ public class DefaultUserStatusListener implements UserStatusListener { + @Override public void kicked(Jid actor, String reason) { } + @Override public void voiceGranted() { } + @Override public void voiceRevoked() { } + @Override public void banned(Jid actor, String reason) { } + @Override public void membershipGranted() { } + @Override public void membershipRevoked() { } + @Override public void moderatorGranted() { } + @Override public void moderatorRevoked() { } + @Override public void ownershipGranted() { } + @Override public void ownershipRevoked() { } + @Override public void adminGranted() { } + @Override public void adminRevoked() { } + @Override public void roomDestroyed(MultiUserChat alternateMUC, String reason) { } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java index 0cee4f7b0..3d240756e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java @@ -163,6 +163,7 @@ public class MultiUserChat { // Create a listener for subject updates. subjectListener = new StanzaListener() { + @Override public void processStanza(Stanza packet) { Message msg = (Message) packet; EntityFullJid from = msg.getFrom().asEntityFullJidIfPossible(); @@ -181,6 +182,7 @@ public class MultiUserChat { // Create a listener for all presence updates. presenceListener = new StanzaListener() { + @Override public void processStanza(Stanza packet) { Presence presence = (Presence) packet; final EntityFullJid from = presence.getFrom().asEntityFullJidIfPossible(); @@ -251,6 +253,7 @@ public class MultiUserChat { // Listens for all messages that include a MUCUser extension and fire the invitation // rejection listeners if the message includes an invitation rejection. declinesListener = new StanzaListener() { + @Override public void processStanza(Stanza packet) { Message message = (Message) packet; // Get the MUC User extension diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatManager.java index 9b556ce41..8a8b5e069 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatManager.java @@ -82,6 +82,7 @@ public final class MultiUserChatManager extends Manager { static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(final XMPPConnection connection) { // Set on every established connection that this client supports the Multi-User // Chat protocol. This information will be used when another client tries to @@ -149,6 +150,7 @@ public final class MultiUserChatManager extends Manager { // Listens for all messages that include a MUCUser extension and fire the invitation // listeners if the message includes an invitation. StanzaListener invitationPacketListener = new StanzaListener() { + @Override public void processStanza(Stanza packet) { final Message message = (Message) packet; // Get the MUCUser extension diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/Occupant.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/Occupant.java index b7bde0c58..044a027e2 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/Occupant.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/Occupant.java @@ -110,6 +110,7 @@ public class Occupant { return nick; } + @Override public boolean equals(Object obj) { if(!(obj instanceof Occupant)) { return false; @@ -118,6 +119,7 @@ public class Occupant { return jid.equals(occupant.jid); } + @Override public int hashCode() { int result; result = affiliation.hashCode(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java index dfd327296..d445769cc 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java @@ -92,10 +92,12 @@ public class GroupChatInvitation implements ExtensionElement { return roomAddress; } + @Override public String getElementName() { return ELEMENT; } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCInitialPresence.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCInitialPresence.java index 6482971fb..e6510987c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCInitialPresence.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCInitialPresence.java @@ -72,10 +72,12 @@ public class MUCInitialPresence implements ExtensionElement { } } + @Override public String getElementName() { return ELEMENT; } + @Override public String getNamespace() { return NAMESPACE; } @@ -282,6 +284,7 @@ public class MUCInitialPresence implements ExtensionElement { this.since = since; } + @Override public XmlStringBuilder toXML() { XmlStringBuilder xml = new XmlStringBuilder(this); xml.optIntAttribute("maxchars", getMaxChars()); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCItem.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCItem.java index 9cbc6cd3a..05ef5aea9 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCItem.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCItem.java @@ -158,6 +158,7 @@ public class MUCItem implements NamedElement { return role; } + @Override public XmlStringBuilder toXML() { XmlStringBuilder xml = new XmlStringBuilder(this); xml.optAttribute("affiliation", getAffiliation()); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCUser.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCUser.java index 00abd698e..ac476a7d2 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCUser.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCUser.java @@ -50,10 +50,12 @@ public class MUCUser implements ExtensionElement { private String password; private Destroy destroy; + @Override public String getElementName() { return ELEMENT; } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/packet/Nick.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/packet/Nick.java index 2275993b7..a88d54d5c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/packet/Nick.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/packet/Nick.java @@ -65,6 +65,7 @@ public class Nick implements ExtensionElement { * * @see org.jivesoftware.smack.packet.PacketExtension#getElementName() */ + @Override public String getElementName() { return ELEMENT_NAME; } @@ -74,6 +75,7 @@ public class Nick implements ExtensionElement { * * @see org.jivesoftware.smack.packet.PacketExtension#getNamespace() */ + @Override public String getNamespace() { return NAMESPACE; } @@ -83,6 +85,7 @@ public class Nick implements ExtensionElement { * * @see org.jivesoftware.smack.packet.PacketExtension#toXML() */ + @Override public String toXML() { final StringBuilder buf = new StringBuilder(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/OfflineMessageManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/OfflineMessageManager.java index 7afe302ec..6b83128a7 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/OfflineMessageManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/OfflineMessageManager.java @@ -152,6 +152,7 @@ public class OfflineMessageManager { } // Filter offline messages that were requested by this request StanzaFilter messageFilter = new AndFilter(PACKET_FILTER, new StanzaFilter() { + @Override public boolean accept(Stanza packet) { OfflineMessageInfo info = (OfflineMessageInfo) packet.getExtension("offline", namespace); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java index 237debfda..c121d8b60 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java @@ -42,6 +42,7 @@ public class OfflineMessageInfo implements ExtensionElement { * * @return the XML element name of the stanza(/packet) extension. */ + @Override public String getElementName() { return "offline"; } @@ -52,6 +53,7 @@ public class OfflineMessageInfo implements ExtensionElement { * * @return the XML namespace of the stanza(/packet) extension. */ + @Override public String getNamespace() { return "http://jabber.org/protocol/offline"; } @@ -78,6 +80,7 @@ public class OfflineMessageInfo implements ExtensionElement { this.node = node; } + @Override public String toXML() { StringBuilder buf = new StringBuilder(); buf.append('<').append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pep/PEPManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pep/PEPManager.java index 280296e96..2fc42be80 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pep/PEPManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pep/PEPManager.java @@ -91,6 +91,7 @@ public final class PEPManager extends Manager { private PEPManager(XMPPConnection connection) { super(connection); StanzaListener packetListener = new StanzaListener() { + @Override public void processStanza(Stanza stanza) { Message message = (Message) stanza; EventElement event = EventElement.from(stanza); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java index ce63a78ea..11f9dcd0f 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java @@ -67,6 +67,7 @@ public final class PingManager extends Manager { static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { getInstanceFor(connection); } @@ -402,6 +403,7 @@ public final class PingManager extends Manager { } private final Runnable pingServerRunnable = new Runnable() { + @Override public void run() { LOGGER.fine("ServerPingTask run()"); pingServerIfNecessary(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/PrivacyListManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/PrivacyListManager.java index 727bb4fdb..afe170d51 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/PrivacyListManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/PrivacyListManager.java @@ -78,6 +78,7 @@ public final class PrivacyListManager extends Manager { static { // Create a new PrivacyListManager on every established connection. XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { getInstanceFor(connection); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Affiliation.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Affiliation.java index dde32fa25..da2ba07da 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Affiliation.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Affiliation.java @@ -122,6 +122,7 @@ public class Affiliation implements ExtensionElement return ELEMENT; } + @Override public String getNamespace() { return namespace.getXmlns(); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ConfigurationEvent.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ConfigurationEvent.java index 112507953..97c4d086c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ConfigurationEvent.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ConfigurationEvent.java @@ -49,6 +49,7 @@ public class ConfigurationEvent extends NodeExtension implements EmbeddedPacketE return form; } + @Override public List getExtensions() { if (getConfiguration() == null) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ConfigureForm.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ConfigureForm.java index 5d6ecf683..4dd2979d7 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ConfigureForm.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ConfigureForm.java @@ -610,6 +610,7 @@ public class ConfigureForm extends Form * * @return The node title */ + @Override public String getTitle() { return getFieldValue(ConfigureNodeFields.title); @@ -620,6 +621,7 @@ public class ConfigureForm extends Form * * @param title The node title */ + @Override public void setTitle(String title) { addField(ConfigureNodeFields.title, FormField.Type.text_single); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EventElement.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EventElement.java index 987fb4c14..2d03cc896 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EventElement.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EventElement.java @@ -58,6 +58,7 @@ public class EventElement implements EmbeddedPacketExtension return type; } + @Override public List getExtensions() { return Arrays.asList(new ExtensionElement[]{getEvent()}); @@ -68,11 +69,13 @@ public class EventElement implements EmbeddedPacketExtension return ext; } + @Override public String getElementName() { return "event"; } + @Override public String getNamespace() { return PubSubNamespace.EVENT.getXmlns(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ItemsExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ItemsExtension.java index c8676f327..6b53fd408 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ItemsExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/ItemsExtension.java @@ -48,8 +48,8 @@ public class ItemsExtension extends NodeExtension implements EmbeddedPacketExten /** A retract element, which has an optional notify attribute when publishing deletions. */ retract(PubSubElementType.RETRACT, "notify"); - private PubSubElementType elem; - private String att; + private final PubSubElementType elem; + private final String att; private ItemsElementType(PubSubElementType nodeElement, String attribute) { @@ -130,6 +130,7 @@ public class ItemsExtension extends NodeExtension implements EmbeddedPacketExten return type; } + @Override @SuppressWarnings("unchecked") public List getExtensions() { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Node.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Node.java index 265eb366a..c62180dd4 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Node.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Node.java @@ -604,6 +604,7 @@ abstract public class Node listener = eventListener; } + @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public void processStanza(Stanza packet) { @@ -631,6 +632,7 @@ abstract public class Node listener = eventListener; } + @Override public void processStanza(Stanza packet) { // CHECKSTYLE:OFF @@ -667,7 +669,7 @@ abstract public class Node * * @author Robin Collier */ - public class NodeConfigTranslator implements StanzaListener + public static class NodeConfigTranslator implements StanzaListener { private NodeConfigListener listener; @@ -676,12 +678,11 @@ abstract public class Node listener = eventListener; } + @Override public void processStanza(Stanza packet) { -// CHECKSTYLE:OFF EventElement event = (EventElement)packet.getExtension("event", PubSubNamespace.EVENT.getXmlns()); ConfigurationEvent config = (ConfigurationEvent)event.getEvent(); -// CHECKSTYLE:ON listener.handleNodeConfiguration(config); } @@ -712,6 +713,7 @@ abstract public class Node && "item".equals(secondLevelElement); } + @Override public boolean acceptSpecific(Message message) { EventElement event = EventElement.from(message); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/NodeExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/NodeExtension.java index 5da7ecacf..41393b7f6 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/NodeExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/NodeExtension.java @@ -65,16 +65,19 @@ public class NodeExtension implements ExtensionElement return node; } + @Override public String getElementName() { return element.getElementName(); } + @Override public String getNamespace() { return element.getNamespace().getXmlns(); } + @Override public CharSequence toXML() { return '<' + getElementName() + (node == null ? "" : " node='" + node + '\'') + "/>"; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/PubSubElementType.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/PubSubElementType.java index 14b14b0fe..ef0ac70f5 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/PubSubElementType.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/PubSubElementType.java @@ -51,8 +51,8 @@ public enum PubSubElementType SUBSCRIPTIONS("subscriptions", PubSubNamespace.BASIC), UNSUBSCRIBE("unsubscribe", PubSubNamespace.BASIC); - private String eName; - private PubSubNamespace nSpace; + private final String eName; + private final PubSubNamespace nSpace; private PubSubElementType(String elemName, PubSubNamespace ns) { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/RetractItem.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/RetractItem.java index e26bfbac7..6d3411680 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/RetractItem.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/RetractItem.java @@ -45,16 +45,19 @@ public class RetractItem implements ExtensionElement return id; } + @Override public String getElementName() { return "retract"; } + @Override public String getNamespace() { return PubSubNamespace.EVENT.getXmlns(); } + @Override public String toXML() { return ""; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java index 9e92949e2..1e747f62d 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java @@ -45,11 +45,13 @@ public class SimplePayload implements ExtensionElement ns = namespace; } + @Override public String getElementName() { return elemName; } + @Override public String getNamespace() { return ns; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Subscription.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Subscription.java index cf349e6f8..bc4d0ac68 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Subscription.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Subscription.java @@ -133,6 +133,7 @@ public class Subscription extends NodeExtension return configRequired; } + @Override public String toXML() { StringBuilder builder = new StringBuilder(""; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/Header.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/Header.java index f6461488c..2cb8f9000 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/Header.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/Header.java @@ -44,10 +44,12 @@ public class Header implements ExtensionElement { return value; } + @Override public String getElementName() { return ELEMENT; } + @Override public String getNamespace() { return HeadersExtension.NAMESPACE; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/HeadersExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/HeadersExtension.java index 215c0f37e..62f0cc28e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/HeadersExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/HeadersExtension.java @@ -48,10 +48,12 @@ public class HeadersExtension implements ExtensionElement { return headers; } + @Override public String getElementName() { return ELEMENT; } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/packet/StreamInitiation.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/packet/StreamInitiation.java index 097953d9e..582268aad 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/packet/StreamInitiation.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/packet/StreamInitiation.java @@ -317,14 +317,17 @@ public class StreamInitiation extends IQ { return isRanged; } + @Override public String getElementName() { return "file"; } + @Override public String getNamespace() { return "http://jabber.org/protocol/si/profile/file-transfer"; } + @Override public String toXML() { StringBuilder buffer = new StringBuilder(); @@ -370,7 +373,7 @@ public class StreamInitiation extends IQ { * @author Alexander Wenckus * */ - public class Feature implements ExtensionElement { + public static class Feature implements ExtensionElement { private final DataForm data; @@ -392,14 +395,17 @@ public class StreamInitiation extends IQ { return data; } + @Override public String getNamespace() { return "http://jabber.org/protocol/feature-neg"; } + @Override public String getElementName() { return "feature"; } + @Override public String toXML() { StringBuilder buf = new StringBuilder(); buf diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/time/EntityTimeManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/time/EntityTimeManager.java index 3e2a08632..d075871fe 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/time/EntityTimeManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/time/EntityTimeManager.java @@ -43,6 +43,7 @@ public final class EntityTimeManager extends Manager { static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { getInstanceFor(connection); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/VCard.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/VCard.java index 433b5ea4c..fd9a9e7a3 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/VCard.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/VCard.java @@ -728,6 +728,7 @@ public class VCard extends IQ { // Used in tests: + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; @@ -776,6 +777,7 @@ public class VCard extends IQ { return workPhones.equals(vCard.workPhones); } + @Override public int hashCode() { int result; result = homePhones.hashCode(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/FormField.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/FormField.java index 11c6a939e..0a024c7d7 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/FormField.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/FormField.java @@ -364,6 +364,7 @@ public class FormField implements NamedElement { return ELEMENT; } + @Override public XmlStringBuilder toXML() { XmlStringBuilder buf = new XmlStringBuilder(this); // Add attributes @@ -455,6 +456,7 @@ public class FormField implements NamedElement { return ELEMENT; } + @Override public XmlStringBuilder toXML() { XmlStringBuilder xml = new XmlStringBuilder(this); // Add attribute diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/packet/DataForm.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/packet/DataForm.java index b68d57ab7..c2581db74 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/packet/DataForm.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/packet/DataForm.java @@ -171,10 +171,12 @@ public class DataForm implements ExtensionElement { } } + @Override public String getElementName() { return ELEMENT; } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayout.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayout.java index a499b89e7..593ba4a95 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayout.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayout.java @@ -124,6 +124,7 @@ public class DataLayout implements ExtensionElement { this.var = var; } + @Override public XmlStringBuilder toXML() { XmlStringBuilder buf = new XmlStringBuilder(this); buf.attribute("var", getVar()); @@ -181,6 +182,7 @@ public class DataLayout implements ExtensionElement { return this.sectionLayout; } + @Override public XmlStringBuilder toXML() { XmlStringBuilder buf = new XmlStringBuilder(this); buf.optAttribute("label", getLabel()); @@ -211,6 +213,7 @@ public class DataLayout implements ExtensionElement { public static final String ELEMENT = "reportedref"; + @Override public XmlStringBuilder toXML() { XmlStringBuilder buf = new XmlStringBuilder(this); buf.closeEmptyElement(); @@ -236,6 +239,7 @@ public class DataLayout implements ExtensionElement { this.text = text; } + @Override public XmlStringBuilder toXML() { XmlStringBuilder buf = new XmlStringBuilder(); buf.element(ELEMENT, getText()); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java index 4aeb61b30..28777f426 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java @@ -144,6 +144,7 @@ public abstract class ValidateElement implements ExtensionElement { buf.emptyElement(METHOD); } + @Override public void checkConsistency(FormField formField) { checkListRangeConsistency(formField); if (formField.getType() != null) { @@ -186,6 +187,7 @@ public abstract class ValidateElement implements ExtensionElement { buf.emptyElement(METHOD); } + @Override public void checkConsistency(FormField formField) { checkListRangeConsistency(formField); if (formField.getType() != null) { @@ -253,6 +255,7 @@ public abstract class ValidateElement implements ExtensionElement { return max; } + @Override public void checkConsistency(FormField formField) { checkNonMultiConsistency(formField, METHOD); if (getDatatype().equals(ValidateElement.DATATYPE_XS_STRING)) { @@ -302,6 +305,7 @@ public abstract class ValidateElement implements ExtensionElement { buf.element("regex", getRegex()); } + @Override public void checkConsistency(FormField formField) { checkNonMultiConsistency(formField, METHOD); } @@ -340,6 +344,7 @@ public abstract class ValidateElement implements ExtensionElement { this.max = max; } + @Override public XmlStringBuilder toXML() { XmlStringBuilder buf = new XmlStringBuilder(this); buf.optLongAttribute("min", getMin()); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLManager.java index 10c96c936..0dd8cf8bf 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLManager.java @@ -40,6 +40,7 @@ import java.util.List; public class XHTMLManager { static { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { // Enable the XHTML support on every established connection XHTMLManager.setServiceEnabled(connection, true); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLText.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLText.java index e72099f31..cd4f47f6c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLText.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLText.java @@ -400,6 +400,7 @@ public class XHTMLText { * * @return the text of the XHTMLText */ + @Override public String toString() { return text.toString(); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/packet/XHTMLExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/packet/XHTMLExtension.java index 858e32650..f5b9227e9 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/packet/XHTMLExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/packet/XHTMLExtension.java @@ -48,6 +48,7 @@ public class XHTMLExtension implements ExtensionElement { * * @return the XML element name of the stanza(/packet) extension. */ + @Override public String getElementName() { return ELEMENT; } @@ -58,6 +59,7 @@ public class XHTMLExtension implements ExtensionElement { * * @return the XML namespace of the stanza(/packet) extension. */ + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bob/BoBIQTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bob/BoBIQTest.java index dab9c9e81..3308c6f73 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bob/BoBIQTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bob/BoBIQTest.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.bob; import org.jivesoftware.smack.packet.IQ.Type; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smackx.bob.element.BoBIQ; import org.junit.Assert; import org.junit.Test; @@ -50,7 +51,7 @@ public class BoBIQTest extends SmackTestSuite { BoBIQ bobIQ = PacketParserUtils.parseStanza(sampleBoBIQResponse); BoBHash bobHash = new BoBHash("8f35fef110ffc5df08d579a50083ff9308fb6242", "sha1"); - BoBData bobData = new BoBData("image/png", "sarasade2354j2".getBytes(), 86400); + BoBData bobData = new BoBData("image/png", "sarasade2354j2".getBytes(StringUtils.UTF8), 86400); BoBIQ createdBoBIQ = new BoBIQ(bobHash, bobData); createdBoBIQ.setStanzaId("sarasa"); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManagerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManagerTest.java index 185842226..de7ab078f 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManagerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManagerTest.java @@ -164,6 +164,7 @@ public class InBandBytestreamManagerTest extends InitExtensions { protocol.addResponse(null, new Verification() { + @Override public void verify(Open request, IQ response) { assertEquals(StanzaType.MESSAGE, request.getStanza()); } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java index 0ebc90ab0..22c416a1b 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java @@ -102,6 +102,7 @@ public class InBandBytestreamSessionMessageTest extends InitExtensions { long lastSeq = 0; + @Override public void verify(Message request, IQ response) { DataPacketExtension dpe = (DataPacketExtension) request.getExtension( DataPacketExtension.ELEMENT, DataPacketExtension.NAMESPACE); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java index 5aab18902..f399d2b9d 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java @@ -103,6 +103,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { long lastSeq = 0; + @Override public void verify(Data request, IQ response) { assertEquals(lastSeq++, request.getDataPacketExtension().getSeq()); } @@ -267,6 +268,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { // compares the data of each packet with the control data Verification dataVerification = new Verification() { + @Override public void verify(Data request, IQ response) { byte[] decodedData = request.getDataPacketExtension().getDecodedData(); int seq = (int) request.getDataPacketExtension().getSeq(); @@ -372,6 +374,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { // verify reply to invalid data packet is an error protocol.addResponse(null, Verification.requestTypeERROR, new Verification() { + @Override public void verify(IQ request, IQ response) { assertEquals(XMPPError.Condition.unexpected_request, request.getError().getCondition()); @@ -410,6 +413,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { // verify reply to invalid data packet is an error protocol.addResponse(null, Verification.requestTypeERROR, new Verification() { + @Override public void verify(IQ request, IQ response) { assertEquals(XMPPError.Condition.bad_request, request.getError().getCondition()); @@ -639,6 +643,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { Thread closer = new Thread(new Runnable() { + @Override public void run() { try { Thread.sleep(200); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtensionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtensionTest.java index 435609026..5409333b3 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtensionTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtensionTest.java @@ -20,8 +20,10 @@ import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; +import java.io.UnsupportedEncodingException; import java.util.Properties; +import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smackx.InitExtensions; import org.junit.Test; @@ -68,13 +70,13 @@ public class DataPacketExtensionTest extends InitExtensions { } @Test - public void shouldReturnNullIfDataIsInvalid() { + public void shouldReturnNullIfDataIsInvalid() throws UnsupportedEncodingException { // pad character is not at end of data DataPacketExtension data = new DataPacketExtension("sessionID", 0, "BBBB=CCC"); assertNull(data.getDecodedData()); // invalid Base64 character - data = new DataPacketExtension("sessionID", 0, new String(new byte[] { 123 })); + data = new DataPacketExtension("sessionID", 0, new String(new byte[] { 123 }, StringUtils.UTF8)); assertNull(data.getDecodedData()); } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamManagerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamManagerTest.java index 118e22f2a..65976c575 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamManagerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamManagerTest.java @@ -604,6 +604,7 @@ public class Socks5ByteStreamManagerTest { // return used stream host info as response to the bytestream initiation protocol.addResponse(streamHostUsedPacket, new Verification() { + @Override public void verify(Bytestream request, Bytestream response) { // verify SOCKS5 Bytestream request assertEquals(response.getSessionID(), request.getSessionID()); @@ -698,6 +699,7 @@ public class Socks5ByteStreamManagerTest { // return used stream host info as response to the bytestream initiation protocol.addResponse(streamHostUsedPacket, new Verification() { + @Override public void verify(Bytestream request, Bytestream response) { assertEquals(response.getSessionID(), request.getSessionID()); assertEquals(1, request.getStreamHosts().size()); @@ -714,6 +716,7 @@ public class Socks5ByteStreamManagerTest { // return proxy activation response if proxy should be activated protocol.addResponse(activationResponse, new Verification() { + @Override public void verify(Bytestream request, IQ response) { assertEquals(targetJID, request.getToActivate().getTarget()); } @@ -796,6 +799,7 @@ public class Socks5ByteStreamManagerTest { // return used stream host info as response to the bytestream initiation protocol.addResponse(streamHostUsedPacket, new Verification() { + @Override public void verify(Bytestream request, Bytestream response) { assertEquals(response.getSessionID(), request.getSessionID()); StreamHost streamHost1 = request.getStreamHosts().get(0); @@ -862,6 +866,7 @@ public class Socks5ByteStreamManagerTest { Verification streamHostUsedVerification1 = new Verification() { + @Override public void verify(Bytestream request, Bytestream response) { assertEquals(response.getSessionID(), request.getSessionID()); assertEquals(2, request.getStreamHosts().size()); @@ -898,6 +903,7 @@ public class Socks5ByteStreamManagerTest { Verification streamHostUsedVerification2 = new Verification() { + @Override public void verify(Bytestream request, Bytestream response) { assertEquals(response.getSessionID(), request.getSessionID()); assertEquals(2, request.getStreamHosts().size()); @@ -946,6 +952,7 @@ public class Socks5ByteStreamManagerTest { Verification streamHostUsedVerification = new Verification() { + @Override public void verify(Bytestream request, Bytestream response) { assertEquals(response.getSessionID(), request.getSessionID()); assertEquals(2, request.getStreamHosts().size()); @@ -1079,6 +1086,7 @@ public class Socks5ByteStreamManagerTest { // return proxy activation response if proxy should be activated protocol.addResponse(activationResponse, new Verification() { + @Override public void verify(Bytestream request, IQ response) { assertEquals(targetJID, request.getToActivate().getTarget()); } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientForInitiatorTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientForInitiatorTest.java index 7616597eb..7a7bab2f2 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientForInitiatorTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientForInitiatorTest.java @@ -254,6 +254,7 @@ public class Socks5ClientForInitiatorTest { protocol.addResponse(activationResponse, Verification.correspondingSenderReceiver, Verification.requestTypeSET, new Verification() { + @Override public void verify(Bytestream request, IQ response) { // verify that the correct stream should be activated assertNotNull(request.getToActivate()); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientTest.java index aab52d2a7..e658020fd 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientTest.java @@ -29,6 +29,7 @@ import java.net.Socket; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.util.NetworkUtil; +import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream.StreamHost; import org.junit.After; import org.junit.Before; @@ -236,7 +237,7 @@ public class Socks5ClientTest { // reply with full SOCKS5 message with an error code (01 = general SOCKS server // failure) out.write(new byte[] { (byte) 0x05, (byte) 0x01, (byte) 0x00, (byte) 0x03 }); - byte[] address = digest.getBytes(); + byte[] address = digest.getBytes(StringUtils.UTF8); out.write(address.length); out.write(address); out.write(new byte[] { (byte) 0x00, (byte) 0x00 }); @@ -295,7 +296,7 @@ public class Socks5ClientTest { out.write(new byte[] { (byte) 0x05, (byte) 0x00 }); out.flush(); - byte[] address = digest.getBytes(); + byte[] address = digest.getBytes(StringUtils.UTF8); assertEquals((byte) 0x05, (byte) in.read()); // version assertEquals((byte) 0x01, (byte) in.read()); // connect request diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ProxyTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ProxyTest.java index f909bebe8..b2d3da710 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ProxyTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ProxyTest.java @@ -32,6 +32,7 @@ import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; +import org.jivesoftware.smack.util.StringUtils; import org.junit.After; import org.junit.Test; @@ -272,7 +273,7 @@ public class Socks5ProxyTest { proxy.start(); assertTrue(proxy.isRunning()); - String digest = new String(new byte[] { (byte) 0xAA }); + String digest = new String(new byte[] { (byte) 0xAA }, StringUtils.UTF8); // add digest to allow connection proxy.addTransfer(digest); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5TestProxy.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5TestProxy.java index 64d696f9b..d3b60e2a3 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5TestProxy.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5TestProxy.java @@ -30,6 +30,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.jivesoftware.smack.SmackException; +import org.jivesoftware.smack.util.StringUtils; /** * Simple SOCKS5 proxy for testing purposes. It is almost the same as the Socks5Proxy class but the @@ -206,6 +207,7 @@ public final class Socks5TestProxy { */ class Socks5ServerProcess implements Runnable { + @Override public void run() { while (true) { Socket socket = null; @@ -295,7 +297,7 @@ public final class Socks5TestProxy { byte[] connectionRequest = Socks5Utils.receiveSocks5Message(in); // extract digest - String responseDigest = new String(connectionRequest, 5, connectionRequest[4]); + String responseDigest = new String(connectionRequest, 5, connectionRequest[4], StringUtils.UTF8); connectionRequest[1] = (byte) 0x00; // set return status to 0 (success) out.write(connectionRequest); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java index 915cbd650..c29dc8dbc 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java @@ -88,7 +88,7 @@ public class DataValidationTest { assertEquals("min-val", rdv.getMin()); assertEquals("max-val", rdv.getMax()); assertNotNull(rdv.getListRange()); - assertEquals(new Long(111), rdv.getListRange().getMin()); + assertEquals(Long.valueOf(111), rdv.getListRange().getMin()); assertEquals(999, rdv.getListRange().getMax().intValue()); diff --git a/smack-extensions/src/test/java/org/jivesoftware/util/ConnectionUtils.java b/smack-extensions/src/test/java/org/jivesoftware/util/ConnectionUtils.java index 22625e306..b895e800c 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/util/ConnectionUtils.java +++ b/smack-extensions/src/test/java/org/jivesoftware/util/ConnectionUtils.java @@ -92,6 +92,7 @@ public class ConnectionUtils { // mock send method Answer addIncoming = new Answer() { + @Override public Object answer(InvocationOnMock invocation) throws Throwable { protocol.getRequests().add((Stanza) invocation.getArguments()[0]); return null; @@ -101,6 +102,7 @@ public class ConnectionUtils { // mock receive methods Answer answer = new Answer() { + @Override public Stanza answer(InvocationOnMock invocation) throws Throwable { return protocol.getResponses().poll(); } diff --git a/smack-extensions/src/test/java/org/jivesoftware/util/Verification.java b/smack-extensions/src/test/java/org/jivesoftware/util/Verification.java index 06edde76c..42593a8b2 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/util/Verification.java +++ b/smack-extensions/src/test/java/org/jivesoftware/util/Verification.java @@ -39,6 +39,7 @@ public interface Verification { */ public static Verification correspondingSenderReceiver = new Verification() { + @Override public void verify(Stanza request, Stanza response) { assertEquals(response.getFrom(), request.getTo()); } @@ -50,6 +51,7 @@ public interface Verification { */ public static Verification requestTypeGET = new Verification() { + @Override public void verify(IQ request, Stanza response) { assertEquals(IQ.Type.get, request.getType()); } @@ -61,6 +63,7 @@ public interface Verification { */ public static Verification requestTypeSET = new Verification() { + @Override public void verify(IQ request, Stanza response) { assertEquals(IQ.Type.set, request.getType()); } @@ -72,6 +75,7 @@ public interface Verification { */ public static Verification requestTypeRESULT = new Verification() { + @Override public void verify(IQ request, Stanza response) { assertEquals(IQ.Type.result, request.getType()); } @@ -83,6 +87,7 @@ public interface Verification { */ public static Verification requestTypeERROR = new Verification() { + @Override public void verify(IQ request, Stanza response) { assertEquals(IQ.Type.error, request.getType()); } diff --git a/smack-im/src/main/java/org/jivesoftware/smack/chat/ChatManager.java b/smack-im/src/main/java/org/jivesoftware/smack/chat/ChatManager.java index 5c59136e9..897c06423 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/chat/ChatManager.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/chat/ChatManager.java @@ -151,6 +151,7 @@ public final class ChatManager extends Manager{ // Add a listener for all message packets so that we can deliver // messages to the best Chat instance available. connection.addSyncStanzaListener(new StanzaListener() { + @Override public void processStanza(Stanza packet) { Message message = (Message) packet; Chat chat; diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/RosterEntry.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/RosterEntry.java index e3d237339..edac93801 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/RosterEntry.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/RosterEntry.java @@ -222,6 +222,7 @@ public final class RosterEntry extends Manager { connection().sendStanza(unsubscribed); } + @Override public String toString() { StringBuilder buf = new StringBuilder(); if (getName() != null) { @@ -249,6 +250,7 @@ public final class RosterEntry extends Manager { return getJid().hashCode(); } + @Override public boolean equals(Object object) { if (this == object) { return true; diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/packet/RosterPacket.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/packet/RosterPacket.java index 0dc36c41f..9d9ed1a3d 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/packet/RosterPacket.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/packet/RosterPacket.java @@ -270,6 +270,7 @@ public class RosterPacket extends IQ { groupNames.remove(groupName); } + @Override public XmlStringBuilder toXML() { XmlStringBuilder xml = new XmlStringBuilder(this); xml.attribute("jid", jid); diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java index 816d87890..7d63dafa3 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java @@ -185,9 +185,11 @@ public final class DirectoryRosterStore implements RosterStore { resetEntries(Collections.emptyList(), ""); } + @SuppressWarnings("DefaultCharset") private static Item readEntry(File file) { Reader reader; try { + // TODO: Should use Files.newBufferedReader() but it is not available on Android. reader = new FileReader(file); } catch (FileNotFoundException e) { LOGGER.log(Level.FINE, "Roster entry file not found", e); diff --git a/smack-im/src/test/java/org/jivesoftware/smack/chat/ChatConnectionTest.java b/smack-im/src/test/java/org/jivesoftware/smack/chat/ChatConnectionTest.java index 1c4d8a950..fcae16b0b 100644 --- a/smack-im/src/test/java/org/jivesoftware/smack/chat/ChatConnectionTest.java +++ b/smack-im/src/test/java/org/jivesoftware/smack/chat/ChatConnectionTest.java @@ -34,7 +34,7 @@ import org.junit.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.JidTestUtil; -@SuppressWarnings("deprecation") +@SuppressWarnings({"deprecation", "ReferenceEquality"}) public class ChatConnectionTest { private DummyConnection dc; @@ -347,7 +347,7 @@ public class ChatConnectionTest { waitListener.waitAndReset(); } - class TestChatManagerListener extends WaitForPacketListener implements ChatManagerListener { + static class TestChatManagerListener extends WaitForPacketListener implements ChatManagerListener { private Chat newChat; private ChatMessageListener listener; @@ -372,7 +372,7 @@ public class ChatConnectionTest { } } - private class TestChatServer extends Thread { + private static class TestChatServer extends Thread { private Stanza chatPacket; private DummyConnection con; diff --git a/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java b/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java index 10ffd1c3d..fe3e87c8b 100644 --- a/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java +++ b/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java @@ -145,6 +145,7 @@ public class RosterTest extends InitSmackIm { // Adding the new roster item final RosterUpdateResponder serverSimulator = new RosterUpdateResponder() { + @Override void verifyUpdateRequest(final RosterPacket updateRequest) { final Item item = updateRequest.getRosterItems().iterator().next(); assertEquals("The provided JID doesn't match the requested!", @@ -216,6 +217,7 @@ public class RosterTest extends InitSmackIm { // Updating the roster item final RosterUpdateResponder serverSimulator = new RosterUpdateResponder() { + @Override void verifyUpdateRequest(final RosterPacket updateRequest) { final Item item = updateRequest.getRosterItems().iterator().next(); assertEquals("The provided JID doesn't match the requested!", @@ -289,6 +291,7 @@ public class RosterTest extends InitSmackIm { // Delete a roster item final RosterUpdateResponder serverSimulator = new RosterUpdateResponder() { + @Override void verifyUpdateRequest(final RosterPacket updateRequest) { final Item item = updateRequest.getRosterItems().iterator().next(); assertEquals("The provided JID doesn't match the requested!", @@ -410,6 +413,7 @@ public class RosterTest extends InitSmackIm { // Adding the new roster item final RosterUpdateResponder serverSimulator = new RosterUpdateResponder() { + @Override void verifyUpdateRequest(final RosterPacket updateRequest) { final Item item = updateRequest.getRosterItems().iterator().next(); assertSame("The provided JID doesn't match the requested!", @@ -656,6 +660,7 @@ public class RosterTest extends InitSmackIm { */ abstract void verifyUpdateRequest(final RosterPacket updateRequest); + @Override public void run() { try { while (true) { @@ -712,21 +717,25 @@ public class RosterTest extends InitSmackIm { private final List addressesDeleted = new CopyOnWriteArrayList<>(); private final List addressesUpdated = new CopyOnWriteArrayList<>(); + @Override public synchronized void entriesAdded(Collection addresses) { addressesAdded.addAll(addresses); reportInvoked(); } + @Override public synchronized void entriesDeleted(Collection addresses) { addressesDeleted.addAll(addresses); reportInvoked(); } + @Override public synchronized void entriesUpdated(Collection addresses) { addressesUpdated.addAll(addresses); reportInvoked(); } + @Override public void presenceChanged(Presence presence) { reportInvoked(); } @@ -794,6 +803,7 @@ public class RosterTest extends InitSmackIm { /** * Reset the lists of added, deleted or updated items. */ + @Override public synchronized void reset() { super.reset(); addressesAdded.clear(); diff --git a/smack-im/src/test/java/org/jivesoftware/smack/roster/SubscriptionPreApprovalTest.java b/smack-im/src/test/java/org/jivesoftware/smack/roster/SubscriptionPreApprovalTest.java index 634a7def8..176d42463 100644 --- a/smack-im/src/test/java/org/jivesoftware/smack/roster/SubscriptionPreApprovalTest.java +++ b/smack-im/src/test/java/org/jivesoftware/smack/roster/SubscriptionPreApprovalTest.java @@ -155,6 +155,7 @@ public class SubscriptionPreApprovalTest extends InitSmackIm { */ abstract void verifyPreApprovalRequest(final Presence preApproval); + @Override public void run() { try { while (true) { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferIntegrationTest.java index 59d527230..dd54a6a84 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferIntegrationTest.java @@ -20,6 +20,7 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.UnsupportedEncodingException; import java.util.Arrays; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; @@ -43,7 +44,16 @@ public class FileTransferIntegrationTest extends AbstractSmackIntegrationTest { ftManagerTwo = FileTransferManager.getInstanceFor(conTwo); } - private static final byte[] dataToSend = StringUtils.insecureRandomString(1024 * 4 * 5).getBytes(); + private static final byte[] dataToSend; + + static { + try { + dataToSend = StringUtils.insecureRandomString(1024 * 4 * 5).getBytes(StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } + } @SmackIntegrationTest public void fileTransferTest() throws Exception { diff --git a/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/Base64.java b/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/Base64.java index f0744bbd1..c2e71e7d8 100644 --- a/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/Base64.java +++ b/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/Base64.java @@ -16,6 +16,7 @@ */ package org.jivesoftware.smack.util.stringencoder.java7; +import java.nio.charset.Charset; import java.util.logging.Level; import java.util.logging.Logger; @@ -514,7 +515,7 @@ public final class Base64 } // end try catch (java.io.UnsupportedEncodingException uue) { - return new String( baos.toByteArray() ); + return new String( baos.toByteArray(), Charset.defaultCharset() ); } // end catch } // end encode @@ -642,7 +643,7 @@ public final class Base64 } // end try catch (java.io.UnsupportedEncodingException uue) { - return new String( baos.toByteArray() ); + return new String( baos.toByteArray(), Charset.defaultCharset() ); } // end catch } // end if: compress @@ -687,7 +688,7 @@ public final class Base64 } // end try catch (java.io.UnsupportedEncodingException uue) { - return new String( outBuff, 0, e ); + return new String( outBuff, 0, e , Charset.defaultCharset()); } // end catch } // end else: don't compress @@ -887,7 +888,7 @@ public final class Base64 } // end try catch( java.io.UnsupportedEncodingException uee ) { - bytes = s.getBytes(); + bytes = s.getBytes( Charset.defaultCharset() ); } // end catch // @@ -1289,6 +1290,7 @@ public final class Base64 * @return next byte * @since 1.3 */ + @Override public int read() throws java.io.IOException { // Do we need to get data? @@ -1417,6 +1419,7 @@ public final class Base64 * @return bytes read into array or -1 if end of stream is encountered. * @since 1.3 */ + @Override public int read( byte[] dest, int off, int len ) throws java.io.IOException { int i; @@ -1530,6 +1533,7 @@ public final class Base64 * @param theByte the byte to write * @since 1.3 */ + @Override public void write(int theByte) throws java.io.IOException { // Encoding suspended? @@ -1591,6 +1595,7 @@ public final class Base64 * @param len max number of bytes to read into array * @since 1.3 */ + @Override public void write( byte[] theBytes, int off, int len ) throws java.io.IOException { // Encoding suspended? @@ -1636,6 +1641,7 @@ public final class Base64 * * @since 1.3 */ + @Override public void close() throws java.io.IOException { // 1. Ensure that pending characters are written diff --git a/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/Java7Base64UrlSafeEncoder.java b/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/Java7Base64UrlSafeEncoder.java index 3b9cfa451..0154511b9 100644 --- a/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/Java7Base64UrlSafeEncoder.java +++ b/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/Java7Base64UrlSafeEncoder.java @@ -16,6 +16,9 @@ */ package org.jivesoftware.smack.util.stringencoder.java7; +import java.io.UnsupportedEncodingException; + +import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.stringencoder.StringEncoder; @@ -44,12 +47,26 @@ public final class Java7Base64UrlSafeEncoder implements StringEncoder { return instance; } + @Override public String encode(String s) { - return Base64.encodeBytes(s.getBytes(), BASE64_ENCODER_FLAGS); + byte[] bytes; + try { + bytes = s.getBytes(StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } + return Base64.encodeBytes(bytes, BASE64_ENCODER_FLAGS); } + @Override public String decode(String s) { - return new String(Base64.decode(s, BASE64_ENCODER_FLAGS)); + try { + return new String(Base64.decode(s, BASE64_ENCODER_FLAGS), StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } } } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/ContentNegotiator.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/ContentNegotiator.java index 48f596875..9278c31b2 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/ContentNegotiator.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/ContentNegotiator.java @@ -60,6 +60,7 @@ public class ContentNegotiator extends JingleNegotiator { transportNegotiators = new ArrayList(); } + @Override public List dispatchIncomingPacket(IQ iq, String id) throws XMPPException, SmackException, InterruptedException { List responses = new ArrayList(); @@ -139,6 +140,7 @@ public class ContentNegotiator extends JingleNegotiator { /** * Called from above when starting a new session. */ + @Override protected void doStart() { // JingleContent result = new JingleContent(creator, name); @@ -154,6 +156,7 @@ public class ContentNegotiator extends JingleNegotiator { /** * Prepare to close the media manager. */ + @Override public void close() { destroyMediaNegotiator(); destroyTransportNegotiator(); @@ -324,6 +327,7 @@ public class ContentNegotiator extends JingleNegotiator { * The negotiator state for the ContentNegotiators is a special case. * It is a roll-up of the sub-negotiator states. */ + @Override public JingleNegotiatorState getNegotiatorState() { JingleNegotiatorState result = JingleNegotiatorState.PENDING; diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleActionEnum.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleActionEnum.java index 591ea6006..9c524a7c7 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleActionEnum.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleActionEnum.java @@ -36,7 +36,7 @@ public enum JingleActionEnum { SESSION_TERMINATE("session-terminate"), TRANSPORT_INFO("transport-info"); - private String actionCode; + private final String actionCode; private JingleActionEnum(String inActionCode) { actionCode = inActionCode; @@ -46,6 +46,7 @@ public enum JingleActionEnum { * Returns the String value for an Action. */ + @Override public String toString() { return actionCode; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleManager.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleManager.java index 402d12479..b8f727251 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleManager.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleManager.java @@ -219,15 +219,19 @@ public class JingleManager implements JingleSessionListener { Roster.getInstanceFor(connection).addRosterListener(new RosterListener() { + @Override public void entriesAdded(Collection addresses) { } + @Override public void entriesUpdated(Collection addresses) { } + @Override public void entriesDeleted(Collection addresses) { } + @Override public void presenceChanged(Presence presence) { if (!presence.isAvailable()) { Jid xmppAddress = presence.getFrom(); @@ -264,6 +268,7 @@ public class JingleManager implements JingleSessionListener { // The ServiceDiscoveryManager class should have been already // initialized XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { + @Override public void connectionCreated(XMPPConnection connection) { JingleManager.setServiceEnabled(connection, true); } @@ -411,9 +416,11 @@ public class JingleManager implements JingleSessionListener { } } + @Override public void sessionEstablished(PayloadType pt, TransportCandidate rc, TransportCandidate lc, JingleSession jingleSession) { } + @Override public void sessionDeclined(String reason, JingleSession jingleSession) { jingleSession.removeListener(this); jingleSessions.remove(jingleSession); @@ -421,21 +428,25 @@ public class JingleManager implements JingleSessionListener { LOGGER.severe("Declined:" + reason); } + @Override public void sessionRedirected(String redirection, JingleSession jingleSession) { jingleSession.removeListener(this); jingleSessions.remove(jingleSession); } + @Override public void sessionClosed(String reason, JingleSession jingleSession) { jingleSession.removeListener(this); jingleSessions.remove(jingleSession); } + @Override public void sessionClosedOnError(XMPPException e, JingleSession jingleSession) { jingleSession.removeListener(this); jingleSessions.remove(jingleSession); } + @Override public void sessionMediaReceived(JingleSession jingleSession, String participant) { // Do Nothing } @@ -447,6 +458,7 @@ public class JingleManager implements JingleSessionListener { private void initJingleSessionRequestListeners() { StanzaFilter initRequestFilter = new StanzaFilter() { // Return true if we accept this packet + @Override public boolean accept(Stanza pin) { if (pin instanceof IQ) { IQ iq = (IQ) pin; @@ -467,6 +479,7 @@ public class JingleManager implements JingleSessionListener { // Start a packet listener for session initiation requests connection.addAsyncStanzaListener(new StanzaListener() { + @Override public void processStanza(Stanza packet) { triggerSessionRequested((Jingle) packet); } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSession.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSession.java index 24cd429b2..46ea8f969 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSession.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSession.java @@ -158,6 +158,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList return initiator; } + @Override public XMPPConnection getConnection() { return connection; } @@ -350,6 +351,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList * @throws SmackException * @throws InterruptedException */ + @Override public List dispatchIncomingPacket(IQ iq, String id) throws XMPPException, SmackException, InterruptedException { List responses = new ArrayList(); IQ response = null; @@ -534,6 +536,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList * * @see java.lang.Object#hashCode() */ + @Override public int hashCode() { return Jingle.getSessionHash(getSid(), getInitiator()); } @@ -543,6 +546,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList * * @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object obj) { if (this == obj) { return true; @@ -678,6 +682,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList LOGGER.fine("UpdatePacketListener"); packetListener = new StanzaListener() { + @Override public void processStanza(Stanza packet) { try { receivePacketAndRespond((IQ) packet); @@ -688,6 +693,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList }; packetFilter = new StanzaFilter() { + @Override public boolean accept(Stanza packet) { if (packet instanceof IQ) { @@ -803,9 +809,11 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList public void setupListeners() { JingleMediaListener jingleMediaListener = new JingleMediaListener() { + @Override public void mediaClosed(PayloadType cand) { } + @Override public void mediaEstablished(PayloadType pt) throws NotConnectedException, InterruptedException { if (isFullyEstablished()) { Jingle jout = new Jingle(JingleActionEnum.SESSION_ACCEPT); @@ -827,6 +835,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList JingleTransportListener jingleTransportListener = new JingleTransportListener() { + @Override public void transportEstablished(TransportCandidate local, TransportCandidate remote) throws NotConnectedException, InterruptedException { if (isFullyEstablished()) { // CHECKSTYLE:OFF @@ -855,9 +864,11 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList } } + @Override public void transportClosed(TransportCandidate cand) { } + @Override public void transportClosedOnError(XMPPException e) { } }; @@ -995,6 +1006,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList /** * Terminate negotiations. */ + @Override public void close() { if (isClosed()) return; @@ -1056,6 +1068,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList /** * Called when new Media is received. */ + @Override public void mediaReceived(String participant) { triggerMediaReceived(participant); } @@ -1131,6 +1144,7 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList //updatePacketListener(); } + @Override protected void doStart() { } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionState.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionState.java index 6b7c9d9cd..2d1408274 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionState.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionState.java @@ -61,6 +61,7 @@ public abstract class JingleSessionState { /** * For debugging just emit the short name of the class. */ + @Override public String toString() { return this.getClass().getSimpleName(); } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateActive.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateActive.java index 016eddb20..b2371281e 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateActive.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateActive.java @@ -48,16 +48,19 @@ public class JingleSessionStateActive extends JingleSessionState { return INSTANCE; } + @Override public void enter() { // TODO Auto-generated method stub } + @Override public void exit() { // TODO Auto-generated method stub } + @Override public IQ processJingle(JingleSession session, Jingle jingle, JingleActionEnum action) { IQ response = null; diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateEnded.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateEnded.java index caa138cb6..207d0069b 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateEnded.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateEnded.java @@ -49,12 +49,14 @@ public class JingleSessionStateEnded extends JingleSessionState { return INSTANCE; } + @Override public void enter() { LOGGER.fine("Session Ended"); LOGGER.fine("-------------------------------------------------------------------"); } + @Override public void exit() { // TODO Auto-generated method stub @@ -63,6 +65,7 @@ public class JingleSessionStateEnded extends JingleSessionState { /** * Pretty much nothing is valid for receiving once we've ended the session. */ + @Override public IQ processJingle(JingleSession session, Jingle jingle, JingleActionEnum action) { IQ response = null; diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStatePending.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStatePending.java index 0abe322e5..9d3cce1e3 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStatePending.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStatePending.java @@ -48,16 +48,19 @@ public class JingleSessionStatePending extends JingleSessionState { return INSTANCE; } + @Override public void enter() { // TODO Auto-generated method stub } + @Override public void exit() { // TODO Auto-generated method stub } + @Override public IQ processJingle(JingleSession session, Jingle jingle, JingleActionEnum action) { IQ response = null; diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateUnknown.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateUnknown.java index a69439dbf..f5fa1d2c8 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateUnknown.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSessionStateUnknown.java @@ -59,16 +59,19 @@ public class JingleSessionStateUnknown extends JingleSessionState { return INSTANCE; } + @Override public void enter() { // TODO Auto-generated method stub } + @Override public void exit() { // TODO Auto-generated method stub } + @Override public IQ processJingle(JingleSession session, Jingle jingle, JingleActionEnum action) throws SmackException, InterruptedException { IQ response = null; diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/ContentInfo.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/ContentInfo.java index 513de4ee6..2f0ceb9b9 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/ContentInfo.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/ContentInfo.java @@ -49,6 +49,7 @@ public abstract class ContentInfo { this.value = value; } + @Override public String toString() { return value; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/MediaNegotiator.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/MediaNegotiator.java index 8ea4cda4a..ec6447776 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/MediaNegotiator.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/MediaNegotiator.java @@ -105,6 +105,7 @@ public class MediaNegotiator extends JingleNegotiator { * @throws NotConnectedException * @throws InterruptedException */ + @Override public List dispatchIncomingPacket(IQ iq, String id) throws XMPPException, NotConnectedException, InterruptedException { List responses = new ArrayList(); IQ response = null; @@ -510,6 +511,7 @@ public class MediaNegotiator extends JingleNegotiator { /** * Called from above when starting a new session. */ + @Override protected void doStart() { } @@ -517,6 +519,7 @@ public class MediaNegotiator extends JingleNegotiator { /** * Terminate the jmf negotiator. */ + @Override public void close() { super.close(); triggerMediaClosed(getBestCommonAudioPt()); diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/PayloadType.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/PayloadType.java index c6301b3c3..bd1215006 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/PayloadType.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/media/PayloadType.java @@ -149,6 +149,7 @@ public class PayloadType { * * @see java.lang.Object#hashCode() */ + @Override public int hashCode() { final int PRIME = 31; int result = 1; @@ -163,6 +164,7 @@ public class PayloadType { * * @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object obj) { if (this == obj) { return true; @@ -333,6 +335,7 @@ public class PayloadType { * * @see java.lang.Object#hashCode() */ + @Override public int hashCode() { final int PRIME = 31; int result = super.hashCode(); @@ -345,6 +348,7 @@ public class PayloadType { * * @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object obj) { if (this == obj) { return true; diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/JMFInit.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/JMFInit.java index 5f9b00df8..43dd3a95b 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/JMFInit.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/JMFInit.java @@ -78,6 +78,7 @@ public class JMFInit extends Frame implements Runnable { */ } + @Override public void run() { detectDirectAudio(); detectS8DirectAudio(); @@ -108,7 +109,7 @@ public class JMFInit extends Frame implements Runnable { Class dsauto; try { dsauto = Class.forName("DirectSoundAuto"); - dsauto.newInstance(); + dsauto.getConstructor().newInstance(); message("Finished detecting DirectSound capturer"); } catch (ThreadDeath td) { @@ -121,7 +122,7 @@ public class JMFInit extends Frame implements Runnable { Class jsauto; try { jsauto = Class.forName("JavaSoundAuto"); - jsauto.newInstance(); + jsauto.getConstructor().newInstance(); message("Finished detecting javasound capturer"); } catch (ThreadDeath td) { @@ -194,7 +195,7 @@ public class JMFInit extends Frame implements Runnable { // Find the renderer class and instantiate it. cls = Class.forName(dar); - Renderer rend = (Renderer) cls.newInstance(); + Renderer rend = (Renderer) cls.getConstructor().newInstance(); try { // Set the format and open the device AudioFormat af = new AudioFormat(AudioFormat.LINEAR, 44100, 16, @@ -239,7 +240,7 @@ public class JMFInit extends Frame implements Runnable { // Find the renderer class and instantiate it. cls = Class.forName(dar); - Renderer rend = (Renderer) cls.newInstance(); + Renderer rend = (Renderer) cls.getConstructor().newInstance(); if (rend instanceof ExclusiveUse && !((ExclusiveUse) rend).isExclusive()) { diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioChannel.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioChannel.java index 9779e9315..dd2932986 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioChannel.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioChannel.java @@ -482,6 +482,7 @@ public class AudioChannel { class StateListener implements ControllerListener { + @Override public void controllerUpdate(ControllerEvent ce) { // If there was an error during configure or diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioMediaSession.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioMediaSession.java index ee785a4cc..262b32936 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioMediaSession.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioMediaSession.java @@ -61,6 +61,7 @@ public class AudioMediaSession extends JingleMediaSession { /** * Initialize the Audio Channel to make it able to send and receive audio. */ + @Override public void initialize() { String ip; @@ -90,6 +91,7 @@ public class AudioMediaSession extends JingleMediaSession { /** * Starts transmission and for NAT Traversal reasons start receiving also. */ + @Override public void startTrasmit() { audioChannel.start(); } @@ -100,6 +102,7 @@ public class AudioMediaSession extends JingleMediaSession { * * @param active active state */ + @Override public void setTrasmit(boolean active) { audioChannel.setTrasmit(active); } @@ -107,6 +110,7 @@ public class AudioMediaSession extends JingleMediaSession { /** * For NAT Reasons this method does nothing. Use startTransmit() to start transmit and receive jmf */ + @Override public void startReceive() { // Do nothing } @@ -114,6 +118,7 @@ public class AudioMediaSession extends JingleMediaSession { /** * Stops transmission and for NAT Traversal reasons stop receiving also. */ + @Override public void stopTrasmit() { if (audioChannel != null) audioChannel.stop(); @@ -122,6 +127,7 @@ public class AudioMediaSession extends JingleMediaSession { /** * For NAT Reasons this method does nothing. Use startTransmit() to start transmit and receive jmf */ + @Override public void stopReceive() { // Do nothing } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioReceiver.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioReceiver.java index 6262bc75e..0f26d5463 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioReceiver.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/AudioReceiver.java @@ -62,6 +62,7 @@ public class AudioReceiver implements ReceiveStreamListener, SessionListener, /** * JingleSessionListener. */ + @Override public synchronized void update(SessionEvent evt) { if (evt instanceof NewParticipantEvent) { Participant p = ((NewParticipantEvent) evt).getParticipant(); @@ -72,6 +73,7 @@ public class AudioReceiver implements ReceiveStreamListener, SessionListener, /** * ReceiveStreamListener. */ + @Override public synchronized void update(ReceiveStreamEvent evt) { Participant participant = evt.getParticipant(); // could be null. @@ -147,6 +149,7 @@ public class AudioReceiver implements ReceiveStreamListener, SessionListener, /** * ControllerListener for the Players. */ + @Override public synchronized void controllerUpdate(ControllerEvent ce) { Player p = (Player) ce.getSourceController(); diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/JmfMediaManager.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/JmfMediaManager.java index c3c5f88b7..00f2bb150 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/JmfMediaManager.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jmf/JmfMediaManager.java @@ -75,6 +75,7 @@ public class JmfMediaManager extends JingleMediaManager { * @param local local Candidate * @return JingleMediaSession */ + @Override public JingleMediaSession createMediaSession(final PayloadType payloadType, final TransportCandidate remote, final TransportCandidate local, final JingleSession jingleSession) { return new AudioMediaSession(payloadType, remote, local, mediaLocator, jingleSession); } @@ -93,6 +94,7 @@ public class JmfMediaManager extends JingleMediaManager { * * @return The Payload List */ + @Override public List getPayloads() { return payloads; } @@ -160,6 +162,7 @@ public class JmfMediaManager extends JingleMediaManager { // @TODO Implement Linux Pre-Install } + @Override public String getName() { return MEDIA_NAME; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jspeex/AudioMediaSession.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jspeex/AudioMediaSession.java index 69f2fd52b..4cc76268e 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jspeex/AudioMediaSession.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jspeex/AudioMediaSession.java @@ -112,6 +112,7 @@ public class AudioMediaSession extends JingleMediaSession implements MediaSessio /** * Initialize the Audio Channel to make it able to send and receive audio. */ + @Override public void initialize() { String ip; @@ -155,6 +156,7 @@ public class AudioMediaSession extends JingleMediaSession implements MediaSessio /** * Starts transmission and for NAT Traversal reasons start receiving also. */ + @Override public void startTrasmit() { try { LOGGER.fine("start"); @@ -172,6 +174,7 @@ public class AudioMediaSession extends JingleMediaSession implements MediaSessio * * @param active active state */ + @Override public void setTrasmit(boolean active) { // Do nothing } @@ -179,6 +182,7 @@ public class AudioMediaSession extends JingleMediaSession implements MediaSessio /** * For NAT Reasons this method does nothing. Use startTransmit() to start transmit and receive jmf */ + @Override public void startReceive() { // Do nothing } @@ -186,6 +190,7 @@ public class AudioMediaSession extends JingleMediaSession implements MediaSessio /** * Stops transmission and for NAT Traversal reasons stop receiving also. */ + @Override public void stopTrasmit() { if (mediaSession != null) mediaSession.close(); @@ -194,16 +199,20 @@ public class AudioMediaSession extends JingleMediaSession implements MediaSessio /** * For NAT Reasons this method does nothing. Use startTransmit() to start transmit and receive jmf */ + @Override public void stopReceive() { // Do nothing } + @Override public void newStreamIdentified(StreamPlayer streamPlayer) { } + @Override public void senderReportReceived(SenderReport report) { } + @Override public void streamClosed(StreamPlayer stream, boolean timeout) { } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jspeex/SpeexMediaManager.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jspeex/SpeexMediaManager.java index c4a44a365..145382822 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jspeex/SpeexMediaManager.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/jspeex/SpeexMediaManager.java @@ -60,6 +60,7 @@ public class SpeexMediaManager extends JingleMediaManager { * @param local local Candidate * @return JingleMediaSession */ + @Override public JingleMediaSession createMediaSession(PayloadType payloadType, final TransportCandidate remote, final TransportCandidate local, final JingleSession jingleSession) { return new AudioMediaSession(payloadType, remote, local, null,null); } @@ -76,6 +77,7 @@ public class SpeexMediaManager extends JingleMediaManager { * * @return The Payload List */ + @Override public List getPayloads() { return payloads; } @@ -125,6 +127,7 @@ public class SpeexMediaManager extends JingleMediaManager { // @TODO Implement Linux Pre-Install } + @Override public String getName() { return MEDIA_NAME; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/multi/MultiMediaManager.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/multi/MultiMediaManager.java index d8e094e7b..2a93f85c2 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/multi/MultiMediaManager.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/multi/MultiMediaManager.java @@ -58,6 +58,7 @@ public class MultiMediaManager extends JingleMediaManager { * * @return The Payload List */ + @Override public List getPayloads() { List list = new ArrayList(); if (preferredPayloadType != null) list.add(preferredPayloadType); @@ -78,6 +79,7 @@ public class MultiMediaManager extends JingleMediaManager { * @param local local Candidate * @return JingleMediaSession JingleMediaSession */ + @Override public JingleMediaSession createMediaSession(PayloadType payloadType, final TransportCandidate remote, final TransportCandidate local, final JingleSession jingleSession) { for (JingleMediaManager manager : managers) { if (manager.getPayloads().contains(payloadType)) { @@ -87,6 +89,7 @@ public class MultiMediaManager extends JingleMediaManager { return null; } + @Override public PayloadType getPreferredPayloadType() { if (preferredPayloadType != null) return preferredPayloadType; return super.getPreferredPayloadType(); @@ -96,6 +99,7 @@ public class MultiMediaManager extends JingleMediaManager { this.preferredPayloadType = preferredPayloadType; } + @Override public String getName() { return MEDIA_NAME; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/ScreenShareMediaManager.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/ScreenShareMediaManager.java index 8a5efa4b2..34b030fe1 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/ScreenShareMediaManager.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/ScreenShareMediaManager.java @@ -61,6 +61,7 @@ public class ScreenShareMediaManager extends JingleMediaManager { * * @return The Payload List */ + @Override public List getPayloads() { return payloads; } @@ -73,6 +74,7 @@ public class ScreenShareMediaManager extends JingleMediaManager { * @param local local Candidate * @return JingleMediaSession JingleMediaSession */ + @Override public JingleMediaSession createMediaSession(PayloadType payloadType, final TransportCandidate remote, final TransportCandidate local, final JingleSession jingleSession) { ScreenShareSession session = null; session = new ScreenShareSession(payloadType, remote, local, "Screen", jingleSession); @@ -85,6 +87,7 @@ public class ScreenShareMediaManager extends JingleMediaManager { return session; } + @Override public PayloadType getPreferredPayloadType() { return super.getPreferredPayloadType(); } @@ -105,6 +108,7 @@ public class ScreenShareMediaManager extends JingleMediaManager { this.encoder = encoder; } + @Override public String getName() { return MEDIA_NAME; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/ScreenShareSession.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/ScreenShareSession.java index 48c3d72c7..f7bb39069 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/ScreenShareSession.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/ScreenShareSession.java @@ -74,6 +74,7 @@ public class ScreenShareSession extends JingleMediaSession { /** * Initialize the screen share channels. */ + @Override public void initialize() { JingleSession session = getJingleSession(); @@ -97,6 +98,7 @@ public class ScreenShareSession extends JingleMediaSession { window.setSize(600, 600); window.addWindowListener(new WindowAdapter() { + @Override public void windowClosed(WindowEvent e) { receiver.stop(); } @@ -120,6 +122,7 @@ public class ScreenShareSession extends JingleMediaSession { /** * Starts transmission and for NAT Traversal reasons start receiving also. */ + @Override public void startTrasmit() { new Thread(transmitter).start(); } @@ -130,6 +133,7 @@ public class ScreenShareSession extends JingleMediaSession { * * @param active active state */ + @Override public void setTrasmit(boolean active) { transmitter.setTransmit(true); } @@ -137,6 +141,7 @@ public class ScreenShareSession extends JingleMediaSession { /** * For NAT Reasons this method does nothing. Use startTransmit() to start transmit and receive jmf */ + @Override public void startReceive() { // Do nothing } @@ -144,6 +149,7 @@ public class ScreenShareSession extends JingleMediaSession { /** * Stops transmission and for NAT Traversal reasons stop receiving also. */ + @Override public void stopTrasmit() { if (transmitter != null) { transmitter.stop(); @@ -153,6 +159,7 @@ public class ScreenShareSession extends JingleMediaSession { /** * For NAT Reasons this method does nothing. Use startTransmit() to start transmit and receive jmf */ + @Override public void stopReceive() { if (receiver != null) { receiver.stop(); diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/AbstractBufferedImageOp.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/AbstractBufferedImageOp.java index 840022717..9edb92662 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/AbstractBufferedImageOp.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/AbstractBufferedImageOp.java @@ -29,16 +29,19 @@ import java.awt.image.ColorModel; */ public abstract class AbstractBufferedImageOp implements BufferedImageOp, Cloneable { + @Override public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel dstCM) { if (dstCM == null) dstCM = src.getColorModel(); return new BufferedImage(dstCM, dstCM.createCompatibleWritableRaster(src.getWidth(), src.getHeight()), dstCM.isAlphaPremultiplied(), null); } + @Override public Rectangle2D getBounds2D(BufferedImage src) { return new Rectangle(0, 0, src.getWidth(), src.getHeight()); } + @Override public Point2D getPoint2D(Point2D srcPt, Point2D dstPt) { if (dstPt == null) dstPt = new Point2D.Double(); @@ -46,6 +49,7 @@ public abstract class AbstractBufferedImageOp implements BufferedImageOp, Clonea return dstPt; } + @Override public RenderingHints getRenderingHints() { return null; } @@ -88,6 +92,7 @@ public abstract class AbstractBufferedImageOp implements BufferedImageOp, Clonea image.setRGB(x, y, width, height, pixels, 0, width); } + @Override public Object clone() { try { return super.clone(); diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/DefaultDecoder.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/DefaultDecoder.java index 0495f54f4..86aad00a8 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/DefaultDecoder.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/DefaultDecoder.java @@ -26,6 +26,7 @@ import java.io.IOException; */ public class DefaultDecoder implements ImageDecoder { + @Override public BufferedImage decode(ByteArrayInputStream stream) throws IOException { return ImageIO.read(stream); } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/DefaultEncoder.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/DefaultEncoder.java index 79f387361..ff2986cc6 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/DefaultEncoder.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/DefaultEncoder.java @@ -30,6 +30,7 @@ import java.util.logging.Logger; public class DefaultEncoder implements ImageEncoder{ private static final Logger LOGGER = Logger.getLogger(DefaultEncoder.class.getName()); + @Override public ByteArrayOutputStream encode(BufferedImage bufferedImage) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/ImageReceiver.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/ImageReceiver.java index 8ed52515c..2f1a8564e 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/ImageReceiver.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/ImageReceiver.java @@ -61,6 +61,7 @@ public class ImageReceiver extends Canvas { this.decoder = new DefaultDecoder(); new Thread(new Runnable() { + @Override public void run() { byte[] buf = new byte[1024]; DatagramPacket p = new DatagramPacket(buf, 1024); @@ -90,6 +91,7 @@ public class ImageReceiver extends Canvas { }).start(); new Thread(new Runnable() { + @Override public void run() { byte[] buf = new byte[1024]; DatagramPacket p = new DatagramPacket(buf, 1024); @@ -148,6 +150,7 @@ public class ImageReceiver extends Canvas { this.getGraphics().drawImage(bufferedImage, tileWidth * x, tileWidth * y, this); } + @Override public void paint(Graphics g) { for (int i = 0; i < tiles.length; i++) { for (int j = 0; j < tiles[0].length; j++) { diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/ImageTransmitter.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/ImageTransmitter.java index f0540b07c..a17be8df9 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/ImageTransmitter.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/ImageTransmitter.java @@ -178,6 +178,7 @@ public class ImageTransmitter implements Runnable { } } + @Override public void run() { start(); } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/OctTreeQuantizer.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/OctTreeQuantizer.java index ec2c868d7..922700a79 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/OctTreeQuantizer.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/OctTreeQuantizer.java @@ -39,7 +39,7 @@ public class OctTreeQuantizer implements Quantizer { /** * An Octtree node. */ - class OctTreeNode { + static class OctTreeNode { int children; int level; OctTreeNode parent; @@ -87,6 +87,7 @@ public class OctTreeQuantizer implements Quantizer { * Initialize the quantizer. This should be called before adding any pixels. * @param numColors the number of colors we're quantizing to. */ + @Override public void setup(int numColors) { maximumColors = numColors; reduceColors = Math.max(512, numColors * 2); @@ -98,6 +99,7 @@ public class OctTreeQuantizer implements Quantizer { * @param offset the offset into the array * @param count the count of pixels */ + @Override public void addPixels(int[] pixels, int offset, int count) { for (int i = 0; i < count; i++) { insertColor(pixels[i+offset]); @@ -111,6 +113,7 @@ public class OctTreeQuantizer implements Quantizer { * @param rgb the color * @return the index */ + @Override public int getIndexForColor(int rgb) { int red = (rgb >> 16) & 0xff; int green = (rgb >> 8) & 0xff; @@ -238,6 +241,7 @@ public class OctTreeQuantizer implements Quantizer { * Build the color table. * @return the color table */ + @Override public int[] buildColorTable() { int[] table = new int[colors]; buildColorTable(root, table, 0); diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/QuantizeFilter.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/QuantizeFilter.java index 4fa3bfcf5..7153538fe 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/QuantizeFilter.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/QuantizeFilter.java @@ -163,6 +163,7 @@ public class QuantizeFilter extends WholeImageFilter { } } + @Override protected int[] filterPixels(int width, int height, int[] inPixels, Rectangle transformedSpace) { int[] outPixels = new int[width*height]; @@ -171,6 +172,7 @@ public class QuantizeFilter extends WholeImageFilter { return outPixels; } + @Override public String toString() { return "Colors/Quantize..."; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/WholeImageFilter.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/WholeImageFilter.java index d150f2527..2a435062d 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/WholeImageFilter.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/sshare/api/WholeImageFilter.java @@ -43,6 +43,7 @@ public abstract class WholeImageFilter extends AbstractBufferedImageOp { public WholeImageFilter() { } + @Override public BufferedImage filter(BufferedImage src, BufferedImage dst) { int width = src.getWidth(); int height = src.getHeight(); diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/test/TestMediaManager.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/test/TestMediaManager.java index 4fe57ff33..dfcf47066 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/test/TestMediaManager.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/test/TestMediaManager.java @@ -49,6 +49,7 @@ public class TestMediaManager extends JingleMediaManager { * * @return The Payload List */ + @Override public List getPayloads() { return payloads; } @@ -65,6 +66,7 @@ public class TestMediaManager extends JingleMediaManager { * @param local local Candidate * @return JingleMediaSession JingleMediaSession */ + @Override public JingleMediaSession createMediaSession(PayloadType payloadType, final TransportCandidate remote, final TransportCandidate local, final JingleSession jingleSession) { TestMediaSession session = null; @@ -74,6 +76,7 @@ public class TestMediaManager extends JingleMediaManager { return session; } + @Override public PayloadType getPreferredPayloadType() { if (preferredPayloadType != null) return preferredPayloadType; @@ -84,6 +87,7 @@ public class TestMediaManager extends JingleMediaManager { this.preferredPayloadType = preferredPayloadType; } + @Override public String getName() { return MEDIA_NAME; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/test/TestMediaSession.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/test/TestMediaSession.java index 8e9cc30a9..5f12b71b4 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/test/TestMediaSession.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/mediaimpl/test/TestMediaSession.java @@ -45,6 +45,7 @@ public class TestMediaSession extends JingleMediaSession { /** * Initialize the screen share channels. */ + @Override public void initialize() { } @@ -52,6 +53,7 @@ public class TestMediaSession extends JingleMediaSession { /** * Starts transmission and for NAT Traversal reasons start receiving also. */ + @Override public void startTrasmit() { } @@ -62,6 +64,7 @@ public class TestMediaSession extends JingleMediaSession { * * @param active active state */ + @Override public void setTrasmit(boolean active) { } @@ -69,6 +72,7 @@ public class TestMediaSession extends JingleMediaSession { /** * For NAT Reasons this method does nothing. Use startTransmit() to start transmit and receive jmf */ + @Override public void startReceive() { // Do nothing } @@ -76,6 +80,7 @@ public class TestMediaSession extends JingleMediaSession { /** * Stops transmission and for NAT Traversal reasons stop receiving also. */ + @Override public void stopTrasmit() { } @@ -83,6 +88,7 @@ public class TestMediaSession extends JingleMediaSession { /** * For NAT Reasons this method does nothing. Use startTransmit() to start transmit and receive jmf */ + @Override public void stopReceive() { } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BasicResolver.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BasicResolver.java index fc3fbf968..53cf0d765 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BasicResolver.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BasicResolver.java @@ -50,6 +50,7 @@ public class BasicResolver extends TransportResolver { * @throws NotConnectedException * @throws InterruptedException */ + @Override public synchronized void resolve(JingleSession session) throws XMPPException, NotConnectedException, InterruptedException { setResolveInit(); @@ -115,10 +116,12 @@ public class BasicResolver extends TransportResolver { } + @Override public void initialize() throws XMPPException { setInitialized(); } + @Override public void cancel() throws XMPPException { // Nothing to do here } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BasicTransportManager.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BasicTransportManager.java index cf4e7dcda..40435b57e 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BasicTransportManager.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BasicTransportManager.java @@ -24,6 +24,7 @@ import org.jivesoftware.smackx.jingleold.JingleSession; */ public class BasicTransportManager extends JingleTransportManager{ + @Override protected TransportResolver createResolver(JingleSession session) { return new BasicResolver(); } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BridgedResolver.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BridgedResolver.java index 8b38f9d0e..a6f2d8f69 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BridgedResolver.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BridgedResolver.java @@ -65,6 +65,7 @@ public class BridgedResolver extends TransportResolver { * @throws NotConnectedException * @throws InterruptedException */ + @Override public synchronized void resolve(JingleSession session) throws XMPPException, NotConnectedException, InterruptedException { setResolveInit(); @@ -102,6 +103,7 @@ public class BridgedResolver extends TransportResolver { setResolveEnd(); } + @Override public void initialize() throws SmackException, XMPPErrorException, InterruptedException { clearCandidates(); @@ -114,6 +116,7 @@ public class BridgedResolver extends TransportResolver { } + @Override public void cancel() throws XMPPException { // Nothing to do here } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BridgedTransportManager.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BridgedTransportManager.java index 8769f49c1..020563579 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BridgedTransportManager.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/BridgedTransportManager.java @@ -46,6 +46,7 @@ public class BridgedTransportManager extends JingleTransportManager implements J * @param session correspondent Jingle Session * @return resolver */ + @Override protected TransportResolver createResolver(JingleSession session) { BridgedResolver bridgedResolver = new BridgedResolver(this.xmppConnection); return bridgedResolver; @@ -53,28 +54,35 @@ public class BridgedTransportManager extends JingleTransportManager implements J // Implement a Session Listener to relay candidates after establishment + @Override public void sessionEstablished(PayloadType pt, TransportCandidate rc, TransportCandidate lc, JingleSession jingleSession) throws NotConnectedException, InterruptedException { RTPBridge rtpBridge = RTPBridge.relaySession(lc.getConnection(), lc.getSessionId(), lc.getPassword(), rc, lc); } + @Override public void sessionDeclined(String reason, JingleSession jingleSession) { } + @Override public void sessionRedirected(String redirection, JingleSession jingleSession) { } + @Override public void sessionClosed(String reason, JingleSession jingleSession) { } + @Override public void sessionClosedOnError(XMPPException e, JingleSession jingleSession) { } + @Override public void sessionMediaReceived(JingleSession jingleSession, String participant) { // Do Nothing } // Session Created + @Override public void sessionCreated(JingleSession jingleSession) { jingleSession.addListener(this); } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/FixedResolver.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/FixedResolver.java index 9c6867fd5..e525e3138 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/FixedResolver.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/FixedResolver.java @@ -54,6 +54,7 @@ public class FixedResolver extends TransportResolver { * @throws NotConnectedException * @throws InterruptedException */ + @Override public synchronized void resolve(JingleSession session) throws XMPPException, NotConnectedException, InterruptedException { if (!isResolving()) { setResolveInit(); @@ -76,10 +77,12 @@ public class FixedResolver extends TransportResolver { * * @throws XMPPException */ + @Override public void initialize() throws XMPPException { setInitialized(); } + @Override public void cancel() throws XMPPException { // Nothing to do here } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/FixedTransportManager.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/FixedTransportManager.java index c7bb5c625..11381af64 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/FixedTransportManager.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/FixedTransportManager.java @@ -34,29 +34,37 @@ public class FixedTransportManager extends JingleTransportManager implements Jin resolver = inResolver; } + @Override protected TransportResolver createResolver(JingleSession session) { return resolver; } + @Override public void sessionEstablished(PayloadType pt, TransportCandidate rc, TransportCandidate lc, JingleSession jingleSession) { } + @Override public void sessionDeclined(String reason, JingleSession jingleSession) { } + @Override public void sessionRedirected(String redirection, JingleSession jingleSession) { } + @Override public void sessionClosed(String reason, JingleSession jingleSession) { } + @Override public void sessionClosedOnError(XMPPException e, JingleSession jingleSession) { } + @Override public void sessionMediaReceived(JingleSession jingleSession, String participant) { // Do Nothing } + @Override public void sessionCreated(JingleSession jingleSession) { jingleSession.addListener(this); } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/HttpServer.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/HttpServer.java index e040d92a2..8bafc18cb 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/HttpServer.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/HttpServer.java @@ -27,6 +27,8 @@ import java.util.StringTokenizer; import java.util.logging.Level; import java.util.logging.Logger; +import org.jivesoftware.smack.util.StringUtils; + /** * A very Simple HTTP Server. */ @@ -73,7 +75,7 @@ public class HttpServer { HttpServer httpServer = new HttpServer(Integer.parseInt(args[0])); } - class HttpRequestHandler implements Runnable { + static class HttpRequestHandler implements Runnable { final static String CRLF = "\r\n"; Socket socket; @@ -85,9 +87,10 @@ public class HttpServer { this.socket = socket; this.input = socket.getInputStream(); this.output = socket.getOutputStream(); - this.br = new BufferedReader(new InputStreamReader(socket.getInputStream())); + this.br = new BufferedReader(new InputStreamReader(socket.getInputStream(), StringUtils.UTF8)); } + @Override public void run() { try { processRequest(); @@ -115,19 +118,19 @@ public class HttpServer { String contentLengthLine; String statusLine = "HTTP/1.0 200 OK" + CRLF; contentLengthLine = "Content-Length: " - + (new Integer(entityBody.length())).toString() + CRLF; + + entityBody.length() + CRLF; contentTypeLine = "text/html"; - output.write(statusLine.getBytes()); + output.write(statusLine.getBytes(StringUtils.UTF8)); - output.write(serverLine.getBytes()); + output.write(serverLine.getBytes(StringUtils.UTF8)); - output.write(contentTypeLine.getBytes()); - output.write(contentLengthLine.getBytes()); + output.write(contentTypeLine.getBytes(StringUtils.UTF8)); + output.write(contentLengthLine.getBytes(StringUtils.UTF8)); - output.write(CRLF.getBytes()); + output.write(CRLF.getBytes(StringUtils.UTF8)); - output.write(entityBody.getBytes()); + output.write(entityBody.getBytes(StringUtils.UTF8)); } } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/ICECandidate.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/ICECandidate.java index f4f670fcd..58b65413c 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/ICECandidate.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/ICECandidate.java @@ -219,6 +219,7 @@ public class ICECandidate extends TransportCandidate implements Comparable * ICE Candidate can check connectivity using UDP echo Test. */ + @Override public void check(final List localCandidates) { //TODO candidate is being checked trigger //candidatesChecking.add(cand); @@ -226,6 +227,7 @@ public class ICECandidate extends TransportCandidate implements Comparable dispatchIncomingPacket(IQ iq, String id) throws XMPPException, SmackException, InterruptedException { List responses = new ArrayList(); IQ response = null; @@ -838,6 +848,7 @@ public abstract class TransportNegotiator extends JingleNegotiator { /** * Get a TransportNegotiator instance. */ + @Override public org.jivesoftware.smackx.jingleold.packet.JingleTransport getJingleTransport(TransportCandidate bestRemote) { org.jivesoftware.smackx.jingleold.packet.JingleTransport.RawUdp jt = new org.jivesoftware.smackx.jingleold.packet.JingleTransport.RawUdp(); jt.addCandidate(new org.jivesoftware.smackx.jingleold.packet.JingleTransport.RawUdp.Candidate(bestRemote)); @@ -850,6 +861,7 @@ public abstract class TransportNegotiator extends JingleNegotiator { * * @return the bestRemoteCandidate */ + @Override public TransportCandidate getBestRemoteCandidate() { // Hopefully, we only have one validRemoteCandidate ArrayList cands = getValidRemoteCandidatesList(); @@ -865,6 +877,7 @@ public abstract class TransportNegotiator extends JingleNegotiator { /** * Return true for fixed candidates. */ + @Override public boolean acceptableTransportCandidate(TransportCandidate tc, List localCandidates) { return tc instanceof TransportCandidate.Fixed; } @@ -892,6 +905,7 @@ public abstract class TransportNegotiator extends JingleNegotiator { * * @param candidate */ + @Override public org.jivesoftware.smackx.jingleold.packet.JingleTransport getJingleTransport(TransportCandidate candidate) { org.jivesoftware.smackx.jingleold.packet.JingleTransport.Ice jt = new org.jivesoftware.smackx.jingleold.packet.JingleTransport.Ice(); jt.addCandidate(new org.jivesoftware.smackx.jingleold.packet.JingleTransport.Ice.Candidate(candidate)); @@ -903,6 +917,7 @@ public abstract class TransportNegotiator extends JingleNegotiator { * * @return the bestRemoteCandidate */ + @Override public TransportCandidate getBestRemoteCandidate() { ICECandidate result = null; @@ -922,7 +937,7 @@ public abstract class TransportNegotiator extends JingleNegotiator { result = chose; } - if (result != null && result.getType().equals("relay")) + if (result != null && result.getType().equals(Type.relay)) LOGGER.fine("Relay Type"); return result; @@ -931,6 +946,7 @@ public abstract class TransportNegotiator extends JingleNegotiator { /** * Return true for ICE candidates. */ + @Override public boolean acceptableTransportCandidate(TransportCandidate tc, List localCandidates) { return tc instanceof ICECandidate; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/Jingle.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/Jingle.java index 7dfe93a3e..353f91ffa 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/Jingle.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/Jingle.java @@ -70,7 +70,7 @@ public class Jingle extends IQ { this(); if (contents != null) { - contents.addAll(contents); + this.contents.addAll(contents); } setContentInfo(mi); @@ -343,6 +343,7 @@ public class Jingle extends IQ { * * @return the XML string */ + @Override protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder buf) { if (getInitiator() != null) { buf.append(" initiator=\"").append(getInitiator()).append('"'); diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContent.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContent.java index 9f0380139..875eae08e 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContent.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContent.java @@ -62,6 +62,7 @@ public class JingleContent implements ExtensionElement { * * @return the XML element name of the element. */ + @Override public String getElementName() { return NODENAME; } @@ -71,6 +72,7 @@ public class JingleContent implements ExtensionElement { * * @return The namespace */ + @Override public String getNamespace() { // There is no namespace for return ""; @@ -157,6 +159,7 @@ public class JingleContent implements ExtensionElement { * * @return a string with the XML representation */ + @Override public String toXML() { StringBuilder buf = new StringBuilder(); diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContentDescription.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContentDescription.java index 554a11d7a..8d94447cd 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContentDescription.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContentDescription.java @@ -51,6 +51,7 @@ public abstract class JingleContentDescription implements ExtensionElement { * * @return the XML element name of the element. */ + @Override public String getElementName() { return NODENAME; } @@ -60,6 +61,7 @@ public abstract class JingleContentDescription implements ExtensionElement { * * @return The namespace */ + @Override public abstract String getNamespace(); /** @@ -144,6 +146,7 @@ public abstract class JingleContentDescription implements ExtensionElement { * * @return a string with the XML representation */ + @Override public String toXML() { StringBuilder buf = new StringBuilder(); @@ -183,6 +186,7 @@ public abstract class JingleContentDescription implements ExtensionElement { addJinglePayloadType(pt); } + @Override public String getNamespace() { return NAMESPACE; } @@ -279,6 +283,7 @@ public abstract class JingleContentDescription implements ExtensionElement { super(audio); } + @Override protected String getChildAttributes() { StringBuilder buf = new StringBuilder(); PayloadType pt = getPayloadType(); diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContentInfo.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContentInfo.java index 6c39a19a7..179e945df 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContentInfo.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleContentInfo.java @@ -59,6 +59,7 @@ public class JingleContentInfo implements ExtensionElement { /** * Get the element name. */ + @Override public String getElementName() { // Media info is supposed to be just a single-word command... return getMediaInfo().toString(); @@ -76,10 +77,12 @@ public class JingleContentInfo implements ExtensionElement { /** * Get the publilc namespace. */ + @Override public String getNamespace() { return namespace; } + @Override public String toXML() { StringBuilder buf = new StringBuilder(); buf.append('<').append(getElementName()).append(" xmlns=\""); @@ -100,6 +103,7 @@ public class JingleContentInfo implements ExtensionElement { setNamespace(NAMESPACE); } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleDescription.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleDescription.java index 82f1bfc03..d76935671 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleDescription.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleDescription.java @@ -54,6 +54,7 @@ public abstract class JingleDescription implements ExtensionElement { * * @return the XML element name of the element. */ + @Override public String getElementName() { return NODENAME; } @@ -63,6 +64,7 @@ public abstract class JingleDescription implements ExtensionElement { * * @return The namespace */ + @Override public abstract String getNamespace(); /** @@ -151,6 +153,7 @@ public abstract class JingleDescription implements ExtensionElement { * * @return a string with the XML representation */ + @Override public String toXML() { StringBuilder buf = new StringBuilder(); @@ -190,6 +193,7 @@ public abstract class JingleDescription implements ExtensionElement { addPayloadType(pt); } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleError.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleError.java index 0b0e84e76..f169bda7b 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleError.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleError.java @@ -73,6 +73,7 @@ public class JingleError implements ExtensionElement { * * @return the error as XML. */ + @Override public String toXML() { StringBuilder buf = new StringBuilder(); if (message != null) { @@ -110,14 +111,17 @@ public class JingleError implements ExtensionElement { return null; } + @Override public String toString() { return getMessage(); } + @Override public String getElementName() { return message; } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleTransport.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleTransport.java index c525d5194..d9ac2f0e2 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleTransport.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/packet/JingleTransport.java @@ -123,6 +123,7 @@ public class JingleTransport implements ExtensionElement { * * @return the XML element name of the element. */ + @Override public String getElementName() { return NODENAME; } @@ -141,6 +142,7 @@ public class JingleTransport implements ExtensionElement { * * @return The namespace */ + @Override public String getNamespace() { return namespace; } @@ -148,6 +150,7 @@ public class JingleTransport implements ExtensionElement { /** * Return the XML representation for this element. */ + @Override public String toXML() { StringBuilder buf = new StringBuilder(); @@ -278,6 +281,7 @@ public class JingleTransport implements ExtensionElement { * * @see org.jivesoftware.smackx.jingleold.packet.JingleTransport#addCandidate(org.jivesoftware.smackx.jingleold.packet.JingleTransport.JingleTransportCandidate) */ + @Override public void addCandidate(final JingleTransportCandidate candidate) { super.addCandidate(candidate); } @@ -288,6 +292,7 @@ public class JingleTransport implements ExtensionElement { * * @see org.jivesoftware.smackx.jingleold.packet.JingleTransport#getCandidates() */ + @Override public List getCandidatesList() { List copy = new ArrayList(); List superCandidatesList = super.getCandidatesList(); @@ -316,6 +321,7 @@ public class JingleTransport implements ExtensionElement { /** * Get the elements of this candidate. */ + @Override protected String getChildElements() { StringBuilder buf = new StringBuilder(); @@ -360,6 +366,7 @@ public class JingleTransport implements ExtensionElement { * * @see org.jivesoftware.smackx.jingleold.packet.JingleTransport#addCandidate(org.jivesoftware.smackx.jingleold.packet.JingleTransport.JingleTransportCandidate) */ + @Override public void addCandidate(final JingleTransportCandidate candidate) { candidates.clear(); super.addCandidate(candidate); @@ -371,6 +378,7 @@ public class JingleTransport implements ExtensionElement { * * @see org.jivesoftware.smackx.jingleold.packet.JingleTransport#getCandidates() */ + @Override public List getCandidatesList() { List copy = new ArrayList(); List superCandidatesList = super.getCandidatesList(); @@ -402,6 +410,7 @@ public class JingleTransport implements ExtensionElement { /** * Get the elements of this candidate. */ + @Override protected String getChildElements() { StringBuilder buf = new StringBuilder(); diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleContentDescriptionProvider.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleContentDescriptionProvider.java index b636fd9d4..d95a47b19 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleContentDescriptionProvider.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleContentDescriptionProvider.java @@ -108,6 +108,7 @@ public abstract class JingleContentDescriptionProvider extends ExtensionElementP /** * Parse an audio payload type. */ + @Override public JinglePayloadType parsePayload(final XmlPullParser parser) { JinglePayloadType pte = super.parsePayload(parser); PayloadType.Audio pt = new PayloadType.Audio(pte.getPayloadType()); @@ -125,6 +126,7 @@ public abstract class JingleContentDescriptionProvider extends ExtensionElementP /** * Get a new instance of this object. */ + @Override protected JingleContentDescription getInstance() { return new JingleContentDescription.Audio(); } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleDescriptionProvider.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleDescriptionProvider.java index 2adf66960..01b8f6c1a 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleDescriptionProvider.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleDescriptionProvider.java @@ -69,6 +69,7 @@ public abstract class JingleDescriptionProvider extends ExtensionElementProvider * @throws IOException * @throws XmlPullParserException */ + @Override public JingleDescription parse(XmlPullParser parser, int initialDepth) throws SmackException, XmlPullParserException, IOException { boolean done = false; JingleDescription desc = getInstance(); @@ -106,6 +107,7 @@ public abstract class JingleDescriptionProvider extends ExtensionElementProvider /** * Parse an audio payload type. */ + @Override public PayloadType parsePayload(final XmlPullParser parser) { PayloadType pte = super.parsePayload(parser); PayloadType.Audio pt = new PayloadType.Audio(pte); @@ -123,6 +125,7 @@ public abstract class JingleDescriptionProvider extends ExtensionElementProvider /** * Get a new instance of this object. */ + @Override protected JingleDescription getInstance() { return new JingleDescription.Audio(); } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java index fff7aebe4..0038910b0 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java @@ -99,6 +99,7 @@ public abstract class JingleTransportProvider extends ExtensionElementProvider userPresences = presenceMap.get(jid); + Jid j; + try { + j = JidCreate.from(jid); + } + catch (XmppStringprepException e) { + throw new IllegalStateException(e); + } + Map userPresences = presenceMap.get(j); if (userPresences != null) { Iterator presences = userPresences.values().iterator(); while (presences.hasNext()) { @@ -175,6 +183,7 @@ public class AgentRoster { * or "user@domain/resource"). * @return true if the XMPP address is an agent in the workgroup. */ + @SuppressWarnings("EqualsIncompatibleType") public boolean contains(Jid jid) { if (jid == null) { return false; @@ -282,7 +291,9 @@ public class AgentRoster { /** * Listens for all presence packets and processes them. */ + @SuppressWarnings("EqualsIncompatibleType") private class PresencePacketListener implements StanzaListener { + @Override public void processStanza(Stanza packet) { Presence presence = (Presence)packet; EntityFullJid from = presence.getFrom().asEntityFullJidIfPossible(); @@ -359,6 +370,7 @@ public class AgentRoster { */ private class AgentStatusListener implements StanzaListener { + @Override public void processStanza(Stanza packet) { if (packet instanceof AgentStatusRequest) { AgentStatusRequest statusRequest = (AgentStatusRequest)packet; @@ -369,9 +381,14 @@ public class AgentRoster { // Removing the user from the roster, so remove any presence information // about them. - String key = XmppStringUtils.parseLocalpart(XmppStringUtils.parseLocalpart(agentJID) + "@" + - XmppStringUtils.parseDomain(agentJID)); - presenceMap.remove(key); + Jid agentJid; + try { + agentJid = JidCreate.from(agentJID); + } + catch (XmppStringprepException e) { + throw new IllegalStateException(e); + } + presenceMap.remove(agentJid.asBareJid()); // Fire event for roster listeners. fireEvent(EVENT_AGENT_REMOVED, agentJID); } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java index 7572d2d46..297b39779 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java @@ -77,6 +77,7 @@ import org.jivesoftware.smackx.workgroup.settings.SearchSettings; import org.jivesoftware.smackx.xdata.Form; import org.jxmpp.jid.Jid; import org.jxmpp.jid.parts.Resourcepart; +import org.jxmpp.stringprep.XmppStringprepException; /** * This class embodies the agent's active presence within a given workgroup. The application @@ -147,6 +148,7 @@ public class AgentSession { new StanzaTypeFilter(Message.class)); packetListener = new StanzaListener() { + @Override public void processStanza(Stanza packet) { try { handlePacket(packet); @@ -609,6 +611,23 @@ public class AgentSession { * @return an instance of WorkgroupQueue for the argument queue name, or null if none exists */ public WorkgroupQueue getQueue(String queueName) { + Resourcepart queueNameResourcepart; + try { + queueNameResourcepart = Resourcepart.from(queueName); + } + catch (XmppStringprepException e) { + throw new IllegalArgumentException(e); + } + return getQueue(queueNameResourcepart); + } + + /** + * Get queue. + * + * @param queueName the name of the queue + * @return an instance of WorkgroupQueue for the argument queue name, or null if none exists + */ + public WorkgroupQueue getQueue(Resourcepart queueName) { return queues.get(queueName); } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/InvitationRequest.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/InvitationRequest.java index d88c0feb7..6da5b6a63 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/InvitationRequest.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/InvitationRequest.java @@ -46,14 +46,17 @@ public class InvitationRequest extends OfferContent { return reason; } + @Override boolean isUserRequest() { return false; } + @Override boolean isInvitation() { return true; } + @Override boolean isTransfer() { return false; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java index 191e6f53f..1d953ef6e 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java @@ -98,7 +98,7 @@ public class OfferConfirmation extends SimpleIQ { /** * Stanza(/Packet) for notifying server of RoomName */ - private class NotifyServicePacket extends IQ { + private static class NotifyServicePacket extends IQ { String roomName; NotifyServicePacket(Jid workgroup, String roomName) { diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/TransferRequest.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/TransferRequest.java index 0f491d04c..15fda70f9 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/TransferRequest.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/TransferRequest.java @@ -46,14 +46,17 @@ public class TransferRequest extends OfferContent { return reason; } + @Override boolean isUserRequest() { return false; } + @Override boolean isInvitation() { return false; } + @Override boolean isTransfer() { return true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/UserRequest.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/UserRequest.java index d5a098577..c7016a432 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/UserRequest.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/UserRequest.java @@ -30,14 +30,17 @@ public class UserRequest extends OfferContent { return instance; } + @Override boolean isUserRequest() { return true; } + @Override boolean isInvitation() { return false; } + @Override boolean isTransfer() { return false; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/WorkgroupQueue.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/WorkgroupQueue.java index f2c0e61d2..951cb8784 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/WorkgroupQueue.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/WorkgroupQueue.java @@ -221,6 +221,7 @@ public class WorkgroupQueue { this.value = value; } + @Override public String toString() { return value; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatus.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatus.java index 164d9de44..c1ee92d39 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatus.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatus.java @@ -80,14 +80,17 @@ public class AgentStatus implements ExtensionElement { return maxChats; } + @Override public String getElementName() { return ELEMENT_NAME; } + @Override public String getNamespace() { return NAMESPACE; } + @Override public String toXML() { StringBuilder buf = new StringBuilder(); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/MetaDataProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/MetaDataProvider.java index 516e6a4cf..e09c372bf 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/MetaDataProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/MetaDataProvider.java @@ -39,6 +39,7 @@ public class MetaDataProvider extends ExtensionElementProvider { * @throws IOException * @throws XmlPullParserException */ + @Override public MetaData parse(XmlPullParser parser, int initialDepth) throws XmlPullParserException, IOException { Map> metaData = MetaDataUtils.parseMetaData(parser); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java index bdca48492..aca307ec0 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java @@ -67,7 +67,7 @@ public class OfferRevokeProvider extends IQProvider { return new OfferRevokePacket(userJID, userID, reason, sessionID); } - public class OfferRevokePacket extends IQ { + public static class OfferRevokePacket extends IQ { public static final String ELEMENT = "offer-revoke"; public static final String NAMESPACE = "http://jabber.org/protocol/workgroup"; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java index 9b5595e53..2a415ec2e 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java @@ -91,14 +91,17 @@ public final class QueueDetails implements ExtensionElement { } } + @Override public String getElementName() { return ELEMENT_NAME; } + @Override public String getNamespace() { return NAMESPACE; } + @Override public String toXML() { StringBuilder buf = new StringBuilder(); buf.append('<').append(ELEMENT_NAME).append(" xmlns=\"").append(NAMESPACE).append("\">"); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java index 64aa88005..24460301c 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java @@ -88,14 +88,17 @@ public class QueueOverview implements ExtensionElement { this.status = status; } + @Override public String getElementName () { return ELEMENT_NAME; } + @Override public String getNamespace () { return NAMESPACE; } + @Override public String toXML () { StringBuilder buf = new StringBuilder(); buf.append('<').append(ELEMENT_NAME).append(" xmlns=\"").append(NAMESPACE).append("\">"); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java index 4b1fe9645..caf16e45a 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java @@ -69,6 +69,7 @@ public class QueueUpdate implements ExtensionElement { return remainingTime; } + @Override public String toXML() { StringBuilder buf = new StringBuilder(); buf.append(""); @@ -82,10 +83,12 @@ public class QueueUpdate implements ExtensionElement { return buf.toString(); } + @Override public String getElementName() { return ELEMENT_NAME; } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java index d9fb98f4e..fe83f34f0 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java @@ -80,10 +80,12 @@ public class RoomInvitation implements ExtensionElement { private RoomInvitation() { } + @Override public String getElementName() { return ELEMENT_NAME; } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java index b56b54a9a..dc4fc2430 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java @@ -80,10 +80,12 @@ public class RoomTransfer implements ExtensionElement { private RoomTransfer() { } + @Override public String getElementName() { return ELEMENT_NAME; } + @Override public String getNamespace() { return NAMESPACE; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java index e8cd700bb..5740a1d3a 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java @@ -46,14 +46,17 @@ public class SessionID implements ExtensionElement { return this.sessionID; } + @Override public String getElementName() { return ELEMENT_NAME; } + @Override public String getNamespace() { return NAMESPACE; } + @Override public String toXML() { StringBuilder buf = new StringBuilder(); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java index ba2ecee0a..67c0ea947 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java @@ -48,14 +48,17 @@ public class UserID implements ExtensionElement { return this.userID; } + @Override public String getElementName() { return ELEMENT_NAME; } + @Override public String getNamespace() { return NAMESPACE; } + @Override public String toXML() { StringBuilder buf = new StringBuilder(); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java index 9250d45e4..13c34a800 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java @@ -50,14 +50,17 @@ public class WorkgroupInformation implements ExtensionElement { return workgroupJID; } + @Override public String getElementName() { return ELEMENT_NAME; } + @Override public String getNamespace() { return NAMESPACE; } + @Override public String toXML() { StringBuilder buf = new StringBuilder(); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java index 9a94f6d8a..326225197 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java @@ -103,7 +103,7 @@ public class WorkgroupProperties extends IQ { while (!done) { int eventType = parser.next(); if ((eventType == XmlPullParser.START_TAG) && ("authRequired".equals(parser.getName()))) { - props.setAuthRequired(new Boolean(parser.nextText()).booleanValue()); + props.setAuthRequired(Boolean.valueOf(parser.nextText()).booleanValue()); } else if ((eventType == XmlPullParser.START_TAG) && ("email".equals(parser.getName()))) { props.setEmail(parser.nextText()); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java index 6e75abcb6..338715788 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java @@ -108,20 +108,24 @@ public class Workgroup { // Register as a queue listener for internal usage by this instance. addQueueListener(new QueueListener() { + @Override public void joinedQueue() { inQueue = true; } + @Override public void departedQueue() { inQueue = false; queuePosition = -1; queueRemainingTime = -1; } + @Override public void queuePositionUpdated(int currentPosition) { queuePosition = currentPosition; } + @Override public void queueWaitTimeUpdated(int secondsRemaining) { queueRemainingTime = secondsRemaining; } @@ -145,6 +149,7 @@ public class Workgroup { StanzaFilter typeFilter = new StanzaTypeFilter(Message.class); connection.addAsyncStanzaListener(new StanzaListener() { + @Override public void processStanza(Stanza packet) { handlePacket(packet); } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/ListenerEventDispatcher.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/ListenerEventDispatcher.java index 979423330..0c42e2a6e 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/ListenerEventDispatcher.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/ListenerEventDispatcher.java @@ -84,6 +84,7 @@ public class ListenerEventDispatcher implements Runnable { return this.hasFinishedDispatching; } + @Override public void run() { ListIterator li = null; @@ -104,7 +105,7 @@ public class ListenerEventDispatcher implements Runnable { } - protected class TripletContainer { + protected static class TripletContainer { protected Object listenerInstance; protected Method listenerMethod; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/DefaultMessageEventRequestListener.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/DefaultMessageEventRequestListener.java index 7bd7c96ac..8f71e4be1 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/DefaultMessageEventRequestListener.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/DefaultMessageEventRequestListener.java @@ -31,6 +31,7 @@ import org.jxmpp.jid.Jid; */ public class DefaultMessageEventRequestListener implements MessageEventRequestListener { + @Override public void deliveredNotificationRequested(Jid from, String packetID, MessageEventManager messageEventManager) throws NotConnectedException, InterruptedException { @@ -38,16 +39,19 @@ public class DefaultMessageEventRequestListener implements MessageEventRequestLi messageEventManager.sendDeliveredNotification(from, packetID); } + @Override public void displayedNotificationRequested(Jid from, String packetID, MessageEventManager messageEventManager) { } + @Override public void composingNotificationRequested(Jid from, String packetID, MessageEventManager messageEventManager) { } + @Override public void offlineNotificationRequested(Jid from, String packetID, MessageEventManager messageEventManager) { diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/MessageEventManager.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/MessageEventManager.java index 61cf22d2d..6e18bd5d2 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/MessageEventManager.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/MessageEventManager.java @@ -77,6 +77,7 @@ public final class MessageEventManager extends Manager { super(connection); // Listens for all message event packets and fire the proper message event listeners. connection.addAsyncStanzaListener(new StanzaListener() { + @Override public void processStanza(Stanza packet) { Message message = (Message) packet; MessageEvent messageEvent = diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/packet/MessageEvent.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/packet/MessageEvent.java index 81dd8ca3a..bccc21a89 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/packet/MessageEvent.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/packet/MessageEvent.java @@ -78,6 +78,7 @@ public class MessageEvent implements ExtensionElement { * * @return the XML element name of the stanza(/packet) extension. */ + @Override public String getElementName() { return ELEMENT; } @@ -88,6 +89,7 @@ public class MessageEvent implements ExtensionElement { * * @return the XML namespace of the stanza(/packet) extension. */ + @Override public String getNamespace() { return NAMESPACE; } @@ -303,6 +305,7 @@ public class MessageEvent implements ExtensionElement { * * */ + @Override public String toXML() { StringBuilder buf = new StringBuilder(); buf.append('<').append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/RosterExchangeManager.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/RosterExchangeManager.java index 506e02c93..fbc6e068d 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/RosterExchangeManager.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/RosterExchangeManager.java @@ -78,6 +78,7 @@ public class RosterExchangeManager { weakRefConnection = new WeakReference(connection); // Listens for all roster exchange packets and fire the roster exchange listeners. packetListener = new StanzaListener() { + @Override public void processStanza(Stanza packet) { Message message = (Message) packet; RosterExchange rosterExchange = diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/packet/RosterExchange.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/packet/RosterExchange.java index 1b579d8f8..8940a1dbe 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/packet/RosterExchange.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/packet/RosterExchange.java @@ -110,6 +110,7 @@ public class RosterExchange implements ExtensionElement { * * @return the XML element name of the stanza(/packet) extension. */ + @Override public String getElementName() { return RosterExchangeManager.ELEMENT; } @@ -121,6 +122,7 @@ public class RosterExchange implements ExtensionElement { * * @return the XML namespace of the stanza(/packet) extension. */ + @Override public String getNamespace() { return RosterExchangeManager.NAMESPACE; } @@ -163,6 +165,7 @@ public class RosterExchange implements ExtensionElement { * * */ + @Override public String toXML() { StringBuilder buf = new StringBuilder(); buf.append('<').append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( diff --git a/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLCramMD5Mechanism.java b/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLCramMD5Mechanism.java index 25aded104..48a3fca1f 100644 --- a/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLCramMD5Mechanism.java +++ b/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLCramMD5Mechanism.java @@ -25,6 +25,7 @@ public class SASLCramMD5Mechanism extends SASLJavaXMechanism { public static final String NAME = CRAMMD5; + @Override public String getName() { return NAME; } diff --git a/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Mechanism.java b/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Mechanism.java index 39d7dc430..c574edddd 100644 --- a/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Mechanism.java +++ b/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Mechanism.java @@ -30,6 +30,7 @@ public class SASLDigestMD5Mechanism extends SASLJavaXMechanism { return true; } + @Override public String getName() { return NAME; } diff --git a/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLPlainMechanism.java b/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLPlainMechanism.java index 278d60f1d..4e8a878d0 100644 --- a/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLPlainMechanism.java +++ b/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/SASLPlainMechanism.java @@ -25,6 +25,7 @@ public class SASLPlainMechanism extends SASLJavaXMechanism { public static final String NAME = PLAIN; + @Override public String getName() { return NAME; } diff --git a/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java b/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java index bb2aac7c5..988267e18 100644 --- a/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java +++ b/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java @@ -1,6 +1,6 @@ /** * - * Copyright 2014 Florian Schmaus + * Copyright 2014-2017 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,8 @@ */ package org.jivesoftware.smack.sasl.javax; +import java.io.UnsupportedEncodingException; + import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.sasl.DigestMd5SaslTest; @@ -29,12 +31,12 @@ public class SASLDigestMD5Test extends DigestMd5SaslTest { } @Test - public void testDigestMD5() throws NotConnectedException, SmackException, InterruptedException, XmppStringprepException { + public void testDigestMD5() throws NotConnectedException, SmackException, InterruptedException, XmppStringprepException, UnsupportedEncodingException { runTest(false); } @Test - public void testDigestMD5Authzid() throws NotConnectedException, SmackException, InterruptedException, XmppStringprepException { + public void testDigestMD5Authzid() throws NotConnectedException, SmackException, InterruptedException, XmppStringprepException, UnsupportedEncodingException { runTest(true); } } diff --git a/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Mechanism.java b/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Mechanism.java index 47d0513a0..723256838 100644 --- a/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Mechanism.java +++ b/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Mechanism.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smack.sasl.provided; +import java.io.UnsupportedEncodingException; + import javax.security.auth.callback.CallbackHandler; import org.jivesoftware.smack.SmackException; @@ -101,7 +103,14 @@ public class SASLDigestMD5Mechanism extends SASLMechanism { if (challenge.length == 0) { throw new SmackException("Initial challenge has zero length"); } - String[] challengeParts = (new String(challenge)).split(","); + String challengeString; + try { + challengeString = new String(challenge, StringUtils.UTF8); + } + catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } + String[] challengeParts = challengeString.split(","); byte[] response = null; switch (state) { case INITIAL: diff --git a/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java b/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java index c68eb346c..6d1413272 100644 --- a/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java +++ b/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smack.sasl.provided; +import java.io.UnsupportedEncodingException; + import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.sasl.DigestMd5SaslTest; @@ -28,12 +30,14 @@ public class SASLDigestMD5Test extends DigestMd5SaslTest { } @Test - public void testDigestMD5() throws NotConnectedException, SmackException, InterruptedException, XmppStringprepException { + public void testDigestMD5() throws NotConnectedException, SmackException, InterruptedException, + XmppStringprepException, UnsupportedEncodingException { runTest(false); } @Test - public void testDigestMD5Authzid() throws NotConnectedException, SmackException, InterruptedException, XmppStringprepException { + public void testDigestMD5Authzid() throws NotConnectedException, SmackException, InterruptedException, + XmppStringprepException, UnsupportedEncodingException { runTest(true); } } diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java index 92a2ba631..2b3665886 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java @@ -707,7 +707,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { try { Constructor c = Class.forName("sun.security.pkcs11.SunPKCS11").getConstructor(InputStream.class); String pkcs11Config = "name = SmartCard\nlibrary = "+config.getPKCS11Library(); - ByteArrayInputStream config = new ByteArrayInputStream(pkcs11Config.getBytes()); + ByteArrayInputStream config = new ByteArrayInputStream(pkcs11Config.getBytes(StringUtils.UTF8)); Provider p = (Provider)c.newInstance(config); Security.addProvider(p); ks = KeyStore.getInstance("PKCS11",p); @@ -991,6 +991,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { done = false; Async.go(new Runnable() { + @Override public void run() { parsePackets(); }