*/
   public Message retrieve(Serializable messageID) throws Throwable   {      Message m = null;      Connection conn = ds.getConnection();      String sql = "SELECT " +                   "MESSAGEID, " +                   "RELIABLE, " +                   "EXPIRATION, " +                   "TIMESTAMP, " +                   "COREHEADERS, " +                   "PAYLOAD, " +                   "TYPE, " +                   "JMSTYPE, " +                   "PRIORITY, " +                   "CORRELATIONID, " +                   "DESTINATIONISQUEUE, " +                   "DESTINATION, " +                   "REPLYTOISQUEUE, " +                   "REPLYTO, " +                   "JMSPROPERTIES " +                   "FROM MESSAGES WHERE MESSAGEID = '" + messageID + "'";      ResultSet rs = conn.createStatement().executeQuery(sql);      if (log.isTraceEnabled()) { log.trace(sql); }      if (rs.next())      {         m = Factory.createMessage(rs.getString("MESSAGEID"),                                   rs.getBoolean("RELIABLE"),                                   rs.getLong("EXPIRATION"),                                   rs.getLong("TIMESTAMP"),                                   (Map)rs.getObject("COREHEADERS"),                                   (Serializable)rs.getObject("PAYLOAD"),                                   rs.getInt("TYPE"),                                   rs.getString("JMSTYPE"),                                   rs.getInt("PRIORITY"),                                   rs.getObject("CORRELATIONID"),                                   rs.getBoolean("DESTINATIONISQUEUE"),                                   rs.getString("DESTINATION"),                                   rs.getBoolean("REPLYTOISQUEUE"),                                   rs.getString("REPLYTO"),                                   (Map)rs.getObject("JMSPROPERTIES"));      }      conn.close();      return m;   }