http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/451dd608/protocol/src/main/java/org/apache/drill/exec/proto/UserBitShared.java
----------------------------------------------------------------------
diff --git 
a/protocol/src/main/java/org/apache/drill/exec/proto/UserBitShared.java 
b/protocol/src/main/java/org/apache/drill/exec/proto/UserBitShared.java
index 4f01053..37d0eda 100644
--- a/protocol/src/main/java/org/apache/drill/exec/proto/UserBitShared.java
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/UserBitShared.java
@@ -1721,9 +1721,23 @@ public final class UserBitShared {
     com.google.protobuf.ByteString
         getMessageBytes();
 
-    // repeated .exec.shared.ParsingError parsing_error = 5;
+    // optional .exec.shared.ExceptionWrapper exception = 5;
     /**
-     * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+     * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+     */
+    boolean hasException();
+    /**
+     * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+     */
+    org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper getException();
+    /**
+     * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+     */
+    org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder 
getExceptionOrBuilder();
+
+    // repeated .exec.shared.ParsingError parsing_error = 6;
+    /**
+     * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
      *
      * <pre>
      *optional, used when providing location of error within a piece of text.
@@ -1732,7 +1746,7 @@ public final class UserBitShared {
     java.util.List<org.apache.drill.exec.proto.UserBitShared.ParsingError> 
         getParsingErrorList();
     /**
-     * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+     * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
      *
      * <pre>
      *optional, used when providing location of error within a piece of text.
@@ -1740,7 +1754,7 @@ public final class UserBitShared {
      */
     org.apache.drill.exec.proto.UserBitShared.ParsingError getParsingError(int 
index);
     /**
-     * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+     * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
      *
      * <pre>
      *optional, used when providing location of error within a piece of text.
@@ -1748,7 +1762,7 @@ public final class UserBitShared {
      */
     int getParsingErrorCount();
     /**
-     * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+     * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
      *
      * <pre>
      *optional, used when providing location of error within a piece of text.
@@ -1757,7 +1771,7 @@ public final class UserBitShared {
     java.util.List<? extends 
org.apache.drill.exec.proto.UserBitShared.ParsingErrorOrBuilder> 
         getParsingErrorOrBuilderList();
     /**
-     * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+     * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
      *
      * <pre>
      *optional, used when providing location of error within a piece of text.
@@ -1846,9 +1860,22 @@ public final class UserBitShared {
               break;
             }
             case 42: {
-              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
+              
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder subBuilder = 
null;
+              if (((bitField0_ & 0x00000010) == 0x00000010)) {
+                subBuilder = exception_.toBuilder();
+              }
+              exception_ = 
input.readMessage(org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.PARSER,
 extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(exception_);
+                exception_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000010;
+              break;
+            }
+            case 50: {
+              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                 parsingError_ = new 
java.util.ArrayList<org.apache.drill.exec.proto.UserBitShared.ParsingError>();
-                mutable_bitField0_ |= 0x00000010;
+                mutable_bitField0_ |= 0x00000020;
               }
               
parsingError_.add(input.readMessage(org.apache.drill.exec.proto.UserBitShared.ParsingError.PARSER,
 extensionRegistry));
               break;
@@ -1861,7 +1888,7 @@ public final class UserBitShared {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e.getMessage()).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
+        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
           parsingError_ = 
java.util.Collections.unmodifiableList(parsingError_);
         }
         this.unknownFields = unknownFields.build();
@@ -2032,11 +2059,33 @@ public final class UserBitShared {
       }
     }
 
-    // repeated .exec.shared.ParsingError parsing_error = 5;
-    public static final int PARSING_ERROR_FIELD_NUMBER = 5;
+    // optional .exec.shared.ExceptionWrapper exception = 5;
+    public static final int EXCEPTION_FIELD_NUMBER = 5;
+    private org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
exception_;
+    /**
+     * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+     */
+    public boolean hasException() {
+      return ((bitField0_ & 0x00000010) == 0x00000010);
+    }
+    /**
+     * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+     */
+    public org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
getException() {
+      return exception_;
+    }
+    /**
+     * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+     */
+    public org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder 
getExceptionOrBuilder() {
+      return exception_;
+    }
+
+    // repeated .exec.shared.ParsingError parsing_error = 6;
+    public static final int PARSING_ERROR_FIELD_NUMBER = 6;
     private 
java.util.List<org.apache.drill.exec.proto.UserBitShared.ParsingError> 
parsingError_;
     /**
-     * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+     * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
      *
      * <pre>
      *optional, used when providing location of error within a piece of text.
@@ -2046,7 +2095,7 @@ public final class UserBitShared {
       return parsingError_;
     }
     /**
-     * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+     * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
      *
      * <pre>
      *optional, used when providing location of error within a piece of text.
@@ -2057,7 +2106,7 @@ public final class UserBitShared {
       return parsingError_;
     }
     /**
-     * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+     * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
      *
      * <pre>
      *optional, used when providing location of error within a piece of text.
@@ -2067,7 +2116,7 @@ public final class UserBitShared {
       return parsingError_.size();
     }
     /**
-     * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+     * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
      *
      * <pre>
      *optional, used when providing location of error within a piece of text.
@@ -2077,7 +2126,7 @@ public final class UserBitShared {
       return parsingError_.get(index);
     }
     /**
-     * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+     * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
      *
      * <pre>
      *optional, used when providing location of error within a piece of text.
@@ -2093,6 +2142,7 @@ public final class UserBitShared {
       endpoint_ = 
org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.getDefaultInstance();
       errorType_ = 0;
       message_ = "";
+      exception_ = 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance();
       parsingError_ = java.util.Collections.emptyList();
     }
     private byte memoizedIsInitialized = -1;
@@ -2119,8 +2169,11 @@ public final class UserBitShared {
       if (((bitField0_ & 0x00000008) == 0x00000008)) {
         output.writeBytes(4, getMessageBytes());
       }
+      if (((bitField0_ & 0x00000010) == 0x00000010)) {
+        output.writeMessage(5, exception_);
+      }
       for (int i = 0; i < parsingError_.size(); i++) {
-        output.writeMessage(5, parsingError_.get(i));
+        output.writeMessage(6, parsingError_.get(i));
       }
       getUnknownFields().writeTo(output);
     }
@@ -2147,9 +2200,13 @@ public final class UserBitShared {
         size += com.google.protobuf.CodedOutputStream
           .computeBytesSize(4, getMessageBytes());
       }
+      if (((bitField0_ & 0x00000010) == 0x00000010)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(5, exception_);
+      }
       for (int i = 0; i < parsingError_.size(); i++) {
         size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(5, parsingError_.get(i));
+          .computeMessageSize(6, parsingError_.get(i));
       }
       size += getUnknownFields().getSerializedSize();
       memoizedSerializedSize = size;
@@ -2260,6 +2317,7 @@ public final class UserBitShared {
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
           getEndpointFieldBuilder();
+          getExceptionFieldBuilder();
           getParsingErrorFieldBuilder();
         }
       }
@@ -2281,9 +2339,15 @@ public final class UserBitShared {
         bitField0_ = (bitField0_ & ~0x00000004);
         message_ = "";
         bitField0_ = (bitField0_ & ~0x00000008);
+        if (exceptionBuilder_ == null) {
+          exception_ = 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance();
+        } else {
+          exceptionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000010);
         if (parsingErrorBuilder_ == null) {
           parsingError_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000010);
+          bitField0_ = (bitField0_ & ~0x00000020);
         } else {
           parsingErrorBuilder_.clear();
         }
@@ -2335,10 +2399,18 @@ public final class UserBitShared {
           to_bitField0_ |= 0x00000008;
         }
         result.message_ = message_;
+        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+          to_bitField0_ |= 0x00000010;
+        }
+        if (exceptionBuilder_ == null) {
+          result.exception_ = exception_;
+        } else {
+          result.exception_ = exceptionBuilder_.build();
+        }
         if (parsingErrorBuilder_ == null) {
-          if (((bitField0_ & 0x00000010) == 0x00000010)) {
+          if (((bitField0_ & 0x00000020) == 0x00000020)) {
             parsingError_ = 
java.util.Collections.unmodifiableList(parsingError_);
-            bitField0_ = (bitField0_ & ~0x00000010);
+            bitField0_ = (bitField0_ & ~0x00000020);
           }
           result.parsingError_ = parsingError_;
         } else {
@@ -2376,11 +2448,14 @@ public final class UserBitShared {
           message_ = other.message_;
           onChanged();
         }
+        if (other.hasException()) {
+          mergeException(other.getException());
+        }
         if (parsingErrorBuilder_ == null) {
           if (!other.parsingError_.isEmpty()) {
             if (parsingError_.isEmpty()) {
               parsingError_ = other.parsingError_;
-              bitField0_ = (bitField0_ & ~0x00000010);
+              bitField0_ = (bitField0_ & ~0x00000020);
             } else {
               ensureParsingErrorIsMutable();
               parsingError_.addAll(other.parsingError_);
@@ -2393,7 +2468,7 @@ public final class UserBitShared {
               parsingErrorBuilder_.dispose();
               parsingErrorBuilder_ = null;
               parsingError_ = other.parsingError_;
-              bitField0_ = (bitField0_ & ~0x00000010);
+              bitField0_ = (bitField0_ & ~0x00000020);
               parsingErrorBuilder_ = 
                 com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                    getParsingErrorFieldBuilder() : null;
@@ -2751,13 +2826,130 @@ public final class UserBitShared {
         return this;
       }
 
-      // repeated .exec.shared.ParsingError parsing_error = 5;
+      // optional .exec.shared.ExceptionWrapper exception = 5;
+      private org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
exception_ = 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance();
+      private com.google.protobuf.SingleFieldBuilder<
+          org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder> 
exceptionBuilder_;
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+       */
+      public boolean hasException() {
+        return ((bitField0_ & 0x00000010) == 0x00000010);
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+       */
+      public org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
getException() {
+        if (exceptionBuilder_ == null) {
+          return exception_;
+        } else {
+          return exceptionBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+       */
+      public Builder 
setException(org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper value) {
+        if (exceptionBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          exception_ = value;
+          onChanged();
+        } else {
+          exceptionBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000010;
+        return this;
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+       */
+      public Builder setException(
+          org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder 
builderForValue) {
+        if (exceptionBuilder_ == null) {
+          exception_ = builderForValue.build();
+          onChanged();
+        } else {
+          exceptionBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000010;
+        return this;
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+       */
+      public Builder 
mergeException(org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
value) {
+        if (exceptionBuilder_ == null) {
+          if (((bitField0_ & 0x00000010) == 0x00000010) &&
+              exception_ != 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance())
 {
+            exception_ =
+              
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.newBuilder(exception_).mergeFrom(value).buildPartial();
+          } else {
+            exception_ = value;
+          }
+          onChanged();
+        } else {
+          exceptionBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000010;
+        return this;
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+       */
+      public Builder clearException() {
+        if (exceptionBuilder_ == null) {
+          exception_ = 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance();
+          onChanged();
+        } else {
+          exceptionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000010);
+        return this;
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+       */
+      public 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder 
getExceptionBuilder() {
+        bitField0_ |= 0x00000010;
+        onChanged();
+        return getExceptionFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+       */
+      public 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder 
getExceptionOrBuilder() {
+        if (exceptionBuilder_ != null) {
+          return exceptionBuilder_.getMessageOrBuilder();
+        } else {
+          return exception_;
+        }
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper exception = 5;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilder<
+          org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder> 
+          getExceptionFieldBuilder() {
+        if (exceptionBuilder_ == null) {
+          exceptionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+              org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder>(
+                  exception_,
+                  getParentForChildren(),
+                  isClean());
+          exception_ = null;
+        }
+        return exceptionBuilder_;
+      }
+
+      // repeated .exec.shared.ParsingError parsing_error = 6;
       private 
java.util.List<org.apache.drill.exec.proto.UserBitShared.ParsingError> 
parsingError_ =
         java.util.Collections.emptyList();
       private void ensureParsingErrorIsMutable() {
-        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
+        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
           parsingError_ = new 
java.util.ArrayList<org.apache.drill.exec.proto.UserBitShared.ParsingError>(parsingError_);
-          bitField0_ |= 0x00000010;
+          bitField0_ |= 0x00000020;
          }
       }
 
@@ -2765,7 +2957,7 @@ public final class UserBitShared {
           org.apache.drill.exec.proto.UserBitShared.ParsingError, 
org.apache.drill.exec.proto.UserBitShared.ParsingError.Builder, 
org.apache.drill.exec.proto.UserBitShared.ParsingErrorOrBuilder> 
parsingErrorBuilder_;
 
       /**
-       * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
        *
        * <pre>
        *optional, used when providing location of error within a piece of text.
@@ -2779,7 +2971,7 @@ public final class UserBitShared {
         }
       }
       /**
-       * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
        *
        * <pre>
        *optional, used when providing location of error within a piece of text.
@@ -2793,7 +2985,7 @@ public final class UserBitShared {
         }
       }
       /**
-       * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
        *
        * <pre>
        *optional, used when providing location of error within a piece of text.
@@ -2807,7 +2999,7 @@ public final class UserBitShared {
         }
       }
       /**
-       * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
        *
        * <pre>
        *optional, used when providing location of error within a piece of text.
@@ -2828,250 +3020,2376 @@ public final class UserBitShared {
         return this;
       }
       /**
-       * <code>repeated .exec.shared.ParsingError parsing_error = 5;</code>
-       *
-       * <pre>
-       *optional, used when providing location of error within a piece of text.
-       * </pre>
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public Builder setParsingError(
+          int index, 
org.apache.drill.exec.proto.UserBitShared.ParsingError.Builder builderForValue) 
{
+        if (parsingErrorBuilder_ == null) {
+          ensureParsingErrorIsMutable();
+          parsingError_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          parsingErrorBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public Builder 
addParsingError(org.apache.drill.exec.proto.UserBitShared.ParsingError value) {
+        if (parsingErrorBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureParsingErrorIsMutable();
+          parsingError_.add(value);
+          onChanged();
+        } else {
+          parsingErrorBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public Builder addParsingError(
+          int index, org.apache.drill.exec.proto.UserBitShared.ParsingError 
value) {
+        if (parsingErrorBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureParsingErrorIsMutable();
+          parsingError_.add(index, value);
+          onChanged();
+        } else {
+          parsingErrorBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public Builder addParsingError(
+          org.apache.drill.exec.proto.UserBitShared.ParsingError.Builder 
builderForValue) {
+        if (parsingErrorBuilder_ == null) {
+          ensureParsingErrorIsMutable();
+          parsingError_.add(builderForValue.build());
+          onChanged();
+        } else {
+          parsingErrorBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public Builder addParsingError(
+          int index, 
org.apache.drill.exec.proto.UserBitShared.ParsingError.Builder builderForValue) 
{
+        if (parsingErrorBuilder_ == null) {
+          ensureParsingErrorIsMutable();
+          parsingError_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          parsingErrorBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public Builder addAllParsingError(
+          java.lang.Iterable<? extends 
org.apache.drill.exec.proto.UserBitShared.ParsingError> values) {
+        if (parsingErrorBuilder_ == null) {
+          ensureParsingErrorIsMutable();
+          super.addAll(values, parsingError_);
+          onChanged();
+        } else {
+          parsingErrorBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public Builder clearParsingError() {
+        if (parsingErrorBuilder_ == null) {
+          parsingError_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000020);
+          onChanged();
+        } else {
+          parsingErrorBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public Builder removeParsingError(int index) {
+        if (parsingErrorBuilder_ == null) {
+          ensureParsingErrorIsMutable();
+          parsingError_.remove(index);
+          onChanged();
+        } else {
+          parsingErrorBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public org.apache.drill.exec.proto.UserBitShared.ParsingError.Builder 
getParsingErrorBuilder(
+          int index) {
+        return getParsingErrorFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public org.apache.drill.exec.proto.UserBitShared.ParsingErrorOrBuilder 
getParsingErrorOrBuilder(
+          int index) {
+        if (parsingErrorBuilder_ == null) {
+          return parsingError_.get(index);  } else {
+          return parsingErrorBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public java.util.List<? extends 
org.apache.drill.exec.proto.UserBitShared.ParsingErrorOrBuilder> 
+           getParsingErrorOrBuilderList() {
+        if (parsingErrorBuilder_ != null) {
+          return parsingErrorBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(parsingError_);
+        }
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public org.apache.drill.exec.proto.UserBitShared.ParsingError.Builder 
addParsingErrorBuilder() {
+        return getParsingErrorFieldBuilder().addBuilder(
+            
org.apache.drill.exec.proto.UserBitShared.ParsingError.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public org.apache.drill.exec.proto.UserBitShared.ParsingError.Builder 
addParsingErrorBuilder(
+          int index) {
+        return getParsingErrorFieldBuilder().addBuilder(
+            index, 
org.apache.drill.exec.proto.UserBitShared.ParsingError.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .exec.shared.ParsingError parsing_error = 6;</code>
+       *
+       * <pre>
+       *optional, used when providing location of error within a piece of text.
+       * </pre>
+       */
+      public 
java.util.List<org.apache.drill.exec.proto.UserBitShared.ParsingError.Builder> 
+           getParsingErrorBuilderList() {
+        return getParsingErrorFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilder<
+          org.apache.drill.exec.proto.UserBitShared.ParsingError, 
org.apache.drill.exec.proto.UserBitShared.ParsingError.Builder, 
org.apache.drill.exec.proto.UserBitShared.ParsingErrorOrBuilder> 
+          getParsingErrorFieldBuilder() {
+        if (parsingErrorBuilder_ == null) {
+          parsingErrorBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+              org.apache.drill.exec.proto.UserBitShared.ParsingError, 
org.apache.drill.exec.proto.UserBitShared.ParsingError.Builder, 
org.apache.drill.exec.proto.UserBitShared.ParsingErrorOrBuilder>(
+                  parsingError_,
+                  ((bitField0_ & 0x00000020) == 0x00000020),
+                  getParentForChildren(),
+                  isClean());
+          parsingError_ = null;
+        }
+        return parsingErrorBuilder_;
+      }
+
+      // @@protoc_insertion_point(builder_scope:exec.shared.DrillPBError)
+    }
+
+    static {
+      defaultInstance = new DrillPBError(true);
+      defaultInstance.initFields();
+    }
+
+    // @@protoc_insertion_point(class_scope:exec.shared.DrillPBError)
+  }
+
+  public interface ExceptionWrapperOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // optional string exception_class = 1;
+    /**
+     * <code>optional string exception_class = 1;</code>
+     */
+    boolean hasExceptionClass();
+    /**
+     * <code>optional string exception_class = 1;</code>
+     */
+    java.lang.String getExceptionClass();
+    /**
+     * <code>optional string exception_class = 1;</code>
+     */
+    com.google.protobuf.ByteString
+        getExceptionClassBytes();
+
+    // optional string message = 2;
+    /**
+     * <code>optional string message = 2;</code>
+     */
+    boolean hasMessage();
+    /**
+     * <code>optional string message = 2;</code>
+     */
+    java.lang.String getMessage();
+    /**
+     * <code>optional string message = 2;</code>
+     */
+    com.google.protobuf.ByteString
+        getMessageBytes();
+
+    // repeated .exec.shared.StackTraceElementWrapper stack_trace = 3;
+    /**
+     * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+     */
+    
java.util.List<org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper>
 
+        getStackTraceList();
+    /**
+     * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+     */
+    org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper 
getStackTrace(int index);
+    /**
+     * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+     */
+    int getStackTraceCount();
+    /**
+     * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+     */
+    java.util.List<? extends 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapperOrBuilder> 
+        getStackTraceOrBuilderList();
+    /**
+     * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+     */
+    
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapperOrBuilder 
getStackTraceOrBuilder(
+        int index);
+
+    // optional .exec.shared.ExceptionWrapper cause = 4;
+    /**
+     * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+     */
+    boolean hasCause();
+    /**
+     * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+     */
+    org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper getCause();
+    /**
+     * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+     */
+    org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder 
getCauseOrBuilder();
+  }
+  /**
+   * Protobuf type {@code exec.shared.ExceptionWrapper}
+   */
+  public static final class ExceptionWrapper extends
+      com.google.protobuf.GeneratedMessage
+      implements ExceptionWrapperOrBuilder {
+    // Use ExceptionWrapper.newBuilder() to construct.
+    private ExceptionWrapper(com.google.protobuf.GeneratedMessage.Builder<?> 
builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private ExceptionWrapper(boolean noInit) { this.unknownFields = 
com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final ExceptionWrapper defaultInstance;
+    public static ExceptionWrapper getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public ExceptionWrapper getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ExceptionWrapper(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              bitField0_ |= 0x00000001;
+              exceptionClass_ = input.readBytes();
+              break;
+            }
+            case 18: {
+              bitField0_ |= 0x00000002;
+              message_ = input.readBytes();
+              break;
+            }
+            case 26: {
+              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
+                stackTrace_ = new 
java.util.ArrayList<org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper>();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              
stackTrace_.add(input.readMessage(org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.PARSER,
 extensionRegistry));
+              break;
+            }
+            case 34: {
+              
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder subBuilder = 
null;
+              if (((bitField0_ & 0x00000004) == 0x00000004)) {
+                subBuilder = cause_.toBuilder();
+              }
+              cause_ = 
input.readMessage(org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.PARSER,
 extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(cause_);
+                cause_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000004;
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e.getMessage()).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
+          stackTrace_ = java.util.Collections.unmodifiableList(stackTrace_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return 
org.apache.drill.exec.proto.UserBitShared.internal_static_exec_shared_ExceptionWrapper_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return 
org.apache.drill.exec.proto.UserBitShared.internal_static_exec_shared_ExceptionWrapper_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.class, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<ExceptionWrapper> PARSER =
+        new com.google.protobuf.AbstractParser<ExceptionWrapper>() {
+      public ExceptionWrapper parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ExceptionWrapper(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ExceptionWrapper> getParserForType() {
+      return PARSER;
+    }
+
+    private int bitField0_;
+    // optional string exception_class = 1;
+    public static final int EXCEPTION_CLASS_FIELD_NUMBER = 1;
+    private java.lang.Object exceptionClass_;
+    /**
+     * <code>optional string exception_class = 1;</code>
+     */
+    public boolean hasExceptionClass() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional string exception_class = 1;</code>
+     */
+    public java.lang.String getExceptionClass() {
+      java.lang.Object ref = exceptionClass_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          exceptionClass_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string exception_class = 1;</code>
+     */
+    public com.google.protobuf.ByteString
+        getExceptionClassBytes() {
+      java.lang.Object ref = exceptionClass_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        exceptionClass_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    // optional string message = 2;
+    public static final int MESSAGE_FIELD_NUMBER = 2;
+    private java.lang.Object message_;
+    /**
+     * <code>optional string message = 2;</code>
+     */
+    public boolean hasMessage() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional string message = 2;</code>
+     */
+    public java.lang.String getMessage() {
+      java.lang.Object ref = message_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          message_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string message = 2;</code>
+     */
+    public com.google.protobuf.ByteString
+        getMessageBytes() {
+      java.lang.Object ref = message_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        message_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    // repeated .exec.shared.StackTraceElementWrapper stack_trace = 3;
+    public static final int STACK_TRACE_FIELD_NUMBER = 3;
+    private 
java.util.List<org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper>
 stackTrace_;
+    /**
+     * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+     */
+    public 
java.util.List<org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper>
 getStackTraceList() {
+      return stackTrace_;
+    }
+    /**
+     * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+     */
+    public java.util.List<? extends 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapperOrBuilder> 
+        getStackTraceOrBuilderList() {
+      return stackTrace_;
+    }
+    /**
+     * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+     */
+    public int getStackTraceCount() {
+      return stackTrace_.size();
+    }
+    /**
+     * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+     */
+    public org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper 
getStackTrace(int index) {
+      return stackTrace_.get(index);
+    }
+    /**
+     * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+     */
+    public 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapperOrBuilder 
getStackTraceOrBuilder(
+        int index) {
+      return stackTrace_.get(index);
+    }
+
+    // optional .exec.shared.ExceptionWrapper cause = 4;
+    public static final int CAUSE_FIELD_NUMBER = 4;
+    private org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper cause_;
+    /**
+     * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+     */
+    public boolean hasCause() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+     */
+    public org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
getCause() {
+      return cause_;
+    }
+    /**
+     * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+     */
+    public org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder 
getCauseOrBuilder() {
+      return cause_;
+    }
+
+    private void initFields() {
+      exceptionClass_ = "";
+      message_ = "";
+      stackTrace_ = java.util.Collections.emptyList();
+      cause_ = 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance();
+    }
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeBytes(1, getExceptionClassBytes());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeBytes(2, getMessageBytes());
+      }
+      for (int i = 0; i < stackTrace_.size(); i++) {
+        output.writeMessage(3, stackTrace_.get(i));
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeMessage(4, cause_);
+      }
+      getUnknownFields().writeTo(output);
+    }
+
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(1, getExceptionClassBytes());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(2, getMessageBytes());
+      }
+      for (int i = 0; i < stackTrace_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, stackTrace_.get(i));
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, cause_);
+      }
+      size += getUnknownFields().getSerializedSize();
+      memoizedSerializedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    protected java.lang.Object writeReplace()
+        throws java.io.ObjectStreamException {
+      return super.writeReplace();
+    }
+
+    public static org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public static Builder newBuilder() { return Builder.create(); }
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder 
newBuilder(org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
prototype) {
+      return newBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() { return newBuilder(this); }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code exec.shared.ExceptionWrapper}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return 
org.apache.drill.exec.proto.UserBitShared.internal_static_exec_shared_ExceptionWrapper_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return 
org.apache.drill.exec.proto.UserBitShared.internal_static_exec_shared_ExceptionWrapper_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.class, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder.class);
+      }
+
+      // Construct using 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+          getStackTraceFieldBuilder();
+          getCauseFieldBuilder();
+        }
+      }
+      private static Builder create() {
+        return new Builder();
+      }
+
+      public Builder clear() {
+        super.clear();
+        exceptionClass_ = "";
+        bitField0_ = (bitField0_ & ~0x00000001);
+        message_ = "";
+        bitField0_ = (bitField0_ & ~0x00000002);
+        if (stackTraceBuilder_ == null) {
+          stackTrace_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
+        } else {
+          stackTraceBuilder_.clear();
+        }
+        if (causeBuilder_ == null) {
+          cause_ = 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance();
+        } else {
+          causeBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000008);
+        return this;
+      }
+
+      public Builder clone() {
+        return create().mergeFrom(buildPartial());
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return 
org.apache.drill.exec.proto.UserBitShared.internal_static_exec_shared_ExceptionWrapper_descriptor;
+      }
+
+      public org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
getDefaultInstanceForType() {
+        return 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance();
+      }
+
+      public org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
build() {
+        org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper result = 
buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
buildPartial() {
+        org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper result = 
new org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.exceptionClass_ = exceptionClass_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        result.message_ = message_;
+        if (stackTraceBuilder_ == null) {
+          if (((bitField0_ & 0x00000004) == 0x00000004)) {
+            stackTrace_ = java.util.Collections.unmodifiableList(stackTrace_);
+            bitField0_ = (bitField0_ & ~0x00000004);
+          }
+          result.stackTrace_ = stackTrace_;
+        } else {
+          result.stackTrace_ = stackTraceBuilder_.build();
+        }
+        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        if (causeBuilder_ == null) {
+          result.cause_ = cause_;
+        } else {
+          result.cause_ = causeBuilder_.build();
+        }
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper) {
+          return 
mergeFrom((org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder 
mergeFrom(org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper other) {
+        if (other == 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance())
 return this;
+        if (other.hasExceptionClass()) {
+          bitField0_ |= 0x00000001;
+          exceptionClass_ = other.exceptionClass_;
+          onChanged();
+        }
+        if (other.hasMessage()) {
+          bitField0_ |= 0x00000002;
+          message_ = other.message_;
+          onChanged();
+        }
+        if (stackTraceBuilder_ == null) {
+          if (!other.stackTrace_.isEmpty()) {
+            if (stackTrace_.isEmpty()) {
+              stackTrace_ = other.stackTrace_;
+              bitField0_ = (bitField0_ & ~0x00000004);
+            } else {
+              ensureStackTraceIsMutable();
+              stackTrace_.addAll(other.stackTrace_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.stackTrace_.isEmpty()) {
+            if (stackTraceBuilder_.isEmpty()) {
+              stackTraceBuilder_.dispose();
+              stackTraceBuilder_ = null;
+              stackTrace_ = other.stackTrace_;
+              bitField0_ = (bitField0_ & ~0x00000004);
+              stackTraceBuilder_ = 
+                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+                   getStackTraceFieldBuilder() : null;
+            } else {
+              stackTraceBuilder_.addAllMessages(other.stackTrace_);
+            }
+          }
+        }
+        if (other.hasCause()) {
+          mergeCause(other.getCause());
+        }
+        this.mergeUnknownFields(other.getUnknownFields());
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = 
(org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper) 
e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      // optional string exception_class = 1;
+      private java.lang.Object exceptionClass_ = "";
+      /**
+       * <code>optional string exception_class = 1;</code>
+       */
+      public boolean hasExceptionClass() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>optional string exception_class = 1;</code>
+       */
+      public java.lang.String getExceptionClass() {
+        java.lang.Object ref = exceptionClass_;
+        if (!(ref instanceof java.lang.String)) {
+          java.lang.String s = ((com.google.protobuf.ByteString) ref)
+              .toStringUtf8();
+          exceptionClass_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>optional string exception_class = 1;</code>
+       */
+      public com.google.protobuf.ByteString
+          getExceptionClassBytes() {
+        java.lang.Object ref = exceptionClass_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          exceptionClass_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>optional string exception_class = 1;</code>
+       */
+      public Builder setExceptionClass(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
+        exceptionClass_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string exception_class = 1;</code>
+       */
+      public Builder clearExceptionClass() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        exceptionClass_ = getDefaultInstance().getExceptionClass();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string exception_class = 1;</code>
+       */
+      public Builder setExceptionClassBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
+        exceptionClass_ = value;
+        onChanged();
+        return this;
+      }
+
+      // optional string message = 2;
+      private java.lang.Object message_ = "";
+      /**
+       * <code>optional string message = 2;</code>
+       */
+      public boolean hasMessage() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional string message = 2;</code>
+       */
+      public java.lang.String getMessage() {
+        java.lang.Object ref = message_;
+        if (!(ref instanceof java.lang.String)) {
+          java.lang.String s = ((com.google.protobuf.ByteString) ref)
+              .toStringUtf8();
+          message_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>optional string message = 2;</code>
+       */
+      public com.google.protobuf.ByteString
+          getMessageBytes() {
+        java.lang.Object ref = message_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          message_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>optional string message = 2;</code>
+       */
+      public Builder setMessage(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
+        message_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string message = 2;</code>
+       */
+      public Builder clearMessage() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        message_ = getDefaultInstance().getMessage();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string message = 2;</code>
+       */
+      public Builder setMessageBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
+        message_ = value;
+        onChanged();
+        return this;
+      }
+
+      // repeated .exec.shared.StackTraceElementWrapper stack_trace = 3;
+      private 
java.util.List<org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper>
 stackTrace_ =
+        java.util.Collections.emptyList();
+      private void ensureStackTraceIsMutable() {
+        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
+          stackTrace_ = new 
java.util.ArrayList<org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper>(stackTrace_);
+          bitField0_ |= 0x00000004;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilder<
+          org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.Builder, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapperOrBuilder> 
stackTraceBuilder_;
+
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public 
java.util.List<org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper>
 getStackTraceList() {
+        if (stackTraceBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(stackTrace_);
+        } else {
+          return stackTraceBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public int getStackTraceCount() {
+        if (stackTraceBuilder_ == null) {
+          return stackTrace_.size();
+        } else {
+          return stackTraceBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper 
getStackTrace(int index) {
+        if (stackTraceBuilder_ == null) {
+          return stackTrace_.get(index);
+        } else {
+          return stackTraceBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public Builder setStackTrace(
+          int index, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper value) {
+        if (stackTraceBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureStackTraceIsMutable();
+          stackTrace_.set(index, value);
+          onChanged();
+        } else {
+          stackTraceBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public Builder setStackTrace(
+          int index, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.Builder 
builderForValue) {
+        if (stackTraceBuilder_ == null) {
+          ensureStackTraceIsMutable();
+          stackTrace_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          stackTraceBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public Builder 
addStackTrace(org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper
 value) {
+        if (stackTraceBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureStackTraceIsMutable();
+          stackTrace_.add(value);
+          onChanged();
+        } else {
+          stackTraceBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public Builder addStackTrace(
+          int index, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper value) {
+        if (stackTraceBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureStackTraceIsMutable();
+          stackTrace_.add(index, value);
+          onChanged();
+        } else {
+          stackTraceBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public Builder addStackTrace(
+          
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.Builder 
builderForValue) {
+        if (stackTraceBuilder_ == null) {
+          ensureStackTraceIsMutable();
+          stackTrace_.add(builderForValue.build());
+          onChanged();
+        } else {
+          stackTraceBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public Builder addStackTrace(
+          int index, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.Builder 
builderForValue) {
+        if (stackTraceBuilder_ == null) {
+          ensureStackTraceIsMutable();
+          stackTrace_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          stackTraceBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public Builder addAllStackTrace(
+          java.lang.Iterable<? extends 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper> values) {
+        if (stackTraceBuilder_ == null) {
+          ensureStackTraceIsMutable();
+          super.addAll(values, stackTrace_);
+          onChanged();
+        } else {
+          stackTraceBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public Builder clearStackTrace() {
+        if (stackTraceBuilder_ == null) {
+          stackTrace_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
+          onChanged();
+        } else {
+          stackTraceBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public Builder removeStackTrace(int index) {
+        if (stackTraceBuilder_ == null) {
+          ensureStackTraceIsMutable();
+          stackTrace_.remove(index);
+          onChanged();
+        } else {
+          stackTraceBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.Builder 
getStackTraceBuilder(
+          int index) {
+        return getStackTraceFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapperOrBuilder 
getStackTraceOrBuilder(
+          int index) {
+        if (stackTraceBuilder_ == null) {
+          return stackTrace_.get(index);  } else {
+          return stackTraceBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public java.util.List<? extends 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapperOrBuilder> 
+           getStackTraceOrBuilderList() {
+        if (stackTraceBuilder_ != null) {
+          return stackTraceBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(stackTrace_);
+        }
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.Builder 
addStackTraceBuilder() {
+        return getStackTraceFieldBuilder().addBuilder(
+            
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.Builder 
addStackTraceBuilder(
+          int index) {
+        return getStackTraceFieldBuilder().addBuilder(
+            index, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .exec.shared.StackTraceElementWrapper stack_trace = 
3;</code>
+       */
+      public 
java.util.List<org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.Builder>
 
+           getStackTraceBuilderList() {
+        return getStackTraceFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilder<
+          org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.Builder, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapperOrBuilder> 
+          getStackTraceFieldBuilder() {
+        if (stackTraceBuilder_ == null) {
+          stackTraceBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+              
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.Builder, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapperOrBuilder>(
+                  stackTrace_,
+                  ((bitField0_ & 0x00000004) == 0x00000004),
+                  getParentForChildren(),
+                  isClean());
+          stackTrace_ = null;
+        }
+        return stackTraceBuilder_;
+      }
+
+      // optional .exec.shared.ExceptionWrapper cause = 4;
+      private org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
cause_ = 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance();
+      private com.google.protobuf.SingleFieldBuilder<
+          org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder> 
causeBuilder_;
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+       */
+      public boolean hasCause() {
+        return ((bitField0_ & 0x00000008) == 0x00000008);
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+       */
+      public org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper 
getCause() {
+        if (causeBuilder_ == null) {
+          return cause_;
+        } else {
+          return causeBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+       */
+      public Builder 
setCause(org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper value) {
+        if (causeBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          cause_ = value;
+          onChanged();
+        } else {
+          causeBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000008;
+        return this;
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+       */
+      public Builder setCause(
+          org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder 
builderForValue) {
+        if (causeBuilder_ == null) {
+          cause_ = builderForValue.build();
+          onChanged();
+        } else {
+          causeBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000008;
+        return this;
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+       */
+      public Builder 
mergeCause(org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper value) {
+        if (causeBuilder_ == null) {
+          if (((bitField0_ & 0x00000008) == 0x00000008) &&
+              cause_ != 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance())
 {
+            cause_ =
+              
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.newBuilder(cause_).mergeFrom(value).buildPartial();
+          } else {
+            cause_ = value;
+          }
+          onChanged();
+        } else {
+          causeBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000008;
+        return this;
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+       */
+      public Builder clearCause() {
+        if (causeBuilder_ == null) {
+          cause_ = 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.getDefaultInstance();
+          onChanged();
+        } else {
+          causeBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000008);
+        return this;
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+       */
+      public 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder 
getCauseBuilder() {
+        bitField0_ |= 0x00000008;
+        onChanged();
+        return getCauseFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+       */
+      public 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder 
getCauseOrBuilder() {
+        if (causeBuilder_ != null) {
+          return causeBuilder_.getMessageOrBuilder();
+        } else {
+          return cause_;
+        }
+      }
+      /**
+       * <code>optional .exec.shared.ExceptionWrapper cause = 4;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilder<
+          org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder> 
+          getCauseFieldBuilder() {
+        if (causeBuilder_ == null) {
+          causeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+              org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapper.Builder, 
org.apache.drill.exec.proto.UserBitShared.ExceptionWrapperOrBuilder>(
+                  cause_,
+                  getParentForChildren(),
+                  isClean());
+          cause_ = null;
+        }
+        return causeBuilder_;
+      }
+
+      // @@protoc_insertion_point(builder_scope:exec.shared.ExceptionWrapper)
+    }
+
+    static {
+      defaultInstance = new ExceptionWrapper(true);
+      defaultInstance.initFields();
+    }
+
+    // @@protoc_insertion_point(class_scope:exec.shared.ExceptionWrapper)
+  }
+
+  public interface StackTraceElementWrapperOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // optional string class_name = 1;
+    /**
+     * <code>optional string class_name = 1;</code>
+     */
+    boolean hasClassName();
+    /**
+     * <code>optional string class_name = 1;</code>
+     */
+    java.lang.String getClassName();
+    /**
+     * <code>optional string class_name = 1;</code>
+     */
+    com.google.protobuf.ByteString
+        getClassNameBytes();
+
+    // optional string file_name = 2;
+    /**
+     * <code>optional string file_name = 2;</code>
+     */
+    boolean hasFileName();
+    /**
+     * <code>optional string file_name = 2;</code>
+     */
+    java.lang.String getFileName();
+    /**
+     * <code>optional string file_name = 2;</code>
+     */
+    com.google.protobuf.ByteString
+        getFileNameBytes();
+
+    // optional int32 line_number = 3;
+    /**
+     * <code>optional int32 line_number = 3;</code>
+     */
+    boolean hasLineNumber();
+    /**
+     * <code>optional int32 line_number = 3;</code>
+     */
+    int getLineNumber();
+
+    // optional string method_name = 4;
+    /**
+     * <code>optional string method_name = 4;</code>
+     */
+    boolean hasMethodName();
+    /**
+     * <code>optional string method_name = 4;</code>
+     */
+    java.lang.String getMethodName();
+    /**
+     * <code>optional string method_name = 4;</code>
+     */
+    com.google.protobuf.ByteString
+        getMethodNameBytes();
+
+    // optional bool is_native_method = 5;
+    /**
+     * <code>optional bool is_native_method = 5;</code>
+     */
+    boolean hasIsNativeMethod();
+    /**
+     * <code>optional bool is_native_method = 5;</code>
+     */
+    boolean getIsNativeMethod();
+  }
+  /**
+   * Protobuf type {@code exec.shared.StackTraceElementWrapper}
+   */
+  public static final class StackTraceElementWrapper extends
+      com.google.protobuf.GeneratedMessage
+      implements StackTraceElementWrapperOrBuilder {
+    // Use StackTraceElementWrapper.newBuilder() to construct.
+    private 
StackTraceElementWrapper(com.google.protobuf.GeneratedMessage.Builder<?> 
builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private StackTraceElementWrapper(boolean noInit) { this.unknownFields = 
com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final StackTraceElementWrapper defaultInstance;
+    public static StackTraceElementWrapper getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public StackTraceElementWrapper getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private StackTraceElementWrapper(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              bitField0_ |= 0x00000001;
+              className_ = input.readBytes();
+              break;
+            }
+            case 18: {
+              bitField0_ |= 0x00000002;
+              fileName_ = input.readBytes();
+              break;
+            }
+            case 24: {
+              bitField0_ |= 0x00000004;
+              lineNumber_ = input.readInt32();
+              break;
+            }
+            case 34: {
+              bitField0_ |= 0x00000008;
+              methodName_ = input.readBytes();
+              break;
+            }
+            case 40: {
+              bitField0_ |= 0x00000010;
+              isNativeMethod_ = input.readBool();
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e.getMessage()).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return 
org.apache.drill.exec.proto.UserBitShared.internal_static_exec_shared_StackTraceElementWrapper_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return 
org.apache.drill.exec.proto.UserBitShared.internal_static_exec_shared_StackTraceElementWrapper_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.class, 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<StackTraceElementWrapper> PARSER =
+        new com.google.protobuf.AbstractParser<StackTraceElementWrapper>() {
+      public StackTraceElementWrapper parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new StackTraceElementWrapper(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<StackTraceElementWrapper> 
getParserForType() {
+      return PARSER;
+    }
+
+    private int bitField0_;
+    // optional string class_name = 1;
+    public static final int CLASS_NAME_FIELD_NUMBER = 1;
+    private java.lang.Object className_;
+    /**
+     * <code>optional string class_name = 1;</code>
+     */
+    public boolean hasClassName() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional string class_name = 1;</code>
+     */
+    public java.lang.String getClassName() {
+      java.lang.Object ref = className_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          className_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string class_name = 1;</code>
+     */
+    public com.google.protobuf.ByteString
+        getClassNameBytes() {
+      java.lang.Object ref = className_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        className_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    // optional string file_name = 2;
+    public static final int FILE_NAME_FIELD_NUMBER = 2;
+    private java.lang.Object fileName_;
+    /**
+     * <code>optional string file_name = 2;</code>
+     */
+    public boolean hasFileName() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional string file_name = 2;</code>
+     */
+    public java.lang.String getFileName() {
+      java.lang.Object ref = fileName_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          fileName_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string file_name = 2;</code>
+     */
+    public com.google.protobuf.ByteString
+        getFileNameBytes() {
+      java.lang.Object ref = fileName_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        fileName_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    // optional int32 line_number = 3;
+    public static final int LINE_NUMBER_FIELD_NUMBER = 3;
+    private int lineNumber_;
+    /**
+     * <code>optional int32 line_number = 3;</code>
+     */
+    public boolean hasLineNumber() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional int32 line_number = 3;</code>
+     */
+    public int getLineNumber() {
+      return lineNumber_;
+    }
+
+    // optional string method_name = 4;
+    public static final int METHOD_NAME_FIELD_NUMBER = 4;
+    private java.lang.Object methodName_;
+    /**
+     * <code>optional string method_name = 4;</code>
+     */
+    public boolean hasMethodName() {
+      return ((bitField0_ & 0x00000008) == 0x00000008);
+    }
+    /**
+     * <code>optional string method_name = 4;</code>
+     */
+    public java.lang.String getMethodName() {
+      java.lang.Object ref = methodName_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          methodName_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string method_name = 4;</code>
+     */
+    public com.google.protobuf.ByteString
+        getMethodNameBytes() {
+      java.lang.Object ref = methodName_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        methodName_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    // optional bool is_native_method = 5;
+    public static final int IS_NATIVE_METHOD_FIELD_NUMBER = 5;
+    private boolean isNativeMethod_;
+    /**
+     * <code>optional bool is_native_method = 5;</code>
+     */
+    public boolean hasIsNativeMethod() {
+      return ((bitField0_ & 0x00000010) == 0x00000010);
+    }
+    /**
+     * <code>optional bool is_native_method = 5;</code>
+     */
+    public boolean getIsNativeMethod() {
+      return isNativeMethod_;
+    }
+
+    private void initFields() {
+      className_ = "";
+      fileName_ = "";
+      lineNumber_ = 0;
+      methodName_ = "";
+      isNativeMethod_ = false;
+    }
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeBytes(1, getClassNameBytes());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeBytes(2, getFileNameBytes());
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeInt32(3, lineNumber_);
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        output.writeBytes(4, getMethodNameBytes());
+      }
+      if (((bitField0_ & 0x00000010) == 0x00000010)) {
+        output.writeBool(5, isNativeMethod_);
+      }
+      getUnknownFields().writeTo(output);
+    }
+
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(1, getClassNameBytes());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(2, getFileNameBytes());
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, lineNumber_);
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(4, getMethodNameBytes());
+      }
+      if (((bitField0_ & 0x00000010) == 0x00000010)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(5, isNativeMethod_);
+      }
+      size += getUnknownFields().getSerializedSize();
+      memoizedSerializedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    protected java.lang.Object writeReplace()
+        throws java.io.ObjectStreamException {
+      return super.writeReplace();
+    }
+
+    public static 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static 
org.apache.drill.exec.proto.UserBitShared.StackTraceElementWrapper parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobu

<TRUNCATED>

Reply via email to