/** @override {@link Thread}{@link #run()} to perform all asynchronous tasks. */ @Override public void run() { ChatRoom chatRoom = chatRoomWrapper.getChatRoom(); try { if (password != null && password.length > 0) chatRoom.joinAs(nickName, password); else if (nickName != null) chatRoom.joinAs(nickName); else chatRoom.join(); done(JOIN_SUCCESS_PROP); } catch (OperationFailedException e) { if (logger.isTraceEnabled()) logger.trace("Failed to join chat room: " + chatRoom.getName(), e); switch (e.getErrorCode()) { case OperationFailedException.AUTHENTICATION_FAILED: done(JOIN_AUTHENTICATION_FAILED_PROP); break; case OperationFailedException.REGISTRATION_REQUIRED: done(JOIN_REGISTRATION_REQUIRED_PROP); break; case OperationFailedException.PROVIDER_NOT_REGISTERED: done(JOIN_PROVIDER_NOT_REGISTERED_PROP); break; case OperationFailedException.SUBSCRIPTION_ALREADY_EXISTS: done(JOIN_SUBSCRIPTION_ALREADY_EXISTS_PROP); break; default: done(JOIN_UNKNOWN_ERROR_PROP); } } }
@Override public void run() { try { presence.publishPresenceStatus(status, ""); } catch (IllegalArgumentException e1) { logger.error("Error - changing status", e1); } catch (IllegalStateException e1) { logger.error("Error - changing status", e1); } catch (OperationFailedException e1) { if (e1.getErrorCode() == OperationFailedException.GENERAL_ERROR) { String msgText = GuiActivator.getResources() .getI18NString( "service.gui.STATUS_CHANGE_GENERAL_ERROR", new String[] { protocolProvider.getAccountID().getUserID(), protocolProvider.getAccountID().getService() }); new ErrorDialog( null, GuiActivator.getResources().getI18NString("service.gui.GENERAL_ERROR"), msgText, e1) .showDialog(); } else if (e1.getErrorCode() == OperationFailedException.NETWORK_FAILURE) { String msgText = GuiActivator.getResources() .getI18NString( "service.gui.STATUS_CHANGE_NETWORK_FAILURE", new String[] { protocolProvider.getAccountID().getUserID(), protocolProvider.getAccountID().getService() }); new ErrorDialog( null, msgText, GuiActivator.getResources().getI18NString("service.gui.NETWORK_FAILURE"), e1) .showDialog(); } else if (e1.getErrorCode() == OperationFailedException.PROVIDER_NOT_REGISTERED) { String msgText = GuiActivator.getResources() .getI18NString( "service.gui.STATUS_CHANGE_NETWORK_FAILURE", new String[] { protocolProvider.getAccountID().getUserID(), protocolProvider.getAccountID().getService() }); new ErrorDialog( null, GuiActivator.getResources().getI18NString("service.gui.NETWORK_FAILURE"), msgText, e1) .showDialog(); } logger.error("Error - changing status", e1); } }