Необходимость синхронизации по локальной переменной
В библиотеке JSON-Java (org.json.JSONArray) Я нашел этот фрагмент кода сsynchronized
блок вокруг локальной переменной метода
public String toString(int indentFactor) throws JSONException {
StringWriter sw = new StringWriter();
synchronized (sw.getBuffer()) {
return this.write(sw, indentFactor, 0).toString();
}
}
Я не понимаю необходимости синхронизации здесь, так какStringWriter
только локально для данного метода (и, почему синхронизация находится в буфере). Синхронизация действительно необходима здесь, и если, почему?