Json X Session

Boa tarde Pessoal,

tenho o seguinte Json,


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>   
<%@ page import="com.br.util.funcoesValidacao"%>    
<%
session = request.getSession();
String machine = null;
String user    = null;
String auth = request.getHeader("Authorization");
if (auth == null) {
        response.setStatus(response.SC_UNAUTHORIZED);
        response.setHeader("WWW-Authenticate", "NTLM");
        return;
}
if (auth.startsWith("NTLM ")) { 
        byte[] msg = 
           new sun.misc.BASE64Decoder().decodeBuffer(auth.substring(5));
        int off = 0, length, offset;
        String s;

        if (msg[8] == 1) { 
            off = 18;

            byte z = 0;
            byte[] msg1 =
                {(byte)'N', (byte)'T', (byte)'L', (byte)'M', (byte)'S',
                (byte)'S', (byte)'P', z,
                (byte)2, z, z, z, z, z, z, z,
                (byte)40, z, z, z, (byte)1, (byte)130, z, z,
                z, (byte)2, (byte)2, (byte)2, z, z, z, z, // 
                z, z, z, z, z, z, z, z};
            // 
            response.setStatus(response.SC_UNAUTHORIZED);
            response.setHeader("WWW-Authenticate", "NTLM " 
               + new sun.misc.BASE64Encoder().encodeBuffer(msg1).trim());
            return;
        } 
        else if (msg[8] == 3) { 
                off = 30;
                length = msg[off+17]*256 + msg[off+16];
                offset = msg[off+19]*256 + msg[off+18];
                s = new String(msg, offset, length);
                //out.println(s + " ");
                machine = s.toString();
        } 
        else
                return;

        length = msg[off+1]*256 + msg[off];
        offset = msg[off+3]*256 + msg[off+2];
        s = new String(msg, offset, length);
        //out.println(s + " ");
        length = msg[off+9]*256 + msg[off+8];
        offset = msg[off+11]*256 + msg[off+10];
        s = new String(msg, offset, length);
        user = s.toString();
        session.setAttribute("vUser",user);
        System.out.println("Atribuiu para o session");
        out.println("'" + user + "-" + machine + "'");
        }
%> 
    

Para buscar o meu usuario logado na maquina.

e chamo ele através da seguinte pagina

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>	
<head>
<title>Portal de Suporte ao Comissionamento</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<link href='http://fonts.googleapis.com/css?family=Droid+Sans' rel='stylesheet' type='text/css'>
<link href="style.css" media="screen" rel="stylesheet" type="text/css">
<link href="iconic.css" media="screen" rel="stylesheet" type="text/css">
<script src="prefix-free.js"> </script>
<!--[if IE]>
 <script type="text/javascript">
	document.createElement("article");
	document.createElement("nav");
	document.createElement("details");
	document.createElement("figcaption");
	document.createElement("hgroup");
	document.createElement("section");
	document.createElement("header");
	document.createElement("aside");
	document.createElement("figure");
	document.createElement("menu");
	document.createElement("legend");
	document.createElement("hover");
	document.createElement("footer");
</script>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif] -->
<script type="text/javascript"> 
	var url		 = "ajax.jsp";
	
    var xmlhttp;
    try {
	    //cria o objeto caso o Browser
        //seja compatível com o W3C
        xmlhttp = new XMLHttpRequest();
    } catch(e) {
        //caso IE < IE7
        //array com versões conhecidas
        //de implementações do ActiveX
        var msxml = [
                   'MSXML2.XMLHTTP.3.0', 
                   'MSXML2.XMLHTTP', 
                   'Microsoft.XMLHTTP'];
        for ( var i=0, len = msxml.length; i < len; ++i ) {
            try {
                //varre o array até identificar qual ActiveX
                xmlhttp = new ActiveXObject(msxml[i]); break;
            } catch(e) {}
        }
    }	
    
		xmlhttp.open("GET", url, true);
		xmlhttp.onreadystatechange = function(){
			if (xmlhttp.readyState==4){
				var vConteudo = xmlhttp.responseText;
				for(var i = 0; i < vConteudo.length; i++){
					
				}
			}
		}
		xmlhttp.send(null);
		
		xmlhttp.open("GET", url, true);
		xmlhttp.onreadystatechange = function(){
			if (xmlhttp.readyState==4){
				var vConteudo = xmlhttp.responseText;
				for(var i = 0; i < vConteudo.length; i++){
					
				}
			}
		}
		xmlhttp.send(null);		
</script>
</head> 
<body>	
 <%
  session = request.getSession();
  String vUser = (String) session.getAttribute("vUser");
 %>
 <%=vUser%>
</body>
</html>

O problema e que alguma vezes o resultado da busca e nula. e ao dar um refresh na pagina ele aparece.
O que parece que o mesmo em alguns momentos não está sendo executado.

Alguem poderia me ajudar a solucionar este misterio ?

grato,