private void makeRemoteOccupantLeaveRoom( @Nonnull Set<JID> removedRemoteOccupants ) {
        for ( final JID removedRemoteOccupant : removedRemoteOccupants )
        {
            try
            {
                Log.trace("(room: '{}'): Removing occupant '{}' that was joined through a (now presumably disconnected) remote node.", room.getJID(), removedRemoteOccupant);
                final MUCOccupant occupantData = room.getOccupantByFullJID( removedRemoteOccupant );
                if ( occupantData == null ) {
                    Log.warn("(room: '{}'): Unable to remove '{}' as it currently is not registered as an occupant of this room.", room.getJID(), removedRemoteOccupant);
                    continue;
                }

                final Presence leave = new Presence();
                leave.setType(Presence.Type.unavailable);
                leave.setTo(occupantData.getOccupantJID());
                leave.setFrom(occupantData.getUserAddress());
                leave.setStatus("FMUC node disconnect");
                final Presence enriched = enrichWithFMUCElement( leave, occupantData.getReportedFmucAddress() );

                makeRemoteOccupantLeaveRoom( enriched );
            }
            catch ( Exception e )
            {
                Log.warn("(room: '{}'): An exception occurred while removing occupant '{}' from a (now presumably disconnected) remote node.", room.getJID(), removedRemoteOccupant, e);
            }
        }
    }
Removes a remote user from the room.

This method is intended to be used when a remote node is being disconnected from the FMUC node set, without having
sent 'leave' presence stanzas for its occupants. This method generates such presence stanzas, and delegates
further processing to {@link #makeRemoteOccupantLeaveRoom(Presence)}

@param removedRemoteOccupants The occupants to be removed from the room.
xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/FMUCHandler.java