[
https://issues.apache.org/jira/browse/SQOOP-2765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15081239#comment-15081239
]
Hudson commented on SQOOP-2765:
-------------------------------
SUCCESS: Integrated in Sqoop2 #986 (See
[https://builds.apache.org/job/Sqoop2/986/])
SQOOP-2765: Sqoop2: Client is not exposing the real exception when (jarcec:
[https://git-wip-us.apache.org/repos/asf?p=sqoop.git&a=commit&h=8d97bb3e28db64f1b89e2ab80de8a0317d195bfd])
* common/src/test/java/org/apache/sqoop/json/TestThrowableBean.java
* shell/src/main/java/org/apache/sqoop/shell/utils/ThrowableDisplayer.java
* common/src/main/java/org/apache/sqoop/json/ThrowableBean.java
* common/src/main/java/org/apache/sqoop/error/code/SqoopError.java
> Sqoop2: Client is not exposing the real exception when retrieving exception
> from server
> ---------------------------------------------------------------------------------------
>
> Key: SQOOP-2765
> URL: https://issues.apache.org/jira/browse/SQOOP-2765
> Project: Sqoop
> Issue Type: Bug
> Affects Versions: 1.99.7
> Reporter: Jarek Jarcec Cecho
> Assignee: Dian Fu
> Fix For: 1.99.7
>
> Attachments: SQOOP-2765.001.patch, SQOOP-2765.002.patch
>
>
> When there is exception on the server side, we display useless output, for
> example:
> {code}
> sqoop:000> start job --name non-existing-job
> Exception has occurred during processing command
> Exception: org.apache.sqoop.common.SqoopException Message: CLIENT_0001:Server
> has returned exception
> sqoop:000>
> {code}
> One have to enable verbose mode and dig the real exception from the stack
> trace:
> {code}
> sqoop:000> set option --name verbose --value true
> Verbose option was changed to true
> sqoop:000> start job --name non-existing-job
> Exception has occurred during processing command
> Exception: org.apache.sqoop.common.SqoopException Message: CLIENT_0001:Server
> has returned exception
> Stack trace:
> at org.apache.sqoop.client.request.ResourceRequest
> (ResourceRequest.java:137)
> at org.apache.sqoop.client.request.ResourceRequest
> (ResourceRequest.java:187)
> at org.apache.sqoop.client.request.JobResourceRequest
> (JobResourceRequest.java:113)
> at org.apache.sqoop.client.request.SqoopResourceRequests
> (SqoopResourceRequests.java:170)
> at org.apache.sqoop.client.SqoopClient (SqoopClient.java:453)
> at org.apache.sqoop.shell.StartJobFunction (StartJobFunction.java:64)
> at org.apache.sqoop.shell.SqoopFunction (SqoopFunction.java:51)
> at org.apache.sqoop.shell.SqoopCommand (SqoopCommand.java:134)
> at org.apache.sqoop.shell.SqoopCommand (SqoopCommand.java:110)
> at org.codehaus.groovy.tools.shell.Command$execute (null:-1)
> at org.codehaus.groovy.runtime.callsite.CallSiteArray
> (CallSiteArray.java:45)
> at org.codehaus.groovy.tools.shell.Command$execute (null:-1)
> at org.codehaus.groovy.tools.shell.Shell (Shell.groovy:101)
> at org.codehaus.groovy.tools.shell.Groovysh (Groovysh.groovy:-1)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:-2)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method (Method.java:606)
> at org.codehaus.groovy.reflection.CachedMethod (CachedMethod.java:90)
> at groovy.lang.MetaMethod (MetaMethod.java:324)
> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1208)
> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter
> (ScriptBytecodeAdapter.java:130)
> at org.codehaus.groovy.tools.shell.Groovysh (Groovysh.groovy:254)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:-2)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method (Method.java:606)
> at
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce
> (PogoMetaMethodSite.java:207)
> at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite
> (PogoMetaMethodSite.java:56)
> at org.codehaus.groovy.runtime.callsite.AbstractCallSite
> (AbstractCallSite.java:161)
> at org.codehaus.groovy.tools.shell.Groovysh (Groovysh.groovy:153)
> at org.codehaus.groovy.tools.shell.Shell (Shell.groovy:119)
> at org.codehaus.groovy.tools.shell.Shell$leftShift$0 (null:-1)
> at org.codehaus.groovy.tools.shell.ShellRunner (ShellRunner.groovy:94)
> at org.codehaus.groovy.tools.shell.InteractiveShellRunner
> (InteractiveShellRunner.groovy:-1)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:-2)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method (Method.java:606)
> at org.codehaus.groovy.reflection.CachedMethod (CachedMethod.java:90)
> at groovy.lang.MetaMethod (MetaMethod.java:324)
> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1208)
> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter
> (ScriptBytecodeAdapter.java:130)
> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter
> (ScriptBytecodeAdapter.java:150)
> at org.codehaus.groovy.tools.shell.InteractiveShellRunner
> (InteractiveShellRunner.groovy:123)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:-2)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method (Method.java:606)
> at
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce
> (PogoMetaMethodSite.java:207)
> at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite
> (PogoMetaMethodSite.java:56)
> at org.codehaus.groovy.runtime.callsite.AbstractCallSite
> (AbstractCallSite.java:153)
> at org.codehaus.groovy.tools.shell.ShellRunner (ShellRunner.groovy:58)
> at org.codehaus.groovy.tools.shell.InteractiveShellRunner
> (InteractiveShellRunner.groovy:-1)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:-2)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method (Method.java:606)
> at org.codehaus.groovy.reflection.CachedMethod (CachedMethod.java:90)
> at groovy.lang.MetaMethod (MetaMethod.java:324)
> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1208)
> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter
> (ScriptBytecodeAdapter.java:130)
> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter
> (ScriptBytecodeAdapter.java:150)
> at org.codehaus.groovy.tools.shell.InteractiveShellRunner
> (InteractiveShellRunner.groovy:82)
> at java_lang_Runnable$run (null:-1)
> at org.codehaus.groovy.runtime.callsite.CallSiteArray
> (CallSiteArray.java:45)
> at org.codehaus.groovy.runtime.callsite.AbstractCallSite
> (AbstractCallSite.java:108)
> at org.codehaus.groovy.runtime.callsite.AbstractCallSite
> (AbstractCallSite.java:112)
> at org.codehaus.groovy.tools.shell.Groovysh (Groovysh.groovy:585)
> at org.apache.sqoop.shell.SqoopShell (SqoopShell.java:128)
> Caused by: Exception: java.lang.Throwable Message: Job: non-existing-job
> doesn't exist
> Stack trace:
> at org.apache.sqoop.handler.HandlerUtils (HandlerUtils.java:34)
> at org.apache.sqoop.handler.JobRequestHandler
> (JobRequestHandler.java:359)
> at org.apache.sqoop.handler.JobRequestHandler
> (JobRequestHandler.java:112)
> at org.apache.sqoop.server.v1.JobServlet (JobServlet.java:84)
> at org.apache.sqoop.server.SqoopProtocolServlet
> (SqoopProtocolServlet.java:81)
> at javax.servlet.http.HttpServlet (HttpServlet.java:710)
> at javax.servlet.http.HttpServlet (HttpServlet.java:790)
> at org.eclipse.jetty.servlet.ServletHolder (ServletHolder.java:808)
> at org.eclipse.jetty.servlet.ServletHandler$CachedChain
> (ServletHandler.java:1669)
> at
> org.apache.hadoop.security.authentication.server.AuthenticationFilter
> (AuthenticationFilter.java:589)
> at
> org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticationFilter
> (DelegationTokenAuthenticationFilter.java:291)
> at
> org.apache.hadoop.security.authentication.server.AuthenticationFilter
> (AuthenticationFilter.java:552)
> at org.eclipse.jetty.servlet.ServletHandler$CachedChain
> (ServletHandler.java:1652)
> at org.eclipse.jetty.servlet.ServletHandler (ServletHandler.java:585)
> at org.eclipse.jetty.server.handler.ContextHandler
> (ContextHandler.java:1127)
> at org.eclipse.jetty.servlet.ServletHandler (ServletHandler.java:515)
> at org.eclipse.jetty.server.handler.ContextHandler
> (ContextHandler.java:1061)
> at org.eclipse.jetty.server.handler.ScopedHandler
> (ScopedHandler.java:141)
> at org.eclipse.jetty.server.handler.HandlerWrapper
> (HandlerWrapper.java:97)
> at org.eclipse.jetty.server.Server (Server.java:499)
> at org.eclipse.jetty.server.HttpChannel (HttpChannel.java:310)
> at org.eclipse.jetty.server.HttpConnection (HttpConnection.java:257)
> at org.eclipse.jetty.io.AbstractConnection$2
> (AbstractConnection.java:540)
> at java.util.concurrent.ThreadPoolExecutor
> (ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker
> (ThreadPoolExecutor.java:615)
> at java.lang.Thread (Thread.java:745)
> sqoop:000>
> {code}
> It would be great to display the original exception description without the
> verbose mode.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)