Анализатор обнаружил вызов метода, в который в качестве аргумента передаётся сам объект, у которого вызывается метод. Вероятно, данный код содержит ошибку, и в метод должен передаваться другой объект.
Рассмотрим пример:
a.foo(a);
Здесь из-за опечатки используется неверное имя переменной. Тогда корректный код должен был быть таким:
a.foo(b);
или таким:
b.foo(a);
Пример кода из реального приложения:
public class ByteBufferBodyConsumer { private ByteBuffer byteBuffer; .... public void consume(ByteBuffer byteBuffer) { byteBuffer.put(byteBuffer); } }
Здесь в 'byteBuffer' пытаются вставить его собственные значения.
Корректный код должен выглядеть так:
public class ByteBufferBodyConsumer { private ByteBuffer byteBuffer; .... public void consume(ByteBuffer byteBuffer) { this.byteBuffer.put(byteBuffer); } }
Данная диагностика классифицируется как:
Взгляните на примеры ошибок, обнаруженных с помощью диагностики V6100. |