Repository: incubator-juneau Updated Branches: refs/heads/master b1a30b033 -> 4f26c8814
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/4f26c881/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java ---------------------------------------------------------------------- diff --git a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java index 8e226a0..06edda7 100644 --- a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java +++ b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java @@ -12,13 +12,17 @@ // *************************************************************************************************************************** package org.apache.juneau.rest.test; +import static java.util.Arrays.*; import static org.junit.Assert.*; +import java.lang.reflect.*; import java.util.*; +import org.apache.juneau.*; import org.apache.juneau.json.*; import org.apache.juneau.rest.annotation.*; import org.apache.juneau.rest.jena.*; +import org.apache.juneau.utils.*; import org.junit.*; /** @@ -72,16 +76,85 @@ public class InterfaceProxyResource extends RestServletJenaDefault { return new int[]{1,2}; } @Override + public int[][] returnInt2dArray() { + return new int[][]{{1,2}}; + } + @Override + public int[][][] returnInt3dArray() { + return new int[][][]{{{1,2}}}; + } + @Override + public Integer[] returnIntegerArray() { + return new Integer[]{1,null}; + } + @Override + public Integer[][] returnInteger2dArray() { + return new Integer[][]{{1,null}}; + } + @Override + public Integer[][][] returnInteger3dArray() { + return new Integer[][][]{{{1,null}}}; + } + @Override public String[] returnStringArray() { return new String[]{"foo","bar",null}; } @Override + public String[][] returnString2dArray() { + return new String[][]{{"foo","bar",null}}; + } + @Override + public String[][][] returnString3dArray() { + return new String[][][]{{{"foo","bar",null}}}; + } + @Override public List<Integer> returnIntegerList() { - return Arrays.asList(new Integer[]{1,2}); + return asList(new Integer[]{1,null}); + } + @Override + public List<List<Integer>> returnInteger2dList() { + return new AList<List<Integer>>() + .append( + new AList<Integer>().append(1).append(null) + ); + } + @Override + public List<List<List<Integer>>> returnInteger3dList() { + return new AList<List<List<Integer>>>() + .append( + new AList<List<Integer>>() + .append( + new AList<Integer>().append(1).append(null) + ) + ); + } + @Override + public List<Integer[]> returnInteger1d1dList() { + return new AList<Integer[]>().append(new Integer[]{1,null}).append(null); + } + @Override + public List<Integer[][]> returnInteger1d2dList() { + return new AList<Integer[][]>().append(new Integer[][]{{1,null},null}).append(null); + } + @Override + public List<Integer[][][]> returnInteger1d3dList() { + return new AList<Integer[][][]>().append(new Integer[][][]{{{1,null},null},null}).append(null); + } + @Override + public List<int[]> returnInt1d1dList() { + return new AList<int[]>().append(new int[]{1,2}).append(null); + } + @Override + public List<int[][]> returnInt1d2dList() { + return new AList<int[][]>().append(new int[][]{{1,2},null}).append(null); + } + @Override + public List<int[][][]> returnInt1d3dList() { + return new AList<int[][][]>().append(new int[][][]{{{1,2},null},null}).append(null); } @Override public List<String> returnStringList() { - return Arrays.asList(new String[]{"foo","bar",null}); + return asList(new String[]{"foo","bar",null}); } @Override public Bean returnBean() { @@ -93,19 +166,19 @@ public class InterfaceProxyResource extends RestServletJenaDefault { } @Override public List<Bean> returnBeanList() { - return Arrays.asList(new Bean().init()); + return asList(new Bean().init()); } @Override public Map<String,Bean> returnBeanMap() { - return new HashMap<String,Bean>(){{put("foo",new Bean().init());}}; + return new AMap<String,Bean>().append("foo",new Bean().init()); } @Override public Map<String,List<Bean>> returnBeanListMap() { - return new HashMap<String,List<Bean>>(){{put("foo",Arrays.asList(new Bean().init()));}}; + return new AMap<String,List<Bean>>().append("foo",asList(new Bean().init())); } @Override public Map<Integer,List<Bean>> returnBeanListMapIntegerKeys() { - return new HashMap<Integer,List<Bean>>(){{put(1,Arrays.asList(new Bean().init()));}}; + return new AMap<Integer,List<Bean>>().append(1,asList(new Bean().init())); } @Override public void throwException1() throws InterfaceProxy.InterfaceProxyException1 { @@ -151,12 +224,84 @@ public class InterfaceProxyResource extends RestServletJenaDefault { assertObjectEquals("[1,2]", x); } @Override + public void setInt2dArray(int[][] x) { + assertObjectEquals("[[1,2]]", x); + } + @Override + public void setInt3dArray(int[][][] x) { + assertObjectEquals("[[[1,2]]]", x); + } + @Override + public void setIntegerArray(Integer[] x) { + assertObjectEquals("[1,null]", x); + } + @Override + public void setInteger2dArray(Integer[][] x) { + assertObjectEquals("[[1,null]]", x); + } + @Override + public void setInteger3dArray(Integer[][][] x) { + assertObjectEquals("[[[1,null]]]", x); + } + @Override public void setStringArray(String[] x) { assertObjectEquals("['foo','bar',null]", x); } @Override + public void setString2dArray(String[][] x) { + assertObjectEquals("[['foo','bar',null]]", x); + } + @Override + public void setString3dArray(String[][][] x) { + assertObjectEquals("[[['foo','bar',null]]]", x); + } + @Override public void setIntegerList(List<Integer> x) { - assertObjectEquals("[1,2,null]", x); + assertObjectEquals("[1,null]", x); + assertEquals(Integer.class, x.get(0).getClass()); + } + @Override + public void setInteger2dList(List<List<Integer>> x) { + assertObjectEquals("[[1,null]]", x); + assertEquals(Integer.class, x.get(0).get(0).getClass()); + } + @Override + public void setInteger3dList(List<List<List<Integer>>> x) { + assertObjectEquals("[[[1,null]]]", x); + assertEquals(Integer.class, x.get(0).get(0).get(0).getClass()); + } + @Override + public void setInteger1d1dList(List<Integer[]> x) { + assertObjectEquals("[[1,null],null]", x); + assertEquals(Integer[].class, x.get(0).getClass()); + assertEquals(Integer.class, x.get(0)[0].getClass()); + } + @Override + public void setInteger1d2dList(List<Integer[][]> x) { + assertObjectEquals("[[[1,null],null],null]", x); + assertEquals(Integer[][].class, x.get(0).getClass()); + assertEquals(Integer.class, x.get(0)[0][0].getClass()); + } + @Override + public void setInteger1d3dList(List<Integer[][][]> x) { + assertObjectEquals("[[[[1,null],null],null],null]", x); + assertEquals(Integer[][][].class, x.get(0).getClass()); + assertEquals(Integer.class, x.get(0)[0][0][0].getClass()); + } + @Override + public void setInt1d1dList(List<int[]> x) { + assertObjectEquals("[[1,2],null]", x); + assertEquals(int[].class, x.get(0).getClass()); + } + @Override + public void setInt1d2dList(List<int[][]> x) { + assertObjectEquals("[[[1,2],null],null]", x); + assertEquals(int[][].class, x.get(0).getClass()); + } + @Override + public void setInt1d3dList(List<int[][][]> x) { + assertObjectEquals("[[[[1,2],null],null],null]", x); + assertEquals(int[][][].class, x.get(0).getClass()); } @Override public void setStringList(List<String> x) { @@ -193,4 +338,13 @@ public class InterfaceProxyResource extends RestServletJenaDefault { private static void assertObjectEquals(String e, Object o) { Assert.assertEquals(e, JsonSerializer.DEFAULT_LAX.toString(o)); } + + public static void main(String[] args) { + JsonSerializer.DEFAULT_LAX_READABLE.println(BeanContext.DEFAULT.createSession().getClassMetas(new Type[]{X.class})); + + } + + public static class X extends LinkedList<int[][]> { + + } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/4f26c881/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/DTOs.java ---------------------------------------------------------------------- diff --git a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/DTOs.java b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/DTOs.java index 3e3ea07..578c939 100644 --- a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/DTOs.java +++ b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/DTOs.java @@ -16,6 +16,7 @@ import java.util.*; import org.apache.juneau.annotation.*; import org.apache.juneau.urlencoding.annotation.*; +import org.apache.juneau.utils.*; public class DTOs { @@ -35,7 +36,6 @@ public class DTOs { } - @SuppressWarnings("serial") @Bean(sort=true) public static class B { public String[] f01; @@ -85,25 +85,25 @@ public class DTOs { static B create() { B t = new B(); t.f01 = new String[]{"a","b"}; - t.f02 = new ArrayList<String>(){{add("c");add("d");}}; + t.f02 = new AList<String>().append("c").append("d"); t.f03 = new int[]{1,2}; - t.f04 = new ArrayList<Integer>(){{add(3);add(4);}}; + t.f04 = new AList<Integer>().append(3).append(4); t.f05 = new String[][]{{"e","f"},{"g","h"}}; - t.f06 = new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}}; + t.f06 = new AList<String[]>().append(new String[]{"i","j"}).append(new String[]{"k","l"}); t.f07 = new A[]{A.create(),A.create()}; - t.f08 = new ArrayList<A>(){{add(A.create());add(A.create());}}; + t.f08 = new AList<A>().append(A.create()).append(A.create()); t.f09 = new A[][]{{A.create()},{A.create()}}; - t.f10 = new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}}; + t.f10 = new AList<List<A>>().append(Arrays.asList(A.create())).append(Arrays.asList(A.create())); t.setF11(new String[]{"a","b"}); - t.setF12(new ArrayList<String>(){{add("c");add("d");}}); + t.setF12(new AList<String>().append("c").append("d")); t.setF13(new int[]{1,2}); - t.setF14(new ArrayList<Integer>(){{add(3);add(4);}}); + t.setF14(new AList<Integer>().append(3).append(4)); t.setF15(new String[][]{{"e","f"},{"g","h"}}); - t.setF16(new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}}); + t.setF16(new AList<String[]>().append(new String[]{"i","j"}).append(new String[]{"k","l"})); t.setF17(new A[]{A.create(),A.create()}); - t.setF18(new ArrayList<A>(){{add(A.create());add(A.create());}}); + t.setF18(new AList<A>().append(A.create()).append(A.create())); t.setF19(new A[][]{{A.create()},{A.create()}}); - t.setF20(new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}}); + t.setF20(new AList<List<A>>().append(Arrays.asList(A.create())).append(Arrays.asList(A.create()))); return t; } } @@ -114,25 +114,25 @@ public class DTOs { static C create() { C t = new C(); t.f01 = new String[]{"a","b"}; - t.f02 = new ArrayList<String>(){{add("c");add("d");}}; + t.f02 = new AList<String>().append("c").append("d"); t.f03 = new int[]{1,2}; - t.f04 = new ArrayList<Integer>(){{add(3);add(4);}}; + t.f04 = new AList<Integer>().append(3).append(4); t.f05 = new String[][]{{"e","f"},{"g","h"}}; - t.f06 = new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}}; + t.f06 = new AList<String[]>().append(new String[]{"i","j"}).append(new String[]{"k","l"}); t.f07 = new A[]{A.create(),A.create()}; - t.f08 = new ArrayList<A>(){{add(A.create());add(A.create());}}; + t.f08 = new AList<A>().append(A.create()).append(A.create()); t.f09 = new A[][]{{A.create()},{A.create()}}; - t.f10 = new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}}; + t.f10 = new AList<List<A>>().append(Arrays.asList(A.create())).append(Arrays.asList(A.create())); t.setF11(new String[]{"a","b"}); - t.setF12(new ArrayList<String>(){{add("c");add("d");}}); + t.setF12(new AList<String>().append("c").append("d")); t.setF13(new int[]{1,2}); - t.setF14(new ArrayList<Integer>(){{add(3);add(4);}}); + t.setF14(new AList<Integer>().append(3).append(4)); t.setF15(new String[][]{{"e","f"},{"g","h"}}); - t.setF16(new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}}); + t.setF16(new AList<String[]>().append(new String[]{"i","j"}).append(new String[]{"k","l"})); t.setF17(new A[]{A.create(),A.create()}); - t.setF18(new ArrayList<A>(){{add(A.create());add(A.create());}}); + t.setF18(new AList<A>(){{add(A.create());add(A.create());}}); t.setF19(new A[][]{{A.create()},{A.create()}}); - t.setF20(new ArrayList<List<A>>(){{add(Arrays.asList(A.create()));add(Arrays.asList(A.create()));}}); + t.setF20(new AList<List<A>>().append(Arrays.asList(A.create())).append(Arrays.asList(A.create()))); return t; } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/4f26c881/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java ---------------------------------------------------------------------- diff --git a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java index 74b59c6..d1312c6 100644 --- a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java +++ b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java @@ -25,13 +25,13 @@ import org.apache.juneau.rest.test.InterfaceProxy.*; import org.apache.juneau.serializer.*; import org.apache.juneau.uon.*; import org.apache.juneau.urlencoding.*; +import org.apache.juneau.utils.*; import org.apache.juneau.xml.*; import org.junit.*; import org.junit.runner.*; import org.junit.runners.*; @RunWith(Parameterized.class) -@SuppressWarnings("serial") public class InterfaceProxyTest extends RestTestcase { @Parameterized.Parameters @@ -106,14 +106,97 @@ public class InterfaceProxyTest extends RestTestcase { } @Test + public void returnInt2dArray() { + assertObjectEquals("[[1,2]]", getProxy().returnInt2dArray()); + } + + @Test + public void returnInt3dArray() { + assertObjectEquals("[[[1,2]]]", getProxy().returnInt3dArray()); + } + + @Test + public void returnIntegerArray() { + assertObjectEquals("[1,null]", getProxy().returnIntegerArray()); + } + + @Test + public void returnInteger2dArray() { + assertObjectEquals("[[1,null]]", getProxy().returnInteger2dArray()); + } + + @Test + public void returnInteger3dArray() { + assertObjectEquals("[[[1,null]]]", getProxy().returnInteger3dArray()); + } + + @Test public void returnStringArray() { assertObjectEquals("['foo','bar',null]", getProxy().returnStringArray()); } @Test + public void returnString2dArray() { + assertObjectEquals("[['foo','bar',null]]", getProxy().returnString2dArray()); + } + + @Test + public void returnString3dArray() { + assertObjectEquals("[[['foo','bar',null]]]", getProxy().returnString3dArray()); + } + + @Test public void returnIntegerList() { - assertObjectEquals("[1,2]", getProxy().returnIntegerList()); - assertTrue(getProxy().returnIntegerList().get(0) instanceof Integer); + assertObjectEquals("[1,null]", getProxy().returnIntegerList()); + assertEquals(Integer.class, getProxy().returnIntegerList().get(0).getClass()); + } + + @Test + public void returnInteger2dList() { + assertObjectEquals("[[1,null]]", getProxy().returnInteger2dList()); + assertEquals(Integer.class, getProxy().returnInteger2dList().get(0).get(0).getClass()); + } + + @Test + public void returnInteger3dList() { + assertObjectEquals("[[[1,null]]]", getProxy().returnInteger3dList()); + assertEquals(Integer.class, getProxy().returnInteger3dList().get(0).get(0).get(0).getClass()); + } + + @Test + public void returnInteger1d1dList() { + assertObjectEquals("[[1,null],null]", getProxy().returnInteger1d1dList()); + assertEquals(Integer.class, getProxy().returnInteger1d1dList().get(0)[0].getClass()); + } + + @Test + public void returnInteger1d2dList() { + assertObjectEquals("[[[1,null],null],null]", getProxy().returnInteger1d2dList()); + assertEquals(Integer.class, getProxy().returnInteger1d2dList().get(0)[0][0].getClass()); + } + + @Test + public void returnInteger1d3dList() { + assertObjectEquals("[[[[1,null],null],null],null]", getProxy().returnInteger1d3dList()); + assertEquals(Integer.class, getProxy().returnInteger1d3dList().get(0)[0][0][0].getClass()); + } + + @Test + public void returnInt1d1dList() { + assertObjectEquals("[[1,2],null]", getProxy().returnInt1d1dList()); + assertEquals(int[].class, getProxy().returnInt1d1dList().get(0).getClass()); + } + + @Test + public void returnInt1d2dList() { + assertObjectEquals("[[[1,2],null],null]", getProxy().returnInt1d2dList()); + assertEquals(int[][].class, getProxy().returnInt1d2dList().get(0).getClass()); + } + + @Test + public void returnInt1d3dList() { + assertObjectEquals("[[[[1,2],null],null],null]", getProxy().returnInt1d3dList()); + assertEquals(int[][][].class, getProxy().returnInt1d3dList().get(0).getClass()); } @Test @@ -125,38 +208,38 @@ public class InterfaceProxyTest extends RestTestcase { @Test public void returnBean() { assertObjectEquals("{a:1,b:'foo'}", getProxy().returnBean()); - assertClass(InterfaceProxy.Bean.class, getProxy().returnBean()); + assertEquals(InterfaceProxy.Bean.class, getProxy().returnBean().getClass()); } @Test public void returnBeanArray() { assertObjectEquals("[{a:1,b:'foo'}]", getProxy().returnBeanArray()); - assertClass(InterfaceProxy.Bean.class, getProxy().returnBeanArray()[0]); + assertEquals(InterfaceProxy.Bean.class, getProxy().returnBeanArray()[0].getClass()); } @Test public void returnBeanList() { assertObjectEquals("[{a:1,b:'foo'}]", getProxy().returnBeanList()); - assertClass(InterfaceProxy.Bean.class, getProxy().returnBeanList().get(0)); + assertEquals(InterfaceProxy.Bean.class, getProxy().returnBeanList().get(0).getClass()); } @Test public void returnBeanMap() { assertObjectEquals("{foo:{a:1,b:'foo'}}", getProxy().returnBeanMap()); - assertClass(InterfaceProxy.Bean.class, getProxy().returnBeanMap().get("foo")); + assertEquals(InterfaceProxy.Bean.class, getProxy().returnBeanMap().get("foo").getClass()); } @Test public void returnBeanListMap() { assertObjectEquals("{foo:[{a:1,b:'foo'}]}", getProxy().returnBeanListMap()); - assertClass(InterfaceProxy.Bean.class, getProxy().returnBeanListMap().get("foo").get(0)); + assertEquals(InterfaceProxy.Bean.class, getProxy().returnBeanListMap().get("foo").get(0).getClass()); } @Test public void returnBeanListMapIntegerKeys() { // Note: JsonSerializer serializes key as string. assertObjectEquals("{'1':[{a:1,b:'foo'}]}", getProxy().returnBeanListMapIntegerKeys()); - assertClass(Integer.class, getProxy().returnBeanListMapIntegerKeys().keySet().iterator().next()); + assertEquals(Integer.class, getProxy().returnBeanListMapIntegerKeys().keySet().iterator().next().getClass()); } @Test @@ -244,13 +327,109 @@ public class InterfaceProxyTest extends RestTestcase { } @Test + public void setInt2dArray() { + getProxy().setInt2dArray(new int[][]{{1,2}}); + } + + @Test + public void setInt3dArray() { + getProxy().setInt3dArray(new int[][][]{{{1,2}}}); + } + + @Test + public void setIntegerArray() { + getProxy().setIntegerArray(new Integer[]{1,null}); + } + + @Test + public void setInteger2dArray() { + getProxy().setInteger2dArray(new Integer[][]{{1,null}}); + } + + @Test + public void setInteger3dArray() { + getProxy().setInteger3dArray(new Integer[][][]{{{1,null}}}); + } + + @Test public void setStringArray() { getProxy().setStringArray(new String[]{"foo","bar",null}); } @Test + public void setString2dArray() { + getProxy().setString2dArray(new String[][]{{"foo","bar",null}}); + } + + @Test + public void setString3dArray() { + getProxy().setString3dArray(new String[][][]{{{"foo","bar",null}}}); + } + + @Test public void setIntegerList() { - getProxy().setIntegerList(Arrays.asList(new Integer[]{1,2,null})); + getProxy().setIntegerList(new AList<Integer>().append(1).append(null)); + } + + @Test + public void setInteger2dList() { + getProxy().setInteger2dList( + new AList<List<Integer>>() + .append(new AList<Integer>().append(1).append(null)) + ); + } + + @Test + public void setInteger3dList() { + getProxy().setInteger3dList( + new AList<List<List<Integer>>>() + .append( + new AList<List<Integer>>() + .append(new AList<Integer>().append(1).append(null)) + ) + ); + } + + @Test + public void setInteger1d1dList() { + getProxy().setInteger1d1dList( + new AList<Integer[]>().append(new Integer[]{1,null}).append(null) + ); + } + + @Test + public void setInteger1d2dList() { + getProxy().setInteger1d2dList( + new AList<Integer[][]>().append(new Integer[][]{{1,null},null}).append(null) + ); + } + + @Test + public void setInteger1d3dList() { + getProxy().setInteger1d3dList( + new AList<Integer[][][]>().append(new Integer[][][]{{{1,null},null},null}).append(null) + ); + } + + @Test + public void setInt1d1dList() { + getProxy().setInt1d1dList( + new AList<int[]>().append(new int[]{1,2}).append(null) + ); + } + + @Test + public void setInt1d2dList() { + getProxy().setInt1d2dList( + new AList<int[][]>().append(new int[][]{{1,2},null}).append(null) + ); + } + + @Test + public void setInt1d3dList() { + getProxy().setInt1d3dList( + new AList<int[][][]>().append(new int[][][]{{{1,2},null},null}).append(null) + ); } @Test @@ -275,16 +454,16 @@ public class InterfaceProxyTest extends RestTestcase { @Test public void setBeanMap() { - getProxy().setBeanMap(new HashMap<String,Bean>(){{put("foo",new Bean().init());}}); + getProxy().setBeanMap(new AMap<String,Bean>().append("foo",new Bean().init())); } @Test public void setBeanListMap() { - getProxy().setBeanListMap(new HashMap<String,List<Bean>>(){{put("foo",Arrays.asList(new Bean().init()));}}); + getProxy().setBeanListMap(new AMap<String,List<Bean>>().append("foo",Arrays.asList(new Bean().init()))); } @Test public void setBeanListMapIntegerKeys() { - getProxy().setBeanListMapIntegerKeys(new HashMap<Integer,List<Bean>>(){{put(1,Arrays.asList(new Bean().init()));}}); + getProxy().setBeanListMapIntegerKeys(new AMap<Integer,List<Bean>>().append(1,Arrays.asList(new Bean().init()))); } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/4f26c881/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java ---------------------------------------------------------------------- diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java index f1e0228..ae3aa22 100644 --- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java +++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java @@ -441,7 +441,7 @@ public final class RestContext extends Context { throw e; } catch (Exception e) { res.setHeader("Exception-Name", e.getClass().getName()); - res.setHeader("Exception-Message", e.getCause().getMessage()); + res.setHeader("Exception-Message", e.getMessage()); throw e; } res.setOutput(output); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/4f26c881/juneau-rest/src/main/java/org/apache/juneau/rest/RestUtils.java ---------------------------------------------------------------------- diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestUtils.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RestUtils.java index 713da69..a4291a0 100644 --- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestUtils.java +++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestUtils.java @@ -19,6 +19,7 @@ import java.util.*; import javax.servlet.http.*; import org.apache.juneau.internal.*; +import org.apache.juneau.utils.*; /** * Various reusable utility methods. @@ -35,45 +36,44 @@ public final class RestUtils { return httpMsgs.get(rc); } - @SuppressWarnings("serial") - private static Map<Integer,String> httpMsgs = new HashMap<Integer,String>() {{ - put(200, "OK"); - put(201, "Created"); - put(202, "Accepted"); - put(203, "Non-Authoritative Information"); - put(204, "No Content"); - put(205, "Reset Content"); - put(206, "Partial Content"); - put(300, "Multiple Choices"); - put(301, "Moved Permanently"); - put(302, "Temporary Redirect"); - put(303, "See Other"); - put(304, "Not Modified"); - put(305, "Use Proxy"); - put(307, "Temporary Redirect"); - put(400, "Bad Request"); - put(401, "Unauthorized"); - put(402, "Payment Required"); - put(403, "Forbidden"); - put(404, "Not Found"); - put(405, "Method Not Allowed"); - put(406, "Not Acceptable"); - put(407, "Proxy Authentication Required"); - put(408, "Request Time-Out"); - put(409, "Conflict"); - put(410, "Gone"); - put(411, "Length Required"); - put(412, "Precondition Failed"); - put(413, "Request Entity Too Large"); - put(414, "Request-URI Too Large"); - put(415, "Unsupported Media Type"); - put(500, "Internal Server Error"); - put(501, "Not Implemented"); - put(502, "Bad Gateway"); - put(503, "Service Unavailable"); - put(504, "Gateway Timeout"); - put(505, "HTTP Version Not Supported"); - }}; + private static Map<Integer,String> httpMsgs = new AMap<Integer,String>() + .append(200, "OK") + .append(201, "Created") + .append(202, "Accepted") + .append(203, "Non-Authoritative Information") + .append(204, "No Content") + .append(205, "Reset Content") + .append(206, "Partial Content") + .append(300, "Multiple Choices") + .append(301, "Moved Permanently") + .append(302, "Temporary Redirect") + .append(303, "See Other") + .append(304, "Not Modified") + .append(305, "Use Proxy") + .append(307, "Temporary Redirect") + .append(400, "Bad Request") + .append(401, "Unauthorized") + .append(402, "Payment Required") + .append(403, "Forbidden") + .append(404, "Not Found") + .append(405, "Method Not Allowed") + .append(406, "Not Acceptable") + .append(407, "Proxy Authentication Required") + .append(408, "Request Time-Out") + .append(409, "Conflict") + .append(410, "Gone") + .append(411, "Length Required") + .append(412, "Precondition Failed") + .append(413, "Request Entity Too Large") + .append(414, "Request-URI Too Large") + .append(415, "Unsupported Media Type") + .append(500, "Internal Server Error") + .append(501, "Not Implemented") + .append(502, "Bad Gateway") + .append(503, "Service Unavailable") + .append(504, "Gateway Timeout") + .append(505, "HTTP Version Not Supported") + ; /** * Trims <js>'/'</js> characters from both the start and end of the specified string.
