You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Alan Gates (JIRA)" <ji...@apache.org> on 2011/04/15 00:55:05 UTC

[jira] [Commented] (PIG-1612) error reporting: PigException needs to have a way to indicate that its message is appropriate for user

    [ https://issues.apache.org/jira/browse/PIG-1612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13020078#comment-13020078 ] 

Alan Gates commented on PIG-1612:
---------------------------------

Based on your example, it looks like the resulting error message is a concatenation of the higher level exception that claimed it was the "right" one and the lowest message.  Is that right?  

What happens when multiple exceptions in the stack claim to be "right".  Do we concatenate their messages or take the highest one in the stack?

> error reporting: PigException needs to have a way to indicate that its message is appropriate for user
> ------------------------------------------------------------------------------------------------------
>
>                 Key: PIG-1612
>                 URL: https://issues.apache.org/jira/browse/PIG-1612
>             Project: Pig
>          Issue Type: Improvement
>            Reporter: Thejas M Nair
>            Assignee: Laukik Chitnis
>             Fix For: 0.9.0
>
>         Attachments: PIG-1612-2.patch
>
>
> The error message printed to the user by pig is the message from the exception that is the 'root cause' from the chain of getCause() of exception that has been thrown. But often the 'root cause' exception does not have enough context that would make for a better error message. It should be possible for a PigException to indicate to the code that determines the error message that its getMessage() string should be used instead of that of the 'cause' exception.
> The following code in LogUtils.java is used to determine the exception that is the 'root cause' -
> {code}
>     public static PigException getPigException(Throwable top) {
>         Throwable current = top;
>         Throwable pigException = top;
>         while (current != null && current.getCause() != null){
>             current = current.getCause();
>             if((current instanceof PigException) && (((PigException)current).getErrorCode() != 0)) {
>                 pigException = current;
>             }
>         }
>         return (pigException instanceof PigException? (PigException)pigException : null);
>         
>     }
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira