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

Gera Shegalov commented on MAPREDUCE-6298:
------------------------------------------

Thanks for the pointer, [~ozawa]! Thanks for the filing the JIRA and the patch, 
[~lars_francke]!

Having toString rely on RUNNING does not make sense, indeed. I believe the 
intent is to avoid doing RPC's for jobs that are finished, or the {{cluster}} 
is reset. Note the conditions under which ensureState throws exceptions. I 
suggest we do this in a more graceful manner. if the job is known not to be 
running, simply skip the block with {{updateStatus}} for the conditions above. 
However, if {{Job#status}} is already set we should just proceed. Otherwise, 
return something to the tune of the patch. 



> Job#toString throws an exception when not in state RUNNING
> ----------------------------------------------------------
>
>                 Key: MAPREDUCE-6298
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6298
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>            Reporter: Lars Francke
>            Assignee: Lars Francke
>            Priority: Minor
>              Labels: BB2015-05-TBR
>         Attachments: MAPREDUCE-6298.1.patch
>
>
> Job#toString calls {{ensureState(JobState.RUNNING);}} as the very first 
> thing. That method causes an Exception to be thrown which is not nice.
> One thing this breaks is usage of Job on the Scala (e.g. Spark) REPL as that 
> calls toString after every invocation and that fails every time.
> I'll attach a patch that checks state and if it's RUNNING prints the original 
> message and if not prints something else.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to