You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thrift type bytes currently gets generated as a java.nio.ByteBuffer. This type is mutable and if not careful defensive copying is used reading it changes it's internal position in the array. It supports asReadonlyBuffer but that can't be used if the bytes are sent via Thrift to clients, I see a java.nio.ReadOnlyBufferException thrown if done like that.
So to make this less painful I'd like Scrooge to support this type to be an io.twitter.util.Buf via configuration. Probably as the shared version.
Our workaround right now is defensive copying on the byte array itself or directly use list<byte> in Thrift but it feels like a workaround to me but i'm pretty new on this...
The text was updated successfully, but these errors were encountered:
@rogern for the slow response. I think this is a reasonable idea. Something we've discussed internally is being able to annotate fields to influence the way they're generated (eg being able to use specialized classes for certain kinds of maps). That might be a reasonable approach for this kind of patch?
Anyway, I think we would be happy to accept a patch that looks something like this, but we should probably discuss in greater detail what we actually want to do, and at what granularity we want to support it.
Thrift type
bytes
currently gets generated as ajava.nio.ByteBuffer
. This type is mutable and if not careful defensive copying is used reading it changes it's internal position in the array. It supportsasReadonlyBuffer
but that can't be used if the bytes are sent via Thrift to clients, I see ajava.nio.ReadOnlyBufferException
thrown if done like that.So to make this less painful I'd like Scrooge to support this type to be an
io.twitter.util.Buf
via configuration. Probably as the shared version.Our workaround right now is defensive copying on the byte array itself or directly use
list<byte>
in Thrift but it feels like a workaround to me but i'm pretty new on this...The text was updated successfully, but these errors were encountered: