Method getUserEmail() is Asynchronous Method Call. If you want to execute code after callBack then you should write it in the inner class :
public void getUserEmail(){
requestFactory.getUserEmailRequest().getUserEmail().fire(
new Receiver<String>() {
@Override
public void onSuccess(String result) {
userEmail = result;
HTML mHTML = new HTML();
mHTML.setHTML("<HTML><BODY> Logged in as " + userEmail + "</BODY></HTML>");
RootPanel.get().add(mHTML);
}
});
}