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
[formerlydc074a9650
] [formerly3a135b8eac
[formerly 453604eca5fca9e5d14ba1842dc7f76f1e0180ca]] Former-commit-id:3a135b8eac
Former-commit-id:bee7cdb71a
This commit is contained in:
parent
110557f42c
commit
77bb396c9a
5 changed files with 48 additions and 9 deletions
|
@ -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();
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Add table
Reference in a new issue