-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/32987/#review79447
-----------------------------------------------------------


We'll need a DrillUnsupportedOperationException


exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/JSONRecordReader.java
<https://reviews.apache.org/r/32987/#comment128835>

    It would help if we have a hierarchy of exception 'contexts' that we can 
use to build the message. For instance, in this code, JSONRecord reader will 
catch an exception thrown by JSONReader which in turn will have caught an 
exception thrown by SingleListWriter. The SingleListWriter has no idea of the 
file name, line number, etc that the erroneous data came from. JSONReader knows 
the line number and column but not the file name. JSONRecordReader knows the 
file name. If each level adds the information about the context, the 
DrillUserException created can construct a message that contains the error as 
well as the context (in this case the precise location) of where the error 
occurred.



protocol/src/main/protobuf/UserBitShared.proto
<https://reviews.apache.org/r/32987/#comment128832>

    I think this information should also be included in the message itself. If 
at a later stage we want to include additional information (for example, add 
the field name where a data read error occurred), then we will not need to 
change the protobuf mesage and there will be no impact on the clients.


- Parth Chandra


On April 8, 2015, 8:04 p.m., abdelhakim deneche wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/32987/
> -----------------------------------------------------------
> 
> (Updated April 8, 2015, 8:04 p.m.)
> 
> 
> Review request for drill and Jacques Nadeau.
> 
> 
> Bugs: DRILL-2675
>     https://issues.apache.org/jira/browse/DRILL-2675
> 
> 
> Repository: drill-git
> 
> 
> Description
> -------
> 
> **INITIAL PATCH** with a working solution. This patch cleans the path for 
> errors, especially user errors with meaningful messages, to be propagated 
> properly to the client. 
> 
> The patch includes changes to 2 existing use cases where the error message 
> was successfully improved.
> 
> The general idea is: if a code wants to throw an exception that contains a 
> meaningful error message, it throws a DrillUserException. The propagation 
> code will make sure this exception is propagated to the client. The user 
> exception object doesn't contain the final error message, but enough 
> information about the error, the client will use this information to display 
> a better error message.
> Any exception that is not a DrillUserException (or one of it's subclasses) 
> will be considered as a system exception. For those exceptions the client 
> will only display the error id and drillbit identity in case the user wants 
> to check the logs for more informations about the error.
> Error objects sent to the client will still contain a stack trace that can be 
> used to display more information if the client has enabled the error verbose 
> mode.
> 
> 
> Diffs
> -----
> 
>   
> common/src/main/java/org/apache/drill/common/exceptions/DrillDataReadException.java
>  PRE-CREATION 
>   
> common/src/main/java/org/apache/drill/common/exceptions/DrillParseException.java
>  PRE-CREATION 
>   
> common/src/main/java/org/apache/drill/common/exceptions/DrillRemoteException.java
>  PRE-CREATION 
>   
> common/src/main/java/org/apache/drill/common/exceptions/DrillSystemException.java
>  PRE-CREATION 
>   
> common/src/main/java/org/apache/drill/common/exceptions/DrillUserException.java
>  PRE-CREATION 
>   common/src/main/java/org/apache/drill/common/exceptions/ErrorHelper.java 
> PRE-CREATION 
>   exec/java-exec/src/main/java/org/apache/drill/exec/ops/FragmentContext.java 
> 18b93e9 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScreenCreator.java
>  8038527 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/broadcastsender/BroadcastSenderRootExec.java
>  d17fdd4 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/StatusHandler.java
>  5e21878 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java
>  b98778d 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/rpc/CoordinationQueue.java 
> 0016d6a 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/rpc/RemoteRpcException.java
>  14ea873 
>   exec/java-exec/src/main/java/org/apache/drill/exec/rpc/RpcBus.java b974963 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/rpc/user/QueryResultHandler.java
>  a1be83b 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/JSONRecordReader.java
>  cc7cb83 
>   exec/java-exec/src/main/java/org/apache/drill/exec/work/ErrorHelper.java 
> 0773d6c 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java 
> 23ef0d3 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java
>  8626d5b 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/AbstractStatusReporter.java
>  1b0885d 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java
>  a7e6c46 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/StatusReporter.java
>  26b5d68 
>   protocol/src/main/java/org/apache/drill/exec/proto/SchemaUserBitShared.java 
> f72d5e1 
>   protocol/src/main/java/org/apache/drill/exec/proto/UserBitShared.java 
> 9a9d196 
>   protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillPBError.java 
> ac9cef5 
>   protocol/src/main/java/org/apache/drill/exec/proto/beans/QueryResult.java 
> 474e330 
>   protocol/src/main/protobuf/UserBitShared.proto 5e44655 
> 
> Diff: https://reviews.apache.org/r/32987/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> abdelhakim deneche
> 
>

Reply via email to