/** * Deliver a message to the group. * * @message the message to send * @return true if it was successfully sent to all members */ public synchronized boolean deliverMessage(Message message) { boolean rv = true; /* * deliver to the output queues of all the group members * * synchronization: called within the monitor */ // message.groupid=this.gid; for (BaseUser c : m_members) { ChatUser cu = (ChatUser) c; if (cu.isActive()) { try { System.out.println("sending to: " + cu.getUserName()); cu.write(message); } catch (Exception e) { e.printStackTrace(); } // rv = c.deliverMessage(message) && rv; } else { // rv = false; try { server.db.sendOfflineGroupMessage( cu.userid, this.gid, message.getSrc(), message.getMessage()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return rv; }