Implement [JACKSON-855] (add root cause for caught, re-throw StackOverflowError)

diff --git a/release-notes/VERSION b/release-notes/VERSION
index 8a9221e..7a7a648 100644
--- a/release-notes/VERSION
+++ b/release-notes/VERSION
@@ -1,13 +1,21 @@
-Version: 1.9.9
+Version: 1.9.10
 
 Release date:
-  28-Jul-2012
+  xx-xxx-2012
 
 Description:
   Another patch release for 1.9.
 
 Fixes:
+  * [JACKSON-855] add StackOverflowError as root cause
 
+------------------------------------------------------------------------
+=== History: ===
+------------------------------------------------------------------------
+
+1.9.9 (28-Jul-2012)
+
+Fixes:
   * [Issue-21]: Improve handling of String hash code collisions for
    symbol tables; exception for degenerate cases (attacks), improvements
    for calculation otherwise
@@ -19,9 +27,6 @@
     reduce lock contention for heavily multi-threaded cases, esp. when
     parsing short documents.
 
-------------------------------------------------------------------------
-=== History: ===
-------------------------------------------------------------------------
 
 1.9.8 (28-Jun-2012)
 
diff --git a/src/mapper/java/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java b/src/mapper/java/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java
index 4a8daaa..8af9d58 100644
--- a/src/mapper/java/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java
+++ b/src/mapper/java/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java
@@ -161,7 +161,7 @@
              *   have many stack frames to spare... just one or two; can't
              *   make many calls.
              */
-            JsonMappingException mapE = new JsonMappingException("Infinite recursion (StackOverflowError)");
+            JsonMappingException mapE = new JsonMappingException("Infinite recursion (StackOverflowError)", e);
             String name = (i == props.length) ? "[anySetter]" : props[i].getName();
             mapE.prependPath(new JsonMappingException.Reference(bean, name));
             throw mapE;
@@ -210,7 +210,7 @@
             String name = (i == props.length) ? "[anySetter]" : props[i].getName();
             wrapAndThrow(provider, e, bean, name);
         } catch (StackOverflowError e) {
-            JsonMappingException mapE = new JsonMappingException("Infinite recursion (StackOverflowError)");
+            JsonMappingException mapE = new JsonMappingException("Infinite recursion (StackOverflowError)", e);
             String name = (i == props.length) ? "[anySetter]" : props[i].getName();
             mapE.prependPath(new JsonMappingException.Reference(bean, name));
             throw mapE;