This appears to have already been fixed since
a7654ba4324a1cc831fcef3988d9dca767bcdef3. I can compile the trunk right now --
try a fetch+rebase/pull/up again perhaps?
But yes, that value has to be final as the compiler noted.
On 21-Nov-2011, at 8:22 PM, Praveen Sripati wrote:
> Hi,
>
> I got the latest code from branch-0.23 and got the below error. Think this
> is related to HADOOP-6614.
>
> [ERROR]
> /home/praveensripati/Hadoop/0.23/source/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/RunJar.java:[171,31]
> local variable workDir is accessed from within inner class; needs to be
> declared final
>
> The error is around this block
>
> Runtime.getRuntime().addShutdownHook(new Thread() {
> public void run() {
> FileUtil.fullyDelete(workDir);
> }
> });
>
>
> JLS says
>
> http://java.sun.com/docs/books/jls/third_edition/html/classes.html
>
> Any local variable, formal method parameter or exception handler parameter
> used but not declared in an inner class must be declared final. Any local
> variable, used but not declared in an inner class must be definitely
> assigned (ยง16) before the body of the inner class.
>
> Should workDir be declared as final?
>
> Thanks,
> Praveen