You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2016/09/09 16:38:57 UTC

incubator-juneau git commit: Fix test failure due to bean properties out of order.

Repository: incubator-juneau
Updated Branches:
  refs/heads/master a675bcd3c -> 8d699b2fb


Fix test failure due to bean properties out of order.

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/8d699b2f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/8d699b2f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/8d699b2f

Branch: refs/heads/master
Commit: 8d699b2fbf63653ddf3dc30a288a74131572129a
Parents: a675bcd
Author: jamesbognar <ja...@gmail.com>
Authored: Fri Sep 9 12:38:53 2016 -0400
Committer: jamesbognar <ja...@gmail.com>
Committed: Fri Sep 9 12:38:53 2016 -0400

----------------------------------------------------------------------
 .../java/org/apache/juneau/server/DTO2s.java    | 57 ++++++++++----------
 .../org/apache/juneau/server/ContentTest.java   | 24 ++++-----
 .../java/org/apache/juneau/server/DTOs.java     | 57 ++++++++++----------
 .../org/apache/juneau/server/ParamsTest.java    | 36 ++++++-------
 4 files changed, 90 insertions(+), 84 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/8d699b2f/juneau-server-test/src/main/java/org/apache/juneau/server/DTO2s.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/main/java/org/apache/juneau/server/DTO2s.java b/juneau-server-test/src/main/java/org/apache/juneau/server/DTO2s.java
index 3b3b90f..a47412f 100755
--- a/juneau-server-test/src/main/java/org/apache/juneau/server/DTO2s.java
+++ b/juneau-server-test/src/main/java/org/apache/juneau/server/DTO2s.java
@@ -14,10 +14,12 @@ package org.apache.juneau.server;
 
 import java.util.*;
 
+import org.apache.juneau.annotation.*;
 import org.apache.juneau.urlencoding.annotation.*;
 
 public class DTO2s {
 
+	@Bean(sort=true)
 	public static class A {
 		public String a;
 		public int b;
@@ -34,16 +36,17 @@ public class DTO2s {
 	}
 
 	@SuppressWarnings("serial")
+	@Bean(sort=true)
 	public static class B {
-		public String[] f1;
-		public List<String> f2;
-		public int[] f3;
-		public List<Integer> f4;
-		public String[][] f5;
-		public List<String[]> f6;
-		public A[] f7;
-		public List<A> f8;
-		public A[][] f9;
+		public String[] f01;
+		public List<String> f02;
+		public int[] f03;
+		public List<Integer> f04;
+		public String[][] f05;
+		public List<String[]> f06;
+		public A[] f07;
+		public List<A> f08;
+		public A[][] f09;
 		public List<List<A>> f10;
 
 		private String[] f11;
@@ -81,15 +84,15 @@ public class DTO2s {
 
 		static B create() {
 			B t = new B();
-			t.f1 = new String[]{"a","b"};
-			t.f2 = new ArrayList<String>(){{add("c");add("d");}};
-			t.f3 = new int[]{1,2};
-			t.f4 = new ArrayList<Integer>(){{add(3);add(4);}};
-			t.f5 = new String[][]{{"e","f"},{"g","h"}};
-			t.f6 = new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}};
-			t.f7 = new A[]{A.create(),A.create()};
-			t.f8 = new ArrayList<A>(){{add(A.create());add(A.create());}};
-			t.f9 = new A[][]{{A.create()},{A.create()}};
+			t.f01 = new String[]{"a","b"};
+			t.f02 = new ArrayList<String>(){{add("c");add("d");}};
+			t.f03 = new int[]{1,2};
+			t.f04 = new ArrayList<Integer>(){{add(3);add(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.f07 = new A[]{A.create(),A.create()};
+			t.f08 = new ArrayList<A>(){{add(A.create());add(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.setF11(new String[]{"a","b"});
 			t.setF12(new ArrayList<String>(){{add("c");add("d");}});
@@ -110,15 +113,15 @@ public class DTO2s {
 		@SuppressWarnings("serial")
 		static C create() {
 			C t = new C();
-			t.f1 = new String[]{"a","b"};
-			t.f2 = new ArrayList<String>(){{add("c");add("d");}};
-			t.f3 = new int[]{1,2};
-			t.f4 = new ArrayList<Integer>(){{add(3);add(4);}};
-			t.f5 = new String[][]{{"e","f"},{"g","h"}};
-			t.f6 = new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}};
-			t.f7 = new A[]{A.create(),A.create()};
-			t.f8 = new ArrayList<A>(){{add(A.create());add(A.create());}};
-			t.f9 = new A[][]{{A.create()},{A.create()}};
+			t.f01 = new String[]{"a","b"};
+			t.f02 = new ArrayList<String>(){{add("c");add("d");}};
+			t.f03 = new int[]{1,2};
+			t.f04 = new ArrayList<Integer>(){{add(3);add(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.f07 = new A[]{A.create(),A.create()};
+			t.f08 = new ArrayList<A>(){{add(A.create());add(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.setF11(new String[]{"a","b"});
 			t.setF12(new ArrayList<String>(){{add("c");add("d");}});

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/8d699b2f/juneau-server-test/src/test/java/org/apache/juneau/server/ContentTest.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/test/java/org/apache/juneau/server/ContentTest.java b/juneau-server-test/src/test/java/org/apache/juneau/server/ContentTest.java
index 8e70c00..03f6a89 100755
--- a/juneau-server-test/src/test/java/org/apache/juneau/server/ContentTest.java
+++ b/juneau-server-test/src/test/java/org/apache/juneau/server/ContentTest.java
@@ -195,9 +195,9 @@ public class ContentTest {
 		//	}
 		DTOs.B b = DTOs.B.create();
 		r = c.doPost(URL + "/B?content=" + UonSerializer.DEFAULT.serialize(b), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 		r = c.doPost(URL + "/B?content=" + UonSerializer.DEFAULT_SIMPLE.serialize(b), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 
 		//	@RestMethod(name="POST", path="/C")
 		//	public DTO2s.C testPojo2(@Content DTO2s.C c) {
@@ -205,9 +205,9 @@ public class ContentTest {
 		//	}
 		DTOs.C x = DTOs.C.create();
 		r = c.doPost(URL + "/C?content=" + UonSerializer.DEFAULT.serialize(x), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 		r = c.doPost(URL + "/C?content=" + UonSerializer.DEFAULT_SIMPLE.serialize(x), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 
 		c.closeQuietly();
 	}
@@ -348,7 +348,7 @@ public class ContentTest {
 		//	}
 		DTOs.B b = DTOs.B.create();
 		r = c.doPost(URL + "/B?content=" + encode(JsonSerializer.DEFAULT_LAX.serialize(b)), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 
 		//	@RestMethod(name="POST", path="/C")
 		//	public DTO2s.C testPojo2(@Content DTO2s.C c) {
@@ -356,7 +356,7 @@ public class ContentTest {
 		//	}
 		DTOs.C x = DTOs.C.create();
 		r = c.doPost(URL + "/C?content=" + encode(JsonSerializer.DEFAULT_LAX.serialize(x)), null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 
 		c.closeQuietly();
 	}
@@ -497,7 +497,7 @@ public class ContentTest {
 		//	}
 		DTOs.B b = DTOs.B.create();
 		r = c.doPost(URL + "/B?content=" + encode(JsonSerializer.DEFAULT_LAX.serialize(b)) + "&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 
 		//	@RestMethod(name="POST", path="/C")
 		//	public DTO2s.C testPojo2(@Content DTO2s.C c) {
@@ -505,7 +505,7 @@ public class ContentTest {
 		//	}
 		DTOs.C x = DTOs.C.create();
 		r = c.doPost(URL + "/C?content=" + encode(JsonSerializer.DEFAULT_LAX.serialize(x)) + "&Content-Type=text/json", null).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 
 		c.closeQuietly();
 	}
@@ -678,9 +678,9 @@ public class ContentTest {
 		//	}
 		DTOs.B b = DTOs.B.create();
 		r = c.doPost(URL + "/B", "" + UonSerializer.DEFAULT.serialize(b)).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 		r = c.doPost(URL + "/B", "" + UonSerializer.DEFAULT_SIMPLE.serialize(b)).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 
 		//	@RestMethod(name="POST", path="/C")
 		//	public DTO2s.C testPojo2(@Content DTO2s.C c) {
@@ -688,9 +688,9 @@ public class ContentTest {
 		//	}
 		DTOs.C x = DTOs.C.create();
 		r = c.doPost(URL + "/C", "" + UonSerializer.DEFAULT.serialize(x)).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 		r = c.doPost(URL + "/C", "" + UonSerializer.DEFAULT_SIMPLE.serialize(x)).getResponseAsString();
-		assertEquals("{f1:['a','b'],f2:['c','d'],f3:[1,2],f4:[3,4],f5:[['e','f'],['g','h']],f6:[['i','j'],['k','l']],f7:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f8:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f9:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
+		assertEquals("{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f20:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]]}", r);
 
 		c.closeQuietly();
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/8d699b2f/juneau-server-test/src/test/java/org/apache/juneau/server/DTOs.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/test/java/org/apache/juneau/server/DTOs.java b/juneau-server-test/src/test/java/org/apache/juneau/server/DTOs.java
index f1b1a4a..541245a 100755
--- a/juneau-server-test/src/test/java/org/apache/juneau/server/DTOs.java
+++ b/juneau-server-test/src/test/java/org/apache/juneau/server/DTOs.java
@@ -14,10 +14,12 @@ package org.apache.juneau.server;
 
 import java.util.*;
 
+import org.apache.juneau.annotation.*;
 import org.apache.juneau.urlencoding.annotation.*;
 
 public class DTOs {
 
+	@Bean(sort=true)
 	public static class A {
 		public String a;
 		public int b;
@@ -34,16 +36,17 @@ public class DTOs {
 	}
 
 	@SuppressWarnings("serial")
+	@Bean(sort=true)
 	public static class B {
-		public String[] f1;
-		public List<String> f2;
-		public int[] f3;
-		public List<Integer> f4;
-		public String[][] f5;
-		public List<String[]> f6;
-		public A[] f7;
-		public List<A> f8;
-		public A[][] f9;
+		public String[] f01;
+		public List<String> f02;
+		public int[] f03;
+		public List<Integer> f04;
+		public String[][] f05;
+		public List<String[]> f06;
+		public A[] f07;
+		public List<A> f08;
+		public A[][] f09;
 		public List<List<A>> f10;
 
 		private String[] f11;
@@ -81,15 +84,15 @@ public class DTOs {
 
 		static B create() {
 			B t = new B();
-			t.f1 = new String[]{"a","b"};
-			t.f2 = new ArrayList<String>(){{add("c");add("d");}};
-			t.f3 = new int[]{1,2};
-			t.f4 = new ArrayList<Integer>(){{add(3);add(4);}};
-			t.f5 = new String[][]{{"e","f"},{"g","h"}};
-			t.f6 = new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}};
-			t.f7 = new A[]{A.create(),A.create()};
-			t.f8 = new ArrayList<A>(){{add(A.create());add(A.create());}};
-			t.f9 = new A[][]{{A.create()},{A.create()}};
+			t.f01 = new String[]{"a","b"};
+			t.f02 = new ArrayList<String>(){{add("c");add("d");}};
+			t.f03 = new int[]{1,2};
+			t.f04 = new ArrayList<Integer>(){{add(3);add(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.f07 = new A[]{A.create(),A.create()};
+			t.f08 = new ArrayList<A>(){{add(A.create());add(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.setF11(new String[]{"a","b"});
 			t.setF12(new ArrayList<String>(){{add("c");add("d");}});
@@ -110,15 +113,15 @@ public class DTOs {
 		@SuppressWarnings("serial")
 		static C create() {
 			C t = new C();
-			t.f1 = new String[]{"a","b"};
-			t.f2 = new ArrayList<String>(){{add("c");add("d");}};
-			t.f3 = new int[]{1,2};
-			t.f4 = new ArrayList<Integer>(){{add(3);add(4);}};
-			t.f5 = new String[][]{{"e","f"},{"g","h"}};
-			t.f6 = new ArrayList<String[]>(){{add(new String[]{"i","j"});add(new String[]{"k","l"});}};
-			t.f7 = new A[]{A.create(),A.create()};
-			t.f8 = new ArrayList<A>(){{add(A.create());add(A.create());}};
-			t.f9 = new A[][]{{A.create()},{A.create()}};
+			t.f01 = new String[]{"a","b"};
+			t.f02 = new ArrayList<String>(){{add("c");add("d");}};
+			t.f03 = new int[]{1,2};
+			t.f04 = new ArrayList<Integer>(){{add(3);add(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.f07 = new A[]{A.create(),A.create()};
+			t.f08 = new ArrayList<A>(){{add(A.create());add(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.setF11(new String[]{"a","b"});
 			t.setF12(new ArrayList<String>(){{add("c");add("d");}});

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/8d699b2f/juneau-server-test/src/test/java/org/apache/juneau/server/ParamsTest.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/test/java/org/apache/juneau/server/ParamsTest.java b/juneau-server-test/src/test/java/org/apache/juneau/server/ParamsTest.java
index 292c984..578519c 100755
--- a/juneau-server-test/src/test/java/org/apache/juneau/server/ParamsTest.java
+++ b/juneau-server-test/src/test/java/org/apache/juneau/server/ParamsTest.java
@@ -648,15 +648,15 @@ public class ParamsTest {
 		String url = URL + "/testFormPostsWithMultiParamsUsingProperty";
 
 		String in = ""
-			+ "f1=a&f1=b"
-			+ "&f2=c&f2=d"
-			+ "&f3=1&f3=2"
-			+ "&f4=3&f4=4"
-			+ "&f5=(e,f)&f5=(g,h)"
-			+ "&f6=(i,j)&f6=(k,l)"
-			+ "&f7=(a=a,b=1,c=true)&f7=(a=b,b=2,c=false)"
-			+ "&f8=(a=a,b=1,c=true)&f8=(a=b,b=2,c=false)"
-			+ "&f9=((a=a,b=1,c=true))&f9=((a=b,b=2,c=false))"
+			+ "f01=a&f01=b"
+			+ "&f02=c&f02=d"
+			+ "&f03=1&f03=2"
+			+ "&f04=3&f04=4"
+			+ "&f05=(e,f)&f05=(g,h)"
+			+ "&f06=(i,j)&f06=(k,l)"
+			+ "&f07=(a=a,b=1,c=true)&f07=(a=b,b=2,c=false)"
+			+ "&f08=(a=a,b=1,c=true)&f08=(a=b,b=2,c=false)"
+			+ "&f09=((a=a,b=1,c=true))&f09=((a=b,b=2,c=false))"
 			+ "&f10=((a=a,b=1,c=true))&f10=((a=b,b=2,c=false))"
 			+ "&f11=a&f11=b"
 			+ "&f12=c&f12=d"
@@ -688,15 +688,15 @@ public class ParamsTest {
 		String url = URL + "/testFormPostsWithMultiParamsUsingAnnotation";
 
 		String in = ""
-			+ "f1=a&f1=b"
-			+ "&f2=c&f2=d"
-			+ "&f3=1&f3=2"
-			+ "&f4=3&f4=4"
-			+ "&f5=(e,f)&f5=(g,h)"
-			+ "&f6=(i,j)&f6=(k,l)"
-			+ "&f7=(a=a,b=1,c=true)&f7=(a=b,b=2,c=false)"
-			+ "&f8=(a=a,b=1,c=true)&f8=(a=b,b=2,c=false)"
-			+ "&f9=((a=a,b=1,c=true))&f9=((a=b,b=2,c=false))"
+			+ "f01=a&f01=b"
+			+ "&f02=c&f02=d"
+			+ "&f03=1&f03=2"
+			+ "&f04=3&f04=4"
+			+ "&f05=(e,f)&f05=(g,h)"
+			+ "&f06=(i,j)&f06=(k,l)"
+			+ "&f07=(a=a,b=1,c=true)&f07=(a=b,b=2,c=false)"
+			+ "&f08=(a=a,b=1,c=true)&f08=(a=b,b=2,c=false)"
+			+ "&f09=((a=a,b=1,c=true))&f09=((a=b,b=2,c=false))"
 			+ "&f10=((a=a,b=1,c=true))&f10=((a=b,b=2,c=false))"
 			+ "&f11=a&f11=b"
 			+ "&f12=c&f12=d"