'volatile' в сигнатуре метода? [Дубликат]

This question already has an answer here:

Why make a method volatile in java? 7 answers

Это странно У меня есть следующий код:

class A
{   
    protected A clone() throws CloneNotSupportedException
    {
        return (A) super.clone();       
    }
}

когда я декомпилировал его байт-код через «showmycode.com», он показал мне следующий код:

class A
{

    A()
    {
    }

    protected A clone()
    throws clonenotsupportedexception
    {
        return (A)super.clone();
    }

    protected volatile object clone()
    throws clonenotsupportedexception
    {
        return clone();
    }
}

Что означает, что тип возвращаемого метода должен быть изменчивым во втором «клоне»? метод? (Этот код был скомпилирован с помощью стандартного компилятора JDK 1.6 Eclipse).