Closed GoogleCodeExporter closed 9 years ago
Would it make sense to detect this in the calling thread and if the object is
too large not even bother the IO
thread? Since the encoding is done by the caller this should be straight
forward.
An open question is what to do if the object is too large. A few options I can
think of:
o throw an exception immediately
o throw an exception in Future.get wrapped in a ExecutionException
o have Future.get return false
In my code I usually do not wait for a store operation, thus only the first
option would allow me to detect this
case. Throwing an exception in a production environment does not seem like a
good idea, however, so
perhaps it makes sense to have one of the latter options be the default, but
allow the first option to be
enabled via a flag?
The disadvantage of returning false is that no reason for the failure can be
given, while an exception allows
this to be communicated. Since ExecutionException is checked it might make
sense to use it in this case (the
client has to handle it anyway).
Original comment by kreide@gmail.com
on 2 Oct 2008 at 5:48
Original comment by dsalli...@gmail.com
on 2 Oct 2008 at 7:03
I ended up with #1. An IllegalArgumentException will be thrown on any
set/add/replace/cas/whatever at the time of encoding. You can increase the
size in
the client (I needed this functionality to maintain coverage in the tests
anyway).
Original comment by dsalli...@gmail.com
on 3 Oct 2008 at 3:40
Original issue reported on code.google.com by
dsalli...@gmail.com
on 1 Oct 2008 at 10:48