Let me elaborate on the above question: I'm using Eclipse and the Processing core to develop an application that processes data from IRC channels using PircBot. Whenever new data arrives, the PircBot class calls a method in my main PApplet class so I can parse that data into a custom RingBuffer. This buffer is read in the standard draw()-method of the PApplet but I don't know if that method (and - if i understand Java Threads correctly - the data accessed inside that method) is synchronized.
Otherwise I'd potentially read from and write to the buffer simultaneously which might cause unexpected behaviour or even a crash.
Do I need to manually synchronize some / all methods that access the buffer or does the PApplet class (maybe even the renderer) do that for me?
No, you should queue up data in your class (running on its own thread), and then inside the draw method, call a (properly synchronized) method on your object to see if more data is available, and if so, act on it (also synchronized) so that draw() can continue.