Add unit test to try to reproduce [JACKSON-888]
diff --git a/src/test/org/codehaus/jackson/map/deser/TestJdkTypes.java b/src/test/org/codehaus/jackson/map/deser/TestJdkTypes.java
index 447a377..b83beb9 100644
--- a/src/test/org/codehaus/jackson/map/deser/TestJdkTypes.java
+++ b/src/test/org/codehaus/jackson/map/deser/TestJdkTypes.java
@@ -219,7 +219,6 @@
// [JACKSON-597]
public void testClass() throws IOException
{
- ObjectMapper mapper = new ObjectMapper();
assertSame(String.class, mapper.readValue(quote("java.lang.String"), Class.class));
// then primitive types
@@ -325,4 +324,24 @@
Charset UTF8 = Charset.forName("UTF-8");
assertSame(UTF8, mapper.readValue(quote("UTF-8"), Charset.class));
}
+
+ // [JACKSON-888]
+ public void testStackTraceElement() throws Exception
+ {
+ StackTraceElement elem = null;
+ try {
+ throw new IllegalStateException();
+ } catch (Exception e) {
+ elem = e.getStackTrace()[0];
+ }
+ String json = mapper.writeValueAsString(elem);
+ StackTraceElement back = mapper.readValue(json, StackTraceElement.class);
+
+ assertEquals("testStackTraceElement", back.getMethodName());
+ assertEquals(elem.getLineNumber(), back.getLineNumber());
+ assertEquals(elem.getClassName(), back.getClassName());
+ assertEquals(elem.isNativeMethod(), back.isNativeMethod());
+ assertTrue(back.getClassName().endsWith("TestJdkTypes"));
+ assertFalse(back.isNativeMethod());
+ }
}