title: java.util.Sublist throwing StackOverFlowError
body: <p>We are getting occasional StackOverFlowError errors in production related to doing a SubList operation. Has anyone seen something like this before and know what could cause it? </p>
  
  <p>This is the code that gets called that triggers the error:</p>
  
  <pre><code>  FacesContext context = FacesContext.getCurrentInstance();
      String newViewID = context.getViewRoot().getViewId();
  
      if (newViewID != null) {
       if (breadCrumbs.contains(newViewID)) {
        // Trims the list upon going back to allow for multiple back button requests.  
        // This is lightweight and not intended for a complex circular navigation.
        breadCrumbs = breadCrumbs.subList(0, breadCrumbs.indexOf(newViewID) + 1);
       } else {
        breadCrumbs.add(newViewID);
       }
      }
  </code></pre>
  
  <p>The result :</p>
  
  <pre><code>Caused By: java.lang.StackOverflowError
   at java.util.SubList$1.&lt;init&gt;(AbstractList.java:688)
   at java.util.SubList.listIterator(AbstractList.java:687)
   at java.util.SubList$1.&lt;init&gt;(AbstractList.java:688)
   at java.util.SubList.listIterator(AbstractList.java:687)
   ...
  </code></pre>