title: Spring Cloud Stream: Are commit calls guaranteed to happen after method annotated @StreamListener("errorChannel") if enableAutoCommitOnError=true?
body: <p>Consider I have set SCS property <code>enableAutoCommitOnError=true</code> (and <code>enableAutoCommitOffset=true</code> and <code>ackEachRecord=true</code> as well)</p>
  <p>And I have a method that listens for errors as follows:</p>
  <pre><code>@StreamListener(&quot;errorChannel&quot;)
  public void handleError(ErrorMessage errorMessage, @Headers MessageHeaders messageHeaders)
  {
  ...
  }
  </code></pre>
  <p>My questions are:</p>
  <ul>
  <li>Is the <em><strong>call</strong></em> to commit guaranteed to happen after <code>handleError</code> exits?</li>
  <li>Will the offset be <em><strong>attempted</strong></em> to be committed if <code>handleError</code> itself throws exception?</li>
  </ul>
  <p>From my tests it seems that the answer to both the questions is yes, but I am not sure if it is guaranteed or I am just getting lucky.</p>