Example usage for javax.jms JMSException setLinkedException

List of usage examples for javax.jms JMSException setLinkedException

Introduction

In this page you can find the example usage for javax.jms JMSException setLinkedException.

Prototype

public void setLinkedException(Exception ex) 

Source Link

Document

Adds a linked Exception .

Usage

From source file:org.skyscreamer.nevado.jms.message.NevadoStreamMessage.java

/**
 * Reads a 16-bit integer from the stream message.
 *
 * @return a 16-bit integer from the stream message
 * @throws JMSException//from w w w . java 2  s .  c om
 *             if the JMS provider fails to read the message due to some
 *             internal error.
 * @throws MessageEOFException
 *             if unexpected end of message stream has been reached.
 * @throws MessageFormatException
 *             if this type conversion is invalid.
 * @throws MessageNotReadableException
 *             if the message is in write-only mode.
 */

public short readShort() throws JMSException {
    initializeReading();
    try {

        this.dataIn.mark(17);
        int type = this.dataIn.read();
        if (type == -1) {
            throw new MessageEOFException("reached end of data");
        }
        if (type == MarshallingSupport.SHORT_TYPE) {
            return this.dataIn.readShort();
        }
        if (type == MarshallingSupport.BYTE_TYPE) {
            return this.dataIn.readByte();
        }
        if (type == MarshallingSupport.STRING_TYPE) {
            return Short.valueOf(this.dataIn.readUTF()).shortValue();
        }
        if (type == MarshallingSupport.NULL) {
            this.dataIn.reset();
            throw new NullPointerException("Cannot convert NULL value to short.");
        } else {
            this.dataIn.reset();
            throw new MessageFormatException(" not a short type");
        }
    } catch (NumberFormatException mfe) {
        try {
            this.dataIn.reset();
        } catch (IOException ioe) {
            JMSException jmsEx = new MessageFormatException(ioe.getMessage());
            jmsEx.setLinkedException(ioe);
            throw jmsEx;
        }
        throw mfe;

    } catch (EOFException e) {
        String exMessage = "Reached premature EOF: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    } catch (IOException e) {
        String exMessage = "Could not read boolean: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    }
}

From source file:org.skyscreamer.nevado.jms.message.NevadoStreamMessage.java

/**
 * Reads a Unicode character value from the stream message.
 *
 * @return a Unicode character from the stream message
 * @throws JMSException/*from  w w w .j  a  v a  2s  . com*/
 *             if the JMS provider fails to read the message due to some
 *             internal error.
 * @throws MessageEOFException
 *             if unexpected end of message stream has been reached.
 * @throws MessageFormatException
 *             if this type conversion is invalid
 * @throws MessageNotReadableException
 *             if the message is in write-only mode.
 */

public char readChar() throws JMSException {
    initializeReading();
    try {

        this.dataIn.mark(17);
        int type = this.dataIn.read();
        if (type == -1) {
            throw new MessageEOFException("reached end of data");
        }
        if (type == MarshallingSupport.CHAR_TYPE) {
            return this.dataIn.readChar();
        }
        if (type == MarshallingSupport.NULL) {
            this.dataIn.reset();
            throw new NullPointerException("Cannot convert NULL value to char.");
        } else {
            this.dataIn.reset();
            throw new MessageFormatException(" not a char type");
        }
    } catch (NumberFormatException mfe) {
        try {
            this.dataIn.reset();
        } catch (IOException ioe) {
            JMSException jmsEx = new MessageFormatException(ioe.getMessage());
            jmsEx.setLinkedException(ioe);
            throw jmsEx;
        }
        throw mfe;

    } catch (EOFException e) {
        String exMessage = "Reached premature EOF: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    } catch (IOException e) {
        String exMessage = "Could not read boolean: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    }
}

From source file:org.skyscreamer.nevado.jms.message.NevadoStreamMessage.java

/**
 * Reads a 32-bit integer from the stream message.
 *
 * @return a 32-bit integer value from the stream message, interpreted as an
 *         <code>int</code>//from   w w w.j av a  2 s  .c om
 * @throws JMSException
 *             if the JMS provider fails to read the message due to some
 *             internal error.
 * @throws MessageEOFException
 *             if unexpected end of message stream has been reached.
 * @throws MessageFormatException
 *             if this type conversion is invalid.
 * @throws MessageNotReadableException
 *             if the message is in write-only mode.
 */

public int readInt() throws JMSException {
    initializeReading();
    try {

        this.dataIn.mark(33);
        int type = this.dataIn.read();
        if (type == -1) {
            throw new MessageEOFException("reached end of data");
        }
        if (type == MarshallingSupport.INTEGER_TYPE) {
            return this.dataIn.readInt();
        }
        if (type == MarshallingSupport.SHORT_TYPE) {
            return this.dataIn.readShort();
        }
        if (type == MarshallingSupport.BYTE_TYPE) {
            return this.dataIn.readByte();
        }
        if (type == MarshallingSupport.STRING_TYPE) {
            return Integer.valueOf(this.dataIn.readUTF()).intValue();
        }
        if (type == MarshallingSupport.NULL) {
            this.dataIn.reset();
            throw new NullPointerException("Cannot convert NULL value to int.");
        } else {
            this.dataIn.reset();
            throw new MessageFormatException(" not an int type");
        }
    } catch (NumberFormatException mfe) {
        try {
            this.dataIn.reset();
        } catch (IOException ioe) {
            JMSException jmsEx = new MessageFormatException(ioe.getMessage());
            jmsEx.setLinkedException(ioe);
            throw jmsEx;
        }
        throw mfe;

    } catch (EOFException e) {
        String exMessage = "Reached premature EOF: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    } catch (IOException e) {
        String exMessage = "Could not read boolean: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    }
}

From source file:org.skyscreamer.nevado.jms.message.NevadoStreamMessage.java

/**
 * Reads a 64-bit integer from the stream message.
 *
 * @return a 64-bit integer value from the stream message, interpreted as a
 *         <code>long</code>
 * @throws JMSException/*  ww w  .j  a va2s . c  o  m*/
 *             if the JMS provider fails to read the message due to some
 *             internal error.
 * @throws MessageEOFException
 *             if unexpected end of message stream has been reached.
 * @throws MessageFormatException
 *             if this type conversion is invalid.
 * @throws MessageNotReadableException
 *             if the message is in write-only mode.
 */

public long readLong() throws JMSException {
    initializeReading();
    try {

        this.dataIn.mark(65);
        int type = this.dataIn.read();
        if (type == -1) {
            throw new MessageEOFException("reached end of data");
        }
        if (type == MarshallingSupport.LONG_TYPE) {
            return this.dataIn.readLong();
        }
        if (type == MarshallingSupport.INTEGER_TYPE) {
            return this.dataIn.readInt();
        }
        if (type == MarshallingSupport.SHORT_TYPE) {
            return this.dataIn.readShort();
        }
        if (type == MarshallingSupport.BYTE_TYPE) {
            return this.dataIn.readByte();
        }
        if (type == MarshallingSupport.STRING_TYPE) {
            return Long.valueOf(this.dataIn.readUTF()).longValue();
        }
        if (type == MarshallingSupport.NULL) {
            this.dataIn.reset();
            throw new NullPointerException("Cannot convert NULL value to long.");
        } else {
            this.dataIn.reset();
            throw new MessageFormatException(" not a long type");
        }
    } catch (NumberFormatException mfe) {
        try {
            this.dataIn.reset();
        } catch (IOException ioe) {
            JMSException jmsEx = new MessageFormatException(ioe.getMessage());
            jmsEx.setLinkedException(ioe);
            throw jmsEx;
        }
        throw mfe;

    } catch (EOFException e) {
        String exMessage = "Reached premature EOF: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    } catch (IOException e) {
        String exMessage = "Could not read boolean: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    }
}

From source file:org.skyscreamer.nevado.jms.message.NevadoStreamMessage.java

/**
 * Reads a <code>float</code> from the stream message.
 *
 * @return a <code>float</code> value from the stream message
 * @throws JMSException/* ww w.  j  a va  2s . c  o m*/
 *             if the JMS provider fails to read the message due to some
 *             internal error.
 * @throws MessageEOFException
 *             if unexpected end of message stream has been reached.
 * @throws MessageFormatException
 *             if this type conversion is invalid.
 * @throws MessageNotReadableException
 *             if the message is in write-only mode.
 */

public float readFloat() throws JMSException {
    initializeReading();
    try {
        this.dataIn.mark(33);
        int type = this.dataIn.read();
        if (type == -1) {
            throw new MessageEOFException("reached end of data");
        }
        if (type == MarshallingSupport.FLOAT_TYPE) {
            return this.dataIn.readFloat();
        }
        if (type == MarshallingSupport.STRING_TYPE) {
            return Float.valueOf(this.dataIn.readUTF()).floatValue();
        }
        if (type == MarshallingSupport.NULL) {
            this.dataIn.reset();
            throw new NullPointerException("Cannot convert NULL value to float.");
        } else {
            this.dataIn.reset();
            throw new MessageFormatException(" not a float type");
        }
    } catch (NumberFormatException mfe) {
        try {
            this.dataIn.reset();
        } catch (IOException ioe) {
            JMSException jmsEx = new MessageFormatException(ioe.getMessage());
            jmsEx.setLinkedException(ioe);
            throw jmsEx;
        }
        throw mfe;

    } catch (EOFException e) {
        String exMessage = "Reached premature EOF: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    } catch (IOException e) {
        String exMessage = "Could not read boolean: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    }
}

From source file:org.skyscreamer.nevado.jms.message.NevadoStreamMessage.java

/**
 * Reads a <code>double</code> from the stream message.
 *
 * @return a <code>double</code> value from the stream message
 * @throws JMSException/* w  w  w  .  j  a  va 2s. c  o m*/
 *             if the JMS provider fails to read the message due to some
 *             internal error.
 * @throws MessageEOFException
 *             if unexpected end of message stream has been reached.
 * @throws MessageFormatException
 *             if this type conversion is invalid.
 * @throws MessageNotReadableException
 *             if the message is in write-only mode.
 */

public double readDouble() throws JMSException {
    initializeReading();
    try {

        this.dataIn.mark(65);
        int type = this.dataIn.read();
        if (type == -1) {
            throw new MessageEOFException("reached end of data");
        }
        if (type == MarshallingSupport.DOUBLE_TYPE) {
            return this.dataIn.readDouble();
        }
        if (type == MarshallingSupport.FLOAT_TYPE) {
            return this.dataIn.readFloat();
        }
        if (type == MarshallingSupport.STRING_TYPE) {
            return Double.valueOf(this.dataIn.readUTF()).doubleValue();
        }
        if (type == MarshallingSupport.NULL) {
            this.dataIn.reset();
            throw new NullPointerException("Cannot convert NULL value to double.");
        } else {
            this.dataIn.reset();
            throw new MessageFormatException(" not a double type");
        }
    } catch (NumberFormatException mfe) {
        try {
            this.dataIn.reset();
        } catch (IOException ioe) {
            JMSException jmsEx = new MessageFormatException(ioe.getMessage());
            jmsEx.setLinkedException(ioe);
            throw jmsEx;
        }
        throw mfe;

    } catch (EOFException e) {
        String exMessage = "Reached premature EOF: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    } catch (IOException e) {
        String exMessage = "Could not read boolean: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    }
}

From source file:org.skyscreamer.nevado.jms.message.NevadoStreamMessage.java

/**
 * Reads a <CODE>String</CODE> from the stream message.
 *
 * @return a Unicode string from the stream message
 * @throws JMSException//from w w  w .j  av a 2 s  .c  om
 *             if the JMS provider fails to read the message due to some
 *             internal error.
 * @throws MessageEOFException
 *             if unexpected end of message stream has been reached.
 * @throws MessageFormatException
 *             if this type conversion is invalid.
 * @throws MessageNotReadableException
 *             if the message is in write-only mode.
 */

public String readString() throws JMSException {
    initializeReading();
    try {

        this.dataIn.mark(65);
        int type = this.dataIn.read();
        if (type == -1) {
            throw new MessageEOFException("reached end of data");
        }
        if (type == MarshallingSupport.NULL) {
            return null;
        }
        if (type == MarshallingSupport.BIG_STRING_TYPE) {
            return MarshallingSupport.readUTF8(dataIn);
        }
        if (type == MarshallingSupport.STRING_TYPE) {
            return this.dataIn.readUTF();
        }
        if (type == MarshallingSupport.LONG_TYPE) {
            return new Long(this.dataIn.readLong()).toString();
        }
        if (type == MarshallingSupport.INTEGER_TYPE) {
            return new Integer(this.dataIn.readInt()).toString();
        }
        if (type == MarshallingSupport.SHORT_TYPE) {
            return new Short(this.dataIn.readShort()).toString();
        }
        if (type == MarshallingSupport.BYTE_TYPE) {
            return new Byte(this.dataIn.readByte()).toString();
        }
        if (type == MarshallingSupport.FLOAT_TYPE) {
            return new Float(this.dataIn.readFloat()).toString();
        }
        if (type == MarshallingSupport.DOUBLE_TYPE) {
            return new Double(this.dataIn.readDouble()).toString();
        }
        if (type == MarshallingSupport.BOOLEAN_TYPE) {
            return (this.dataIn.readBoolean() ? Boolean.TRUE : Boolean.FALSE).toString();
        }
        if (type == MarshallingSupport.CHAR_TYPE) {
            return new Character(this.dataIn.readChar()).toString();
        } else {
            this.dataIn.reset();
            throw new MessageFormatException(" not a String type");
        }
    } catch (NumberFormatException mfe) {
        try {
            this.dataIn.reset();
        } catch (IOException ioe) {
            JMSException jmsEx = new MessageFormatException(ioe.getMessage());
            jmsEx.setLinkedException(ioe);
            throw jmsEx;
        }
        throw mfe;

    } catch (EOFException e) {
        String exMessage = "Reached premature EOF: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    } catch (IOException e) {
        String exMessage = "Could not read boolean: " + e.getMessage();
        _log.error(exMessage, e);
        throw new JMSException(exMessage);
    }
}

From source file:org.skyscreamer.nevado.jms.message.NevadoStreamMessage.java

/**
 * Reads a byte array field from the stream message into the specified
 * <CODE>byte[]</CODE> object (the read buffer). <p/>
 * <P>//from w w w.  ja v  a  2  s . c  om
 * To read the field value, <CODE>readBytes</CODE> should be successively
 * called until it returns a value less than the length of the read buffer.
 * The value of the bytes in the buffer following the last byte read is
 * undefined. <p/>
 * <P>
 * If <CODE>readBytes</CODE> returns a value equal to the length of the
 * buffer, a subsequent <CODE>readBytes</CODE> call must be made. If there
 * are no more bytes to be read, this call returns -1. <p/>
 * <P>
 * If the byte array field value is null, <CODE>readBytes</CODE> returns
 * -1. <p/>
 * <P>
 * If the byte array field value is empty, <CODE>readBytes</CODE> returns
 * 0. <p/>
 * <P>
 * Once the first <CODE>readBytes</CODE> call on a <CODE>byte[]</CODE>
 * field value has been made, the full value of the field must be read
 * before it is valid to read the next field. An attempt to read the next
 * field before that has been done will throw a <CODE>MessageFormatException</CODE>.
 * <p/>
 * <P>
 * To read the byte field value into a new <CODE>byte[]</CODE> object, use
 * the <CODE>readObject</CODE> method.
 *
 * @param value
 *            the buffer into which the data is read
 * @return the total number of bytes read into the buffer, or -1 if there is
 *         no more data because the end of the byte field has been reached
 * @throws JMSException
 *             if the JMS provider fails to read the message due to some
 *             internal error.
 * @throws MessageEOFException
 *             if unexpected end of message stream has been reached.
 * @throws MessageFormatException
 *             if this type conversion is invalid.
 * @throws MessageNotReadableException
 *             if the message is in write-only mode.
 * @see #readObject()
 */

public int readBytes(byte[] value) throws JMSException {

    initializeReading();
    try {
        if (value == null) {
            throw new NullPointerException();
        }

        if (remainingBytes == -1) {
            this.dataIn.mark(value.length + 1);
            int type = this.dataIn.read();
            if (type == -1) {
                throw new MessageEOFException("reached end of data");
            }
            if (type != MarshallingSupport.BYTE_ARRAY_TYPE) {
                throw new MessageFormatException("Not a byte array");
            }
            remainingBytes = this.dataIn.readInt();
        } else if (remainingBytes == 0) {
            remainingBytes = -1;
            return -1;
        }

        if (value.length <= remainingBytes) {
            // small buffer
            remainingBytes -= value.length;
            this.dataIn.readFully(value);
            return value.length;
        } else {
            // big buffer
            int rc = this.dataIn.read(value, 0, remainingBytes);
            remainingBytes = 0;
            return rc;
        }

    } catch (EOFException e) {
        JMSException jmsEx = new MessageEOFException(e.getMessage());
        jmsEx.setLinkedException(e);
        throw jmsEx;
    } catch (IOException e) {
        JMSException jmsEx = new MessageFormatException(e.getMessage());
        jmsEx.setLinkedException(e);
        throw jmsEx;
    }
}

From source file:org.skyscreamer.nevado.jms.message.NevadoStreamMessage.java

/**
 * Reads an object from the stream message. <p/>
 * <P>//w  ww .j  av a 2  s. co  m
 * This method can be used to return, in objectified format, an object in
 * the Java programming language ("Java object") that has been written to
 * the stream with the equivalent <CODE>writeObject</CODE> method call, or
 * its equivalent primitive <CODE>write<I>type</I></CODE> method. <p/>
 * <P>
 * Note that byte values are returned as <CODE>byte[]</CODE>, not <CODE>Byte[]</CODE>.
 * <p/>
 * <P>
 * An attempt to call <CODE>readObject</CODE> to read a byte field value
 * into a new <CODE>byte[]</CODE> object before the full value of the byte
 * field has been read will throw a <CODE>MessageFormatException</CODE>.
 *
 * @return a Java object from the stream message, in objectified format (for
 *         example, if the object was written as an <CODE>int</CODE>, an
 *         <CODE>Integer</CODE> is returned)
 * @throws JMSException
 *             if the JMS provider fails to read the message due to some
 *             internal error.
 * @throws MessageEOFException
 *             if unexpected end of message stream has been reached.
 * @throws MessageFormatException
 *             if this type conversion is invalid.
 * @throws MessageNotReadableException
 *             if the message is in write-only mode.
 * @see #readBytes(byte[] value)
 */

public Object readObject() throws JMSException {
    initializeReading();
    try {
        this.dataIn.mark(65);
        int type = this.dataIn.read();
        if (type == -1) {
            throw new MessageEOFException("reached end of data");
        }
        if (type == MarshallingSupport.NULL) {
            return null;
        }
        if (type == MarshallingSupport.BIG_STRING_TYPE) {
            return MarshallingSupport.readUTF8(dataIn);
        }
        if (type == MarshallingSupport.STRING_TYPE) {
            return this.dataIn.readUTF();
        }
        if (type == MarshallingSupport.LONG_TYPE) {
            return new Long(this.dataIn.readLong());
        }
        if (type == MarshallingSupport.INTEGER_TYPE) {
            return new Integer(this.dataIn.readInt());
        }
        if (type == MarshallingSupport.SHORT_TYPE) {
            return new Short(this.dataIn.readShort());
        }
        if (type == MarshallingSupport.BYTE_TYPE) {
            return new Byte(this.dataIn.readByte());
        }
        if (type == MarshallingSupport.FLOAT_TYPE) {
            return new Float(this.dataIn.readFloat());
        }
        if (type == MarshallingSupport.DOUBLE_TYPE) {
            return new Double(this.dataIn.readDouble());
        }
        if (type == MarshallingSupport.BOOLEAN_TYPE) {
            return this.dataIn.readBoolean() ? Boolean.TRUE : Boolean.FALSE;
        }
        if (type == MarshallingSupport.CHAR_TYPE) {
            return new Character(this.dataIn.readChar());
        }
        if (type == MarshallingSupport.BYTE_ARRAY_TYPE) {
            int len = this.dataIn.readInt();
            byte[] value = new byte[len];
            this.dataIn.readFully(value);
            return value;
        } else {
            this.dataIn.reset();
            throw new MessageFormatException("unknown type");
        }
    } catch (NumberFormatException mfe) {
        try {
            this.dataIn.reset();
        } catch (IOException ioe) {
            JMSException jmsEx = new MessageFormatException(ioe.getMessage());
            jmsEx.setLinkedException(ioe);
            throw jmsEx;
        }
        throw mfe;

    } catch (EOFException e) {
        JMSException jmsEx = new MessageEOFException(e.getMessage());
        jmsEx.setLinkedException(e);
        throw jmsEx;
    } catch (IOException e) {
        JMSException jmsEx = new MessageFormatException(e.getMessage());
        jmsEx.setLinkedException(e);
        throw jmsEx;
    }
}

From source file:org.springframework.jms.listener.serversession.CommonsPoolServerSessionFactory.java

/**
 * Returns a ServerSession from the pool, creating a new pool for the given
 * session manager if necessary.//from  ww w  .  jav  a2  s .co m
 * @see #createObjectPool
 */
public ServerSession getServerSession(ListenerSessionManager sessionManager) throws JMSException {
    ObjectPool pool = null;
    synchronized (this.serverSessionPools) {
        pool = (ObjectPool) this.serverSessionPools.get(sessionManager);
        if (pool == null) {
            if (logger.isInfoEnabled()) {
                logger.info("Creating Commons ServerSession pool for: " + sessionManager);
            }
            pool = createObjectPool(sessionManager);
            this.serverSessionPools.put(sessionManager, pool);
        }
    }
    try {
        return (ServerSession) pool.borrowObject();
    } catch (Exception ex) {
        JMSException jmsEx = new JMSException("Failed to borrow ServerSession from pool");
        jmsEx.setLinkedException(ex);
        throw jmsEx;
    }
}