Add message String to all SmackExceptions

SMACK-599
This commit is contained in:
Florian Schmaus 2014-10-05 17:00:13 +02:00
parent 387be5bded
commit d04517cd08
2 changed files with 36 additions and 8 deletions

View File

@ -54,7 +54,7 @@ public class SmackException extends Exception {
} }
/** /**
* Exception thrown always when there was no response to an IQ request within the packet reply * Exception thrown always when there was no response to an (IQ) request within the packet reply
* timeout of the used connection instance. * timeout of the used connection instance.
*/ */
public static class NoResponseException extends SmackException { public static class NoResponseException extends SmackException {
@ -64,6 +64,7 @@ public class SmackException extends Exception {
private static final long serialVersionUID = -6523363748984543636L; private static final long serialVersionUID = -6523363748984543636L;
public NoResponseException() { public NoResponseException() {
super("No response received within packet reply timeout");
} }
} }
@ -75,6 +76,7 @@ public class SmackException extends Exception {
private static final long serialVersionUID = 3216216839100019278L; private static final long serialVersionUID = 3216216839100019278L;
public NotLoggedInException() { public NotLoggedInException() {
super("Client is not logged in");
} }
} }
@ -86,6 +88,7 @@ public class SmackException extends Exception {
private static final long serialVersionUID = 5011416918049935231L; private static final long serialVersionUID = 5011416918049935231L;
public AlreadyLoggedInException() { public AlreadyLoggedInException() {
super("Client is already logged in");
} }
} }
@ -97,6 +100,7 @@ public class SmackException extends Exception {
private static final long serialVersionUID = 5011416918049135231L; private static final long serialVersionUID = 5011416918049135231L;
public AlreadyConnectedException() { public AlreadyConnectedException() {
super("Client is already connected");
} }
} }
@ -108,6 +112,7 @@ public class SmackException extends Exception {
private static final long serialVersionUID = 9197980400776001173L; private static final long serialVersionUID = 9197980400776001173L;
public NotConnectedException() { public NotConnectedException() {
super("Client is not, or no longer, connected");
} }
} }
@ -122,21 +127,40 @@ public class SmackException extends Exception {
} }
} }
public static class SecurityRequiredException extends SmackException { public static abstract class SecurityRequiredException extends SmackException {
/** /**
* *
*/ */
private static final long serialVersionUID = 384291845029773545L; private static final long serialVersionUID = 384291845029773545L;
public SecurityRequiredException() {
}
public SecurityRequiredException(String message) { public SecurityRequiredException(String message) {
super(message); super(message);
} }
} }
public static class SecurityRequiredByClientException extends SecurityRequiredException {
/**
*
*/
private static final long serialVersionUID = 2395325821201543159L;
public SecurityRequiredByClientException() {
super("SSL/TLS required by client but not supported by server");
}
}
public static class SecurityRequiredByServerException extends SecurityRequiredException {
/**
*
*/
private static final long serialVersionUID = 8268148813117631819L;
public SecurityRequiredByServerException() {
super("SSL/TLS required by server but disabled in client");
}
}
public static class SecurityNotPossibleException extends SmackException { public static class SecurityNotPossibleException extends SmackException {
/** /**
@ -238,5 +262,8 @@ public class SmackException extends Exception {
*/ */
private static final long serialVersionUID = 2346934138253437571L; private static final long serialVersionUID = 2346934138253437571L;
public ResourceBindingNotOfferedException() {
super("Resource binding was not offered by server");
}
} }
} }

View File

@ -29,6 +29,8 @@ import org.jivesoftware.smack.SmackException.AlreadyLoggedInException;
import org.jivesoftware.smack.SmackException.NoResponseException; import org.jivesoftware.smack.SmackException.NoResponseException;
import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.SmackException.NotConnectedException;
import org.jivesoftware.smack.SmackException.ConnectionException; import org.jivesoftware.smack.SmackException.ConnectionException;
import org.jivesoftware.smack.SmackException.SecurityRequiredByClientException;
import org.jivesoftware.smack.SmackException.SecurityRequiredByServerException;
import org.jivesoftware.smack.SmackException.SecurityRequiredException; import org.jivesoftware.smack.SmackException.SecurityRequiredException;
import org.jivesoftware.smack.SynchronizationPoint; import org.jivesoftware.smack.SynchronizationPoint;
import org.jivesoftware.smack.XMPPException.StreamErrorException; import org.jivesoftware.smack.XMPPException.StreamErrorException;
@ -922,8 +924,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
StartTls startTlsFeature = getFeature(StartTls.ELEMENT, StartTls.NAMESPACE); StartTls startTlsFeature = getFeature(StartTls.ELEMENT, StartTls.NAMESPACE);
if (startTlsFeature != null) { if (startTlsFeature != null) {
if (startTlsFeature.required() && config.getSecurityMode() == SecurityMode.disabled) { if (startTlsFeature.required() && config.getSecurityMode() == SecurityMode.disabled) {
notifyConnectionError(new SecurityRequiredException( notifyConnectionError(new SecurityRequiredByServerException());
"TLS required by server but not allowed by connection configuration"));
return; return;
} }
@ -938,7 +939,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
// and are secure, however (features get parsed a second time after TLS is established). // and are secure, however (features get parsed a second time after TLS is established).
if (!isSecureConnection() && startTlsFeature == null if (!isSecureConnection() && startTlsFeature == null
&& getConfiguration().getSecurityMode() == SecurityMode.required) { && getConfiguration().getSecurityMode() == SecurityMode.required) {
throw new SecurityRequiredException(); throw new SecurityRequiredByClientException();
} }
if (getSASLAuthentication().authenticationSuccessful()) { if (getSASLAuthentication().authenticationSuccessful()) {