Issue #2751 fixed chat room bugs

fixed history messages having incorrect 'from' type
added ignore to dispose messages after room is closed
renamed tool tip for userid to match how JIDs are labled in client


Former-commit-id: 06c16118e1 [formerly dc074a9650] [formerly 3a135b8eac [formerly 453604eca5fca9e5d14ba1842dc7f76f1e0180ca]]
Former-commit-id: 3a135b8eac
Former-commit-id: bee7cdb71a
This commit is contained in:
Brian Clements 2014-02-19 08:29:24 -06:00
parent 110557f42c
commit 77bb396c9a
5 changed files with 48 additions and 9 deletions

View file

@ -35,6 +35,7 @@ import com.raytheon.uf.viz.collaboration.comm.provider.user.VenueParticipant;
* Jan 30, 2014 2698 bclement changed UserId to VenueParticipant
* Feb 13, 2014 2751 bclement changed sendObjectToPeer id to VenueParticipant
* Feb 13, 2014 2751 njensen Added changeLeader()
* Feb 19, 2014 2751 bclement Added isClosed()
*
* </pre>
*
@ -116,4 +117,11 @@ public interface ISharedDisplaySession extends IVenueSession {
public void changeLeader(VenueParticipant newLeader)
throws CollaborationException;
/**
* Returns true if the session has been closed
*
* @return
*/
public boolean isClosed();
}

View file

@ -79,6 +79,7 @@ import com.raytheon.uf.viz.collaboration.comm.provider.user.VenueParticipant;
* Feb 12, 2014 2793 bclement added additional null check to sendObjectToVenue
* Feb 13, 2014 2751 bclement VenueParticipant refactor
* Feb 13, 2014 2751 njensen Added changeLeader()
* Feb 19, 2014 2751 bclement added isClosed()
*
* </pre>
*
@ -102,6 +103,8 @@ public class SharedDisplaySession extends VenueSession implements
private XMPPConnection conn;
private boolean closed = false;
public SharedDisplaySession(EventBus externalBus,
CollaborationConnection manager) {
super(externalBus, manager);
@ -175,7 +178,8 @@ public class SharedDisplaySession extends VenueSession implements
return;
}
if (topic == null) {
log.warn("Attempted to send object when topic not configured");
log.warn("Attempted to send object when topic not configured: "
+ obj);
return;
}
SessionPayload payload = new SessionPayload(PayloadType.Command, obj);
@ -437,10 +441,10 @@ public class SharedDisplaySession extends VenueSession implements
@Override
public void close() {
super.close();
if (pubsubMgr == null || topic == null || !topicExists()) {
return;
}
try {
if (pubsubMgr == null || topic == null || !topicExists()) {
return;
}
Subscription sub = findSubscription(getAccount());
if (sub == null) {
return;
@ -455,6 +459,10 @@ public class SharedDisplaySession extends VenueSession implements
pubsubMgr = null;
} catch (XMPPException e) {
log.error("Unable to close subscription", e);
} finally {
// if an error happens, we still want to advertise that we were
// closed
closed = true;
}
}
@ -532,4 +540,16 @@ public class SharedDisplaySession extends VenueSession implements
}
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.viz.collaboration.comm.identity.ISharedDisplaySession
* #isClosed()
*/
@Override
public boolean isClosed() {
return closed;
}
}

View file

@ -94,6 +94,7 @@ import com.raytheon.uf.viz.collaboration.comm.provider.user.VenueParticipant;
* improved error handling for when room already exists
* Jan 30, 2014 2698 bclement changed UserId to VenueParticipant, added handle
* Feb 13, 2014 2751 bclement VenueParticipant refactor
* Feb 18, 2014 2751 bclement Fixed history message 'from' type
*
* </pre>
*
@ -738,21 +739,21 @@ public class VenueSession extends BaseSession implements IVenueSession {
String timeString = vars[0]
.substring(SEND_HISTORY.length());
long time = Long.parseLong(timeString);
String username = vars[1];
String msgHandle = vars[1];
String site = vars[2];
// add the SEND_HISTORY tag length, and the timestamp
// length, username length, and the site length plus the
// three pipe characters
String moddedBody = body.substring(SEND_HISTORY.length()
+ timeString.length() + username.length()
+ timeString.length() + msgHandle.length()
+ site.length() + 3);
message.setBody(moddedBody);
TextMessage msg = new TextMessage(message.getFrom(),
message.getBody());
UserId account = CollaborationConnection.getConnection()
.getUser();
UserId id = new UserId(username, account.getHost());
msg.setFrom(id);
msg.setFrom(new VenueParticipant(this.venue.getName(),
getQualifiedHost(account.getHost()), msgHandle));
msg.setTimeStamp(time);
msg.setSubject(site);
msg.setStatus(SEND_HISTORY);

View file

@ -48,6 +48,7 @@ import com.raytheon.uf.viz.core.rsc.IInputHandler;
import com.raytheon.uf.viz.remote.graphics.Dispatcher;
import com.raytheon.uf.viz.remote.graphics.events.AbstractDispatchingObjectEvent;
import com.raytheon.uf.viz.remote.graphics.events.AbstractRemoteGraphicsEvent;
import com.raytheon.uf.viz.remote.graphics.events.DisposeObjectEvent;
import com.raytheon.uf.viz.remote.graphics.events.ICreationEvent;
import com.raytheon.uf.viz.remote.graphics.events.rendering.BeginFrameEvent;
import com.raytheon.uf.viz.remote.graphics.events.rendering.EndFrameEvent;
@ -64,6 +65,7 @@ import com.raytheon.viz.ui.input.InputAdapter;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 19, 2012 mschenke Initial creation
* Feb 19, 2014 2751 bclement added check for closed session
*
* </pre>
*
@ -201,6 +203,13 @@ public class CollaborationDispatcher extends Dispatcher {
// Set PERSISTENCE to true if testing persisting capabilities
if (eventObject instanceof AbstractDispatchingObjectEvent
&& eventObject instanceof IRenderEvent == false) {
if (eventObject instanceof DisposeObjectEvent && session.isClosed()) {
// object disposal is asynchronous and dispose events could
// happen after session has been closed. If any participants are
// still connected to session, their objects will be disposed
// when they close the view.
return;
}
boolean immediateSend = true;
if (eventObject instanceof ICreationEvent == false) {
// Not a creation event, check event size. All creation events

View file

@ -56,6 +56,7 @@ import com.raytheon.uf.viz.collaboration.ui.AbstractUserLabelProvider;
* added JID and display name if available
* Feb 13, 2014 2751 bclement VenueParticipant refactor
* Feb 13, 2014 2751 njensen Added leader icons
* Feb 18, 2014 2751 bclement changed tooltip from JID to UserId
*
* </pre>
*
@ -228,7 +229,7 @@ public class ParticipantsLabelProvider extends
}
if (user.hasActualUserId()) {
UserId actual = user.getUserid();
builder.append("\nJID: ").append(actual.getNormalizedId());
builder.append("\nUserId: ").append(actual.getNormalizedId());
builder.append("\nDisplay Name: ").append(getLocalAlias(actual));
}
return builder.toString();