Repository: incubator-drill Updated Branches: refs/heads/master 6dca24af0 -> 451dd608a
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/451dd608/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillPBError.java ---------------------------------------------------------------------- diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillPBError.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillPBError.java index 303f9b6..ac9cef5 100644 --- a/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillPBError.java +++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillPBError.java @@ -53,6 +53,7 @@ public final class DrillPBError implements Externalizable, Message<DrillPBError> private DrillbitEndpoint endpoint; private int errorType; private String message; + private ExceptionWrapper exception; private List<ParsingError> parsingError; public DrillPBError() @@ -114,6 +115,19 @@ public final class DrillPBError implements Externalizable, Message<DrillPBError> return this; } + // exception + + public ExceptionWrapper getException() + { + return exception; + } + + public DrillPBError setException(ExceptionWrapper exception) + { + this.exception = exception; + return this; + } + // parsingError public List<ParsingError> getParsingErrorList() @@ -195,6 +209,10 @@ public final class DrillPBError implements Externalizable, Message<DrillPBError> message.message = input.readString(); break; case 5: + message.exception = input.mergeObject(message.exception, ExceptionWrapper.getSchema()); + break; + + case 6: if(message.parsingError == null) message.parsingError = new ArrayList<ParsingError>(); message.parsingError.add(input.mergeObject(null, ParsingError.getSchema())); @@ -222,12 +240,16 @@ public final class DrillPBError implements Externalizable, Message<DrillPBError> if(message.message != null) output.writeString(4, message.message, false); + if(message.exception != null) + output.writeObject(5, message.exception, ExceptionWrapper.getSchema(), false); + + if(message.parsingError != null) { for(ParsingError parsingError : message.parsingError) { if(parsingError != null) - output.writeObject(5, parsingError, ParsingError.getSchema(), true); + output.writeObject(6, parsingError, ParsingError.getSchema(), true); } } @@ -241,7 +263,8 @@ public final class DrillPBError implements Externalizable, Message<DrillPBError> case 2: return "endpoint"; case 3: return "errorType"; case 4: return "message"; - case 5: return "parsingError"; + case 5: return "exception"; + case 6: return "parsingError"; default: return null; } } @@ -259,7 +282,8 @@ public final class DrillPBError implements Externalizable, Message<DrillPBError> __fieldMap.put("endpoint", 2); __fieldMap.put("errorType", 3); __fieldMap.put("message", 4); - __fieldMap.put("parsingError", 5); + __fieldMap.put("exception", 5); + __fieldMap.put("parsingError", 6); } } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/451dd608/protocol/src/main/java/org/apache/drill/exec/proto/beans/ExceptionWrapper.java ---------------------------------------------------------------------- diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/ExceptionWrapper.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/ExceptionWrapper.java new file mode 100644 index 0000000..c6e8b35 --- /dev/null +++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/ExceptionWrapper.java @@ -0,0 +1,243 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT! +// Generated from protobuf + +package org.apache.drill.exec.proto.beans; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.ArrayList; +import java.util.List; + +import com.dyuproject.protostuff.GraphIOUtil; +import com.dyuproject.protostuff.Input; +import com.dyuproject.protostuff.Message; +import com.dyuproject.protostuff.Output; +import com.dyuproject.protostuff.Schema; + +public final class ExceptionWrapper implements Externalizable, Message<ExceptionWrapper>, Schema<ExceptionWrapper> +{ + + public static Schema<ExceptionWrapper> getSchema() + { + return DEFAULT_INSTANCE; + } + + public static ExceptionWrapper getDefaultInstance() + { + return DEFAULT_INSTANCE; + } + + static final ExceptionWrapper DEFAULT_INSTANCE = new ExceptionWrapper(); + + + private String exceptionClass; + private String message; + private List<StackTraceElementWrapper> stackTrace; + private ExceptionWrapper cause; + + public ExceptionWrapper() + { + + } + + // getters and setters + + // exceptionClass + + public String getExceptionClass() + { + return exceptionClass; + } + + public ExceptionWrapper setExceptionClass(String exceptionClass) + { + this.exceptionClass = exceptionClass; + return this; + } + + // message + + public String getMessage() + { + return message; + } + + public ExceptionWrapper setMessage(String message) + { + this.message = message; + return this; + } + + // stackTrace + + public List<StackTraceElementWrapper> getStackTraceList() + { + return stackTrace; + } + + public ExceptionWrapper setStackTraceList(List<StackTraceElementWrapper> stackTrace) + { + this.stackTrace = stackTrace; + return this; + } + + // cause + + public ExceptionWrapper getCause() + { + return cause; + } + + public ExceptionWrapper setCause(ExceptionWrapper cause) + { + this.cause = cause; + return this; + } + + // java serialization + + public void readExternal(ObjectInput in) throws IOException + { + GraphIOUtil.mergeDelimitedFrom(in, this, this); + } + + public void writeExternal(ObjectOutput out) throws IOException + { + GraphIOUtil.writeDelimitedTo(out, this, this); + } + + // message method + + public Schema<ExceptionWrapper> cachedSchema() + { + return DEFAULT_INSTANCE; + } + + // schema methods + + public ExceptionWrapper newMessage() + { + return new ExceptionWrapper(); + } + + public Class<ExceptionWrapper> typeClass() + { + return ExceptionWrapper.class; + } + + public String messageName() + { + return ExceptionWrapper.class.getSimpleName(); + } + + public String messageFullName() + { + return ExceptionWrapper.class.getName(); + } + + public boolean isInitialized(ExceptionWrapper message) + { + return true; + } + + public void mergeFrom(Input input, ExceptionWrapper message) throws IOException + { + for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this)) + { + switch(number) + { + case 0: + return; + case 1: + message.exceptionClass = input.readString(); + break; + case 2: + message.message = input.readString(); + break; + case 3: + if(message.stackTrace == null) + message.stackTrace = new ArrayList<StackTraceElementWrapper>(); + message.stackTrace.add(input.mergeObject(null, StackTraceElementWrapper.getSchema())); + break; + + case 4: + message.cause = input.mergeObject(message.cause, ExceptionWrapper.getSchema()); + break; + + default: + input.handleUnknownField(number, this); + } + } + } + + + public void writeTo(Output output, ExceptionWrapper message) throws IOException + { + if(message.exceptionClass != null) + output.writeString(1, message.exceptionClass, false); + + if(message.message != null) + output.writeString(2, message.message, false); + + if(message.stackTrace != null) + { + for(StackTraceElementWrapper stackTrace : message.stackTrace) + { + if(stackTrace != null) + output.writeObject(3, stackTrace, StackTraceElementWrapper.getSchema(), true); + } + } + + + if(message.cause != null) + output.writeObject(4, message.cause, ExceptionWrapper.getSchema(), false); + + } + + public String getFieldName(int number) + { + switch(number) + { + case 1: return "exceptionClass"; + case 2: return "message"; + case 3: return "stackTrace"; + case 4: return "cause"; + default: return null; + } + } + + public int getFieldNumber(String name) + { + final Integer number = __fieldMap.get(name); + return number == null ? 0 : number.intValue(); + } + + private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>(); + static + { + __fieldMap.put("exceptionClass", 1); + __fieldMap.put("message", 2); + __fieldMap.put("stackTrace", 3); + __fieldMap.put("cause", 4); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/451dd608/protocol/src/main/java/org/apache/drill/exec/proto/beans/InitializeFragments.java ---------------------------------------------------------------------- diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/InitializeFragments.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/InitializeFragments.java new file mode 100644 index 0000000..f6c326d --- /dev/null +++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/InitializeFragments.java @@ -0,0 +1,175 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT! +// Generated from protobuf + +package org.apache.drill.exec.proto.beans; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.ArrayList; +import java.util.List; + +import com.dyuproject.protostuff.GraphIOUtil; +import com.dyuproject.protostuff.Input; +import com.dyuproject.protostuff.Message; +import com.dyuproject.protostuff.Output; +import com.dyuproject.protostuff.Schema; + +public final class InitializeFragments implements Externalizable, Message<InitializeFragments>, Schema<InitializeFragments> +{ + + public static Schema<InitializeFragments> getSchema() + { + return DEFAULT_INSTANCE; + } + + public static InitializeFragments getDefaultInstance() + { + return DEFAULT_INSTANCE; + } + + static final InitializeFragments DEFAULT_INSTANCE = new InitializeFragments(); + + + private List<PlanFragment> fragment; + + public InitializeFragments() + { + + } + + // getters and setters + + // fragment + + public List<PlanFragment> getFragmentList() + { + return fragment; + } + + public InitializeFragments setFragmentList(List<PlanFragment> fragment) + { + this.fragment = fragment; + return this; + } + + // java serialization + + public void readExternal(ObjectInput in) throws IOException + { + GraphIOUtil.mergeDelimitedFrom(in, this, this); + } + + public void writeExternal(ObjectOutput out) throws IOException + { + GraphIOUtil.writeDelimitedTo(out, this, this); + } + + // message method + + public Schema<InitializeFragments> cachedSchema() + { + return DEFAULT_INSTANCE; + } + + // schema methods + + public InitializeFragments newMessage() + { + return new InitializeFragments(); + } + + public Class<InitializeFragments> typeClass() + { + return InitializeFragments.class; + } + + public String messageName() + { + return InitializeFragments.class.getSimpleName(); + } + + public String messageFullName() + { + return InitializeFragments.class.getName(); + } + + public boolean isInitialized(InitializeFragments message) + { + return true; + } + + public void mergeFrom(Input input, InitializeFragments message) throws IOException + { + for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this)) + { + switch(number) + { + case 0: + return; + case 1: + if(message.fragment == null) + message.fragment = new ArrayList<PlanFragment>(); + message.fragment.add(input.mergeObject(null, PlanFragment.getSchema())); + break; + + default: + input.handleUnknownField(number, this); + } + } + } + + + public void writeTo(Output output, InitializeFragments message) throws IOException + { + if(message.fragment != null) + { + for(PlanFragment fragment : message.fragment) + { + if(fragment != null) + output.writeObject(1, fragment, PlanFragment.getSchema(), true); + } + } + + } + + public String getFieldName(int number) + { + switch(number) + { + case 1: return "fragment"; + default: return null; + } + } + + public int getFieldNumber(String name) + { + final Integer number = __fieldMap.get(name); + return number == null ? 0 : number.intValue(); + } + + private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>(); + static + { + __fieldMap.put("fragment", 1); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/451dd608/protocol/src/main/java/org/apache/drill/exec/proto/beans/StackTraceElementWrapper.java ---------------------------------------------------------------------- diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/StackTraceElementWrapper.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/StackTraceElementWrapper.java new file mode 100644 index 0000000..25681fd --- /dev/null +++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/StackTraceElementWrapper.java @@ -0,0 +1,251 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT! +// Generated from protobuf + +package org.apache.drill.exec.proto.beans; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; + +import com.dyuproject.protostuff.GraphIOUtil; +import com.dyuproject.protostuff.Input; +import com.dyuproject.protostuff.Message; +import com.dyuproject.protostuff.Output; +import com.dyuproject.protostuff.Schema; + +public final class StackTraceElementWrapper implements Externalizable, Message<StackTraceElementWrapper>, Schema<StackTraceElementWrapper> +{ + + public static Schema<StackTraceElementWrapper> getSchema() + { + return DEFAULT_INSTANCE; + } + + public static StackTraceElementWrapper getDefaultInstance() + { + return DEFAULT_INSTANCE; + } + + static final StackTraceElementWrapper DEFAULT_INSTANCE = new StackTraceElementWrapper(); + + + private String className; + private String fileName; + private int lineNumber; + private String methodName; + private Boolean isNativeMethod; + + public StackTraceElementWrapper() + { + + } + + // getters and setters + + // className + + public String getClassName() + { + return className; + } + + public StackTraceElementWrapper setClassName(String className) + { + this.className = className; + return this; + } + + // fileName + + public String getFileName() + { + return fileName; + } + + public StackTraceElementWrapper setFileName(String fileName) + { + this.fileName = fileName; + return this; + } + + // lineNumber + + public int getLineNumber() + { + return lineNumber; + } + + public StackTraceElementWrapper setLineNumber(int lineNumber) + { + this.lineNumber = lineNumber; + return this; + } + + // methodName + + public String getMethodName() + { + return methodName; + } + + public StackTraceElementWrapper setMethodName(String methodName) + { + this.methodName = methodName; + return this; + } + + // isNativeMethod + + public Boolean getIsNativeMethod() + { + return isNativeMethod; + } + + public StackTraceElementWrapper setIsNativeMethod(Boolean isNativeMethod) + { + this.isNativeMethod = isNativeMethod; + return this; + } + + // java serialization + + public void readExternal(ObjectInput in) throws IOException + { + GraphIOUtil.mergeDelimitedFrom(in, this, this); + } + + public void writeExternal(ObjectOutput out) throws IOException + { + GraphIOUtil.writeDelimitedTo(out, this, this); + } + + // message method + + public Schema<StackTraceElementWrapper> cachedSchema() + { + return DEFAULT_INSTANCE; + } + + // schema methods + + public StackTraceElementWrapper newMessage() + { + return new StackTraceElementWrapper(); + } + + public Class<StackTraceElementWrapper> typeClass() + { + return StackTraceElementWrapper.class; + } + + public String messageName() + { + return StackTraceElementWrapper.class.getSimpleName(); + } + + public String messageFullName() + { + return StackTraceElementWrapper.class.getName(); + } + + public boolean isInitialized(StackTraceElementWrapper message) + { + return true; + } + + public void mergeFrom(Input input, StackTraceElementWrapper message) throws IOException + { + for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this)) + { + switch(number) + { + case 0: + return; + case 1: + message.className = input.readString(); + break; + case 2: + message.fileName = input.readString(); + break; + case 3: + message.lineNumber = input.readInt32(); + break; + case 4: + message.methodName = input.readString(); + break; + case 5: + message.isNativeMethod = input.readBool(); + break; + default: + input.handleUnknownField(number, this); + } + } + } + + + public void writeTo(Output output, StackTraceElementWrapper message) throws IOException + { + if(message.className != null) + output.writeString(1, message.className, false); + + if(message.fileName != null) + output.writeString(2, message.fileName, false); + + if(message.lineNumber != 0) + output.writeInt32(3, message.lineNumber, false); + + if(message.methodName != null) + output.writeString(4, message.methodName, false); + + if(message.isNativeMethod != null) + output.writeBool(5, message.isNativeMethod, false); + } + + public String getFieldName(int number) + { + switch(number) + { + case 1: return "className"; + case 2: return "fileName"; + case 3: return "lineNumber"; + case 4: return "methodName"; + case 5: return "isNativeMethod"; + default: return null; + } + } + + public int getFieldNumber(String name) + { + final Integer number = __fieldMap.get(name); + return number == null ? 0 : number.intValue(); + } + + private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>(); + static + { + __fieldMap.put("className", 1); + __fieldMap.put("fileName", 2); + __fieldMap.put("lineNumber", 3); + __fieldMap.put("methodName", 4); + __fieldMap.put("isNativeMethod", 5); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/451dd608/protocol/src/main/protobuf/BitControl.proto ---------------------------------------------------------------------- diff --git a/protocol/src/main/protobuf/BitControl.proto b/protocol/src/main/protobuf/BitControl.proto index 4398b63..1fc5bb3 100644 --- a/protocol/src/main/protobuf/BitControl.proto +++ b/protocol/src/main/protobuf/BitControl.proto @@ -16,7 +16,7 @@ enum RpcType { GOODBYE = 2; // bit requests - REQ_INIATILIZE_FRAGMENT = 3; // Returns Handle + REQ_INIATILIZE_FRAGMENTS = 3; // Returns Handle REQ_CANCEL_FRAGMENT = 6; // send a cancellation message for a fragment, returns Ack REQ_RECEIVER_FINISHED = 7; @@ -47,6 +47,10 @@ message FragmentStatus { optional FragmentHandle handle = 2; } +message InitializeFragments { + repeated PlanFragment fragment = 1; +} + message PlanFragment { optional FragmentHandle handle = 1; optional float network_cost = 4; http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/451dd608/protocol/src/main/protobuf/GeneralRPC.proto ---------------------------------------------------------------------- diff --git a/protocol/src/main/protobuf/GeneralRPC.proto b/protocol/src/main/protobuf/GeneralRPC.proto index 48011bf..5538abe 100644 --- a/protocol/src/main/protobuf/GeneralRPC.proto +++ b/protocol/src/main/protobuf/GeneralRPC.proto @@ -28,12 +28,6 @@ message CompleteRpcMessage { optional bytes raw_body = 3; // optional } -// Class to be used when an unexpected exception occurs while a rpc call is being evaluated. -message RpcFailure { - optional int64 error_id = 1; // for server trackback. - optional int32 error_code = 2; // system defined error code. - optional string short_error = 3; - optional string long_error = 4; -} + http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/451dd608/protocol/src/main/protobuf/UserBitShared.proto ---------------------------------------------------------------------- diff --git a/protocol/src/main/protobuf/UserBitShared.proto b/protocol/src/main/protobuf/UserBitShared.proto index 3ad9a09..fc2e89f 100644 --- a/protocol/src/main/protobuf/UserBitShared.proto +++ b/protocol/src/main/protobuf/UserBitShared.proto @@ -34,9 +34,26 @@ message DrillPBError{ optional DrillbitEndpoint endpoint = 2; optional int32 error_type = 3; optional string message = 4; - repeated ParsingError parsing_error = 5; //optional, used when providing location of error within a piece of text. + optional ExceptionWrapper exception = 5; + repeated ParsingError parsing_error = 6; //optional, used when providing location of error within a piece of text. } +message ExceptionWrapper { + optional string exception_class = 1; + optional string message = 2; + repeated StackTraceElementWrapper stack_trace = 3; + optional ExceptionWrapper cause = 4; +} + +message StackTraceElementWrapper { + optional string class_name = 1; + optional string file_name = 2; + optional int32 line_number = 3; + optional string method_name = 4; + optional bool is_native_method = 5; +} + + message ParsingError{ optional int32 start_column = 2; optional int32 start_row = 3;