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

Handle exceptions in the JournallingMessageHandler. #1286

Merged
merged 4 commits into from Jul 3, 2015

Commits on Jul 3, 2015

  1. Handle exceptions in the JournallingMessageHandler.

    Before this, an exception from the journal would leave invalid
    RawMessageEvent objects in the batch List because the Converter sets
    all fields to null after transforming the objects to Journal.Entry
    objects. The batch List was not cleared in this case.
    With the next endOfBatch the Coverter tried to transform the broken
    objects again and threw a NPE because the fields are null.
    
    This caused exceptions for every new event coming in and eventually
    filled up the memory because the unbounded batch List was never cleared.
    bernd committed Jul 3, 2015
    Copy the full SHA
    f8d9391 View commit details
    Browse the repository at this point in the history
  2. Revert "make RawMessageEvent's fields volatile to guard against cross…

    …-cpu visibility issues"
    
    This did not fix anything so remove it to avoid performance degradation.
    
    The fix for the issue we tried to solve got committed in f8d9391.
    
    This reverts commit 769a2c1.
    bernd committed Jul 3, 2015
    Copy the full SHA
    ee223dd View commit details
    Browse the repository at this point in the history
  3. Use a retryer with an exponential back-off to avoid spamming the logs.

    This also avoids hand crafting of the retry logic and offer more options
    for configuration.
    bernd committed Jul 3, 2015
    Copy the full SHA
    6623e80 View commit details
    Browse the repository at this point in the history
  4. Copy the full SHA
    c1e45df View commit details
    Browse the repository at this point in the history