List of usage examples for javax.jms JMSException setLinkedException
public void setLinkedException(Exception ex)
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; } }