kstateome / canvas-api

Java library for interacting with the Canvas LMS API
GNU Lesser General Public License v3.0
68 stars 49 forks source link

Document Reader & Writer non-thread-safety #77

Open Vulcannis opened 6 years ago

Vulcannis commented 6 years ago

Pretty obvious when you look at BaseImpl, but reader & writer instances are not thread safe when using responseCallback, masqueradeAs and masqueradeType. Actually hit this today while testing, figure it would be nice to at least document it for future users.

The quick fix on my end was to use proxies & ThreadLocal to cache instances.

ToeBee commented 6 years ago

Hmm yes that is definitely a problem users should be made aware of. I think we are avoiding it because we use JMS queues for pushing things to Canvas in parallel and each job creates its own writer object. The readme is already pretty sizable but I'll see if I can fit it in somewhere for now.