/** * * Copyright 2003-2005 Jive Software. * * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jivesoftware.smack.packet; /** * Represents a stream error packet. Stream errors are unrecoverable errors where the server * will close the unrelying TCP connection after the stream error was sent to the client. * These is the list of stream errors as defined in the XMPP spec:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
CodeDescription
bad-format the entity has sent XML that cannot be processed
unsupported-encoding the entity has sent a namespace prefix that is * unsupported
bad-namespace-prefix Remote Server Timeout
conflict the server is closing the active stream for this entity * because a new stream has been initiated that conflicts with the existing * stream.
connection-timeout the entity has not generated any traffic over * the stream for some period of time.
host-gone the value of the 'to' attribute provided by the initiating * entity in the stream header corresponds to a hostname that is no longer hosted by * the server.
host-unknown the value of the 'to' attribute provided by the * initiating entity in the stream header does not correspond to a hostname that is * hosted by the server.
improper-addressing a stanza sent between two servers lacks a 'to' * or 'from' attribute
internal-server-error the server has experienced a * misconfiguration.
invalid-from the JID or hostname provided in a 'from' address does * not match an authorized JID.
invalid-id the stream ID or dialback ID is invalid or does not match * an ID previously provided.
invalid-namespace the streams namespace name is invalid.
invalid-xml the entity has sent invalid XML over the stream.
not-authorized the entity has attempted to send data before the * stream has been authenticated
policy-violation the entity has violated some local service * policy.
remote-connection-failed Rthe server is unable to properly connect * to a remote entity.
resource-constraint Rthe server lacks the system resources necessary * to service the stream.
restricted-xml the entity has attempted to send restricted XML * features.
see-other-host the server will not provide service to the initiating * entity but is redirecting traffic to another host.
system-shutdown the server is being shut down and all active streams * are being closed.
undefined-condition the error condition is not one of those defined * by the other conditions in this list.
unsupported-encoding the initiating entity has encoded the stream in * an encoding that is not supported.
unsupported-stanza-type the initiating entity has sent a first-level * child of the stream that is not supported.
unsupported-version the value of the 'version' attribute provided by * the initiating entity in the stream header specifies a version of XMPP that is not * supported.
xml-not-well-formed the initiating entity has sent XML that is * not well-formed.
* * @author Gaston Dombiak */ public class StreamError { public static final String NAMESPACE = "urn:ietf:params:xml:ns:xmpp-streams"; private String code; private String text; public StreamError(String code) { super(); this.code = code; } public StreamError(String code, String text) { this(code); this.text = text; } /** * Returns the error code. * * @return the error code. */ public String getCode() { return code; } /** * Returns the error text, which may be null. * * @return the error text. */ public String getText() { return text; } public String toString() { StringBuilder txt = new StringBuilder(); txt.append("stream:error (").append(code).append(")"); if (text != null) txt.append(" text: ").append(text); return txt.toString(); } }