return Thread.currentThread().getStackTrace()[2].getLineNumber(); почему работает только когда [2] ? Что это вообще в этом случае означает ?