@SuppressWarnings("unchecked")
	protected void execute() {
		
		Calendar cal = Calendar.getInstance();
		long start = cal.getTimeInMillis();
		try {

			R response = null;

			Request request = null;
			if(this.views.getSelectedComponent() != this.requestView) {
				request = this.getRequest();
			}

			if(request == null) {
				Document doc = this.requestView.getDocument();
				this.requestView.validate();
				this.query.setDocument(doc);
			}

			response = (R)this.query.execute();
			
			this.setResponse(response.getRawValue(), start);
		} catch(Exception e) {
			this.setResponse(e.getMessage() + "\n" + Utilities.getStackTrace(e), start);
		}

		this.views.setSelectedComponent(this.responseView);
	}