public void run(){
        try{
			ServerType serverType = server.getServerType();
			responseOptions = serverType.process(server, instruction, requestOptions);
			if(ActionResult.isSuccessResult(responseOptions))
			      result = Progress.Result.SUCCESS;
			else if(ActionResult.isFailureResult(responseOptions))
				  result = Progress.Result.FAILURE;
			else if(ActionResult.isStoppedResult(responseOptions))
				  result = Progress.Result.STOPPED;
			else
			      throw new ProgressException(ActionResult.INVALID_RESULT_MESSAGE);
		}catch(ProgressException pe){
			result = Progress.Result.FAILURE;
			responseOptions = ActionResult.makeFailureResult(pe.getMessage());
	    }catch(Exception e){
			result = Progress.Result.FAILURE;
			responseOptions = ActionResult.makeFailureResult(e.getMessage());
		}
	}