src/main/java/org/jivesoftware/smack/XMPPConnection.java
private void initConnection() throws XMPPException {
        boolean isFirstInitialization = packetReader == null
                || packetWriter == null;
        compressionHandler = null;
        serverAckdCompression = false;

        // Set the reader and writer instance variables
        initReaderAndWriter();

        try {
            if (isFirstInitialization) {
                packetWriter = new PacketWriter(this);
                packetReader = new PacketReader(this);

                // If debugging is enabled, we should start the thread that will
                // listen for
                // all packets and then log them.
                if (config.isDebuggerEnabled()) {
                    addPacketListener(debugger.getReaderListener(), null);
                    if (debugger.getWriterListener() != null) {
                        addPacketSendingListener(debugger.getWriterListener(),
                                null);
                    }
                }
            } else {
                packetWriter.init();
                packetReader.init();
            }

            // Start the packet writer. This will open a XMPP stream to the
            // server
            packetWriter.startup();
            // Start the packet reader. The startup() method will block until we
            // get an opening stream packet back from server.
            packetReader.startup();

            // Make note of the fact that we're now connected.
            connected = true;

            if (isFirstInitialization) {
                // Notify listeners that a new connection has been established
                for (ConnectionCreationListener listener : getConnectionCreationListeners()) {
                    listener.connectionCreated(this);
                }
            }

        } catch (XMPPException ex) {
            // An exception occurred in setting up the connection. Make sure we
            // shut down the
            // readers and writers and close the socket.

            if (packetWriter != null) {
                try {
                    packetWriter.shutdown();
                } catch (Throwable ignore) { /* ignore */
                }
                packetWriter = null;
            }
            if (packetReader != null) {
                try {
                    packetReader.shutdown();
                } catch (Throwable ignore) { /* ignore */
                }
                packetReader = null;
            }
            if (reader != null) {
                try {
                    reader.close();
                } catch (Throwable ignore) { /* ignore */
                }
                reader = null;
            }
            if (writer != null) {
                try {
                    writer.close();
                } catch (Throwable ignore) { /* ignore */
                }
                writer = null;
            }
            if (socket != null) {
                try {
                    socket.close();
                } catch (Exception e) { /* ignore */
                }
                socket = null;
            }
            this.setWasAuthenticated(authenticated);
            authenticated = false;
            connected = false;

            throw ex; // Everything stoppped. Now throw the exception.
        }
    }
private void initConnection() throws XMPPException {
        boolean isFirstInitialization = packetReader == null
                || packetWriter == null;
        compressionHandler = null;
        serverAckdCompression = false;

        // Set the reader and writer instance variables
        initReaderAndWriter();

        try {
            if (isFirstInitialization) {
                packetWriter = new PacketWriter(this);
                packetReader = new PacketReader(this);

                // If debugging is enabled, we should start the thread that will
                // listen for
                // all packets and then log them.
                if (config.isDebuggerEnabled()) {
                    addPacketListener(debugger.getReaderListener(), null);
                    if (debugger.getWriterListener() != null) {
                        addPacketSendingListener(debugger.getWriterListener(),
                                null);
                    }
                }
            } else {
                packetWriter.init();
                packetReader.init();
            }

            // Start the packet writer. This will open a XMPP stream to the
            // server
            packetWriter.startup();
            // Start the packet reader. The startup() method will block until we
            // get an opening stream packet back from server.
            packetReader.startup();

            // Make note of the fact that we're now connected.
            connected = true;

            if (isFirstInitialization) {
                // Notify listeners that a new connection has been established
                for (ConnectionCreationListener listener : getConnectionCreationListeners()) {
                    listener.connectionCreated(this);
                }
            }

        } catch (XMPPException ex) {
            // An exception occurred in setting up the connection. Make sure we
            // shut down the
            // readers and writers and close the socket.

            if (packetWriter != null) {
                try {
                    packetWriter.shutdown();
                } catch (Throwable ignore) { /* ignore */
                }
                packetWriter = null;
            }
            if (packetReader != null) {
                try {
                    packetReader.shutdown();
                } catch (Throwable ignore) { /* ignore */
                }
                packetReader = null;
            }
            if (reader != null) {
                try {
                    reader.close();
                } catch (Throwable ignore) { /* ignore */
                }
                reader = null;
            }
            if (writer != null) {
                try {
                    writer.close();
                } catch (Throwable ignore) { /* ignore */
                }
                writer = null;
            }
            if (socket != null) {
                try {
                    socket.close();
                } catch (Exception e) { /* ignore */
                }
                socket = null;
            }
            this.setWasAuthenticated(authenticated);
            authenticated = false;
            connected = false;

            throw ex; // Everything stoppped. Now throw the exception.
        }
    }
private void initConnection ( ) throws XMPPException { boolean isFirstInitialization = packetReader == null || packetWriter == null ; compressionHandler = null ; serverAckdCompression = false ; // Set the reader and writer instance variables initReaderAndWriter ( ) ; try { if ( isFirstInitialization ) { packetWriter = new PacketWriter ( this ) ; packetReader = new PacketReader ( this ) ; // If debugging is enabled, we should start the thread that will // listen for // all packets and then log them. if ( config . isDebuggerEnabled ( ) ) { addPacketListener ( debugger . getReaderListener ( ) , null ) ; if ( debugger . getWriterListener ( ) != null ) { addPacketSendingListener ( debugger . getWriterListener ( ) , null ) ; } } } else { packetWriter . init ( ) ; packetReader . init ( ) ; } // Start the packet writer. This will open a XMPP stream to the // server packetWriter . startup ( ) ; // Start the packet reader. The startup() method will block until we // get an opening stream packet back from server. packetReader . startup ( ) ; // Make note of the fact that we're now connected. connected = true ; if ( isFirstInitialization ) { // Notify listeners that a new connection has been established for ( ConnectionCreationListener listener : getConnectionCreationListeners ( ) ) { listener . connectionCreated ( this ) ; } } } catch ( XMPPException ex ) { // An exception occurred in setting up the connection. Make sure we // shut down the // readers and writers and close the socket. if ( packetWriter != null ) { try { packetWriter . shutdown ( ) ; } catch ( Throwable ignore ) { /* ignore */ } packetWriter = null ; } if ( packetReader != null ) { try { packetReader . shutdown ( ) ; } catch ( Throwable ignore ) { /* ignore */ } packetReader = null ; } if ( reader != null ) { try { reader . close ( ) ; } catch ( Throwable ignore ) { /* ignore */ } reader = null ; } if ( writer != null ) { try { writer . close ( ) ; } catch ( Throwable ignore ) { /* ignore */ } writer = null ; } if ( socket != null ) { try { socket . close ( ) ; } catch ( Exception e ) { /* ignore */ } socket = null ; } this . setWasAuthenticated ( authenticated ) ; authenticated = false ; connected = false ; throw ex ; // Everything stoppped. Now throw the exception. } }
Initializes the connection by creating a packet reader and writer and
opening a XMPP stream to the server.

@throws XMPPException
if establishing a connection to the server fails.
Initializes the connection by creating a packet reader and writer and opening a XMPP stream to the server .