public class org.apache.hive.service.servlet.QueriesRESTfulAPIServlet extends javax.servlet.http.HttpServlet
{
private static final long serialVersionUID;
private static final org.slf4j.Logger LOG;
private static final java.lang.String API_V1;
private static final java.lang.String REQ_QUERIES;
private static final java.lang.String REQ_SESSIONS;
private static final java.lang.String REQ_ACTIVE;
private static final java.lang.String REQ_HISTORICAL;
public void <init>()
{
org.apache.hive.service.servlet.QueriesRESTfulAPIServlet v;
v := @this: org.apache.hive.service.servlet.QueriesRESTfulAPIServlet;
specialinvoke v.<javax.servlet.http.HttpServlet: void <init>()>();
return;
}
public void doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) throws javax.servlet.ServletException, java.io.IOException
{
java.lang.Integer v, v, v, v, v, v;
boolean v, v, v, v, v, v;
org.apache.hive.service.servlet.QueriesRESTfulAPIServlet v;
java.util.Collection v;
org.apache.hive.service.cli.operation.OperationManager v;
java.util.List v, v;
java.lang.String[] v;
javax.servlet.http.HttpServletRequest v;
int v, v;
java.lang.String v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v;
javax.servlet.http.HttpServletResponse v;
java.lang.Object v;
javax.servlet.ServletContext v;
v := @this: org.apache.hive.service.servlet.QueriesRESTfulAPIServlet;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: javax.servlet.http.HttpServletResponse;
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getPathInfo()>();
if v == null goto label;
v = "/";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(400);
specialinvoke v.<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: void sendError(javax.servlet.http.HttpServletResponse,java.lang.Integer,java.lang.String)>(v, v, "Path to the endpoint is missing");
return;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>("/");
v = lengthof v;
if v >= 3 goto label;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(400);
specialinvoke v.<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: void sendError(javax.servlet.http.HttpServletResponse,java.lang.Integer,java.lang.String)>(v, v, "Expecting at least 2 parts in the path");
return;
label:
v = virtualinvoke v.<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: javax.servlet.ServletContext getServletContext()>();
v = interfaceinvoke v.<javax.servlet.ServletContext: java.lang.Object getAttribute(java.lang.String)>("hive.sm");
v = virtualinvoke v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.cli.operation.OperationManager getOperationManager()>();
v = v[1];
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("v1");
if v == 0 goto label;
v = v[2];
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("queries");
if v == 0 goto label;
v = lengthof v;
if v == 4 goto label;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(404);
specialinvoke v.<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: void sendError(javax.servlet.http.HttpServletResponse,java.lang.Integer,java.lang.String)>(v, v, "Expecting 3 parts in the path: /v1/queries/active or /v1/queries/historical");
return;
label:
v = v[3];
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("active");
if v == 0 goto label;
v = virtualinvoke v.<org.apache.hive.service.cli.operation.OperationManager: java.util.List getLiveQueryInfos()>();
v = <org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Returning active SQL operations via the RESTful API");
specialinvoke v.<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: void sendAsJson(javax.servlet.http.HttpServletResponse,java.lang.Object)>(v, v);
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("historical");
if v == 0 goto label;
v = virtualinvoke v.<org.apache.hive.service.cli.operation.OperationManager: java.util.List getHistoricalQueryInfos()>();
v = <org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Returning historical SQL operations via the RESTful API");
specialinvoke v.<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: void sendAsJson(javax.servlet.http.HttpServletResponse,java.lang.Object)>(v, v);
goto label;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(400);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unknown query type: \u0001");
specialinvoke v.<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: void sendError(javax.servlet.http.HttpServletResponse,java.lang.Integer,java.lang.String)>(v, v, v);
return;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("sessions");
if v == 0 goto label;
v = virtualinvoke v.<org.apache.hive.service.cli.session.SessionManager: java.util.Collection getSessions()>();
v = <org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Returning active sessions via the RESTful API");
specialinvoke v.<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: void sendAsJson(javax.servlet.http.HttpServletResponse,java.lang.Object)>(v, v);
goto label;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(404);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unknown request type: \u0001");
specialinvoke v.<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: void sendError(javax.servlet.http.HttpServletResponse,java.lang.Integer,java.lang.String)>(v, v, v);
return;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(400);
specialinvoke v.<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: void sendError(javax.servlet.http.HttpServletResponse,java.lang.Integer,java.lang.String)>(v, v, "This server only handles API v1");
return;
label:
return;
}
private void sendError(javax.servlet.http.HttpServletResponse, java.lang.Integer, java.lang.String)
{
java.io.PrintWriter v;
org.slf4j.Logger v;
javax.servlet.http.HttpServletResponse v;
java.io.IOException v;
java.lang.Integer v;
int v;
java.lang.String v, v;
org.apache.hive.service.servlet.QueriesRESTfulAPIServlet v;
v := @this: org.apache.hive.service.servlet.QueriesRESTfulAPIServlet;
v := @parameter: javax.servlet.http.HttpServletResponse;
v := @parameter: java.lang.Integer;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setStatus(int)>(v);
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setContentType(java.lang.String)>("application/json");
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setCharacterEncoding(java.lang.String)>("UTF-8");
label:
v = interfaceinvoke v.<javax.servlet.http.HttpServletResponse: java.io.PrintWriter getWriter()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("{\"message\" : \u0001}");
virtualinvoke v.<java.io.PrintWriter: void write(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Caught an exception while writing an HTTP error status", v);
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setStatus(int)>(500);
label:
return;
catch java.io.IOException from label to label with label;
}
private void sendAsJson(javax.servlet.http.HttpServletResponse, java.lang.Object)
{
java.io.PrintWriter v;
org.slf4j.Logger v;
com.fasterxml.jackson.databind.ObjectMapper v;
javax.servlet.http.HttpServletResponse v;
org.apache.hive.service.servlet.QueriesRESTfulAPIServlet$HiveSessionSerializer v;
com.fasterxml.jackson.core.Version v;
java.io.IOException v;
com.fasterxml.jackson.databind.module.SimpleModule v;
java.lang.Object v;
java.lang.String v;
org.apache.hive.service.servlet.QueriesRESTfulAPIServlet v;
v := @this: org.apache.hive.service.servlet.QueriesRESTfulAPIServlet;
v := @parameter: javax.servlet.http.HttpServletResponse;
v := @parameter: java.lang.Object;
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setContentType(java.lang.String)>("application/json");
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setStatus(int)>(200);
v = new com.fasterxml.jackson.databind.ObjectMapper;
specialinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: void <init>()>();
v = new com.fasterxml.jackson.databind.module.SimpleModule;
v = new com.fasterxml.jackson.core.Version;
specialinvoke v.<com.fasterxml.jackson.core.Version: void <init>(int,int,int,java.lang.String,java.lang.String,java.lang.String)>(1, 0, 0, null, null, null);
specialinvoke v.<com.fasterxml.jackson.databind.module.SimpleModule: void <init>(java.lang.String,com.fasterxml.jackson.core.Version)>("CustomSessionModule", v);
v = new org.apache.hive.service.servlet.QueriesRESTfulAPIServlet$HiveSessionSerializer;
specialinvoke v.<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet$HiveSessionSerializer: void <init>()>();
virtualinvoke v.<com.fasterxml.jackson.databind.module.SimpleModule: com.fasterxml.jackson.databind.module.SimpleModule addSerializer(java.lang.Class,com.fasterxml.jackson.databind.JsonSerializer)>(class "Lorg/apache/hive/service/cli/session/HiveSession;", v);
virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.ObjectMapper registerModule(com.fasterxml.jackson.databind.Module)>(v);
label:
v = interfaceinvoke v.<javax.servlet.http.HttpServletResponse: java.io.PrintWriter getWriter()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: java.lang.String writeValueAsString(java.lang.Object)>(v);
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.String)>(v);
virtualinvoke v.<java.io.PrintWriter: void flush()>();
virtualinvoke v.<java.io.PrintWriter: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Caught an exception while writing an HTTP response", v);
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setStatus(int)>(500);
label:
return;
catch java.io.IOException from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/hive/service/servlet/QueriesRESTfulAPIServlet;");
<org.apache.hive.service.servlet.QueriesRESTfulAPIServlet: org.slf4j.Logger LOG> = v;
return;
}
}