[ 
https://issues.apache.org/jira/browse/HADOOP-2268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adrian Woodhead updated HADOOP-2268:
------------------------------------

    Attachment: HADOOP-2268-2.patch

Code review of this patch please. 

I have not added extra methods with different names as it's not as simple as 
just the depending jobs - in JobControl.java there is the same issue with 
getReadyJobs, getSuccessfulJobs and getFailedJobs. 

What I have done is as follows:

Job.java
Changed all ArrayList to List<Job>. This shouldn't have much of an impact on 
existing code except for the getDependingJobs method (this was only added in 
the last release so I don't know how much it is being used).

ValueAggregatorJob.java
Changed all ArrayList to List<Job>.This class didn't need to be changed (no 
compile errors), I just did it to be consistent.

JobControl.java
Changed all Hashtable for job collections to Maps. These only appear to be used 
internally by private methods so this should have no impact on other code.
Changed all methods returning ArrayList<Job> to return List<Job> (this might 
impact existing code, but it is a really easy fix, just changing the type of 
whatever you are assigning the result to).

So, I think this cleans up these classes to adhere to the "program to the 
interface not the implementation" principle, it is up to you guys to decide 
whether you want to do this directly or whether you want to deprecate old 
methods, introduce new ones etc. If you go for the latter I'm not sure what 
good names would be for the  getReadyJobs, getSuccessfulJobs and getFailedJobs 
methods.

> Job.java should expose jobs as Lists rather than ArrayLists
> -----------------------------------------------------------
>
>                 Key: HADOOP-2268
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2268
>             Project: Hadoop
>          Issue Type: Improvement
>          Components: mapred
>    Affects Versions: 0.15.0
>            Reporter: Adrian Woodhead
>            Assignee: Adrian Woodhead
>            Priority: Minor
>             Fix For: 0.16.0
>
>         Attachments: HADOOP-2268-1.patch, HADOOP-2268-2.patch
>
>
> See HADOOP-2202 for background on this issue. Arun C. Murthy agrees that when 
> possible it is preferable to program against the interface rather than a 
> concrete implementation (more flexible, allows for changes of the 
> implementation in future etc.) JobControl currently exposes running, waiting, 
> ready, successful and dependent jobs as ArrayList rather than List. I propose 
> to change this to List.
> I will code up a patch for this.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to