Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check set size before sending. #37

Closed
GoogleCodeExporter opened this issue Apr 7, 2016 · 3 comments
Closed

Check set size before sending. #37

GoogleCodeExporter opened this issue Apr 7, 2016 · 3 comments

Comments

@GoogleCodeExporter
Copy link
Contributor

Verify an object is of reasonable size (<1MB) before sending.

This will help with a few types of errors that have sprung up in normal use.

Original issue reported on code.google.com by dsalli...@gmail.com on 1 Oct 2008 at 10:48

@GoogleCodeExporter
Copy link
Contributor Author

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

@GoogleCodeExporter
Copy link
Contributor Author

Original comment by dsalli...@gmail.com on 2 Oct 2008 at 7:03

  • Added labels: Milestone-Release2.2
  • Removed labels: Milestone-Release2.1

@GoogleCodeExporter
Copy link
Contributor Author

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

  • Changed state: Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant