@@ -79,6 +79,29 @@ public void deserialization() throws Exception {
7979 assertEquals ("bar" , request .getParameterMap ().get ("foo" )[0 ]);
8080 }
8181
82+ @ Test
83+ public void deserializationWithoutParameterMap () throws Exception {
84+ // JSON produced by older versions that did not include the parameterMap field
85+ String json = "{\" cookies\" :[{\" name\" :\" first\" ,\" value\" :\" val1\" ,\" attributes\" :{}},{\" name\" :\" second\" ,\" value\" :\" val2\" ,\" attributes\" :{}}],\" headers\" :{\" header1\" :[\" h1val1\" ,\" h1val2\" ],\" header2\" :[\" h2val1\" ]},\" method\" :\" PATCH\" ,\" queryString\" :\" foo=bar\" ,\" url\" :\" http://example.com/foo\" }" ;
86+ SavedRequest request = SavedRequest .fromJson (json );
87+
88+ assertNotNull (request );
89+ assertEquals (2 , request .getCookies ().length );
90+ assertEquals ("first" , request .getCookies ()[0 ].getName ());
91+ assertEquals ("val1" , request .getCookies ()[0 ].getValue ());
92+ assertEquals ("second" , request .getCookies ()[1 ].getName ());
93+ assertEquals ("val2" , request .getCookies ()[1 ].getValue ());
94+ assertEquals (2 , request .getHeaders ().size ());
95+ assertEquals (List .of ("h1val1" , "h1val2" ), request .getHeaders ().get ("header1" ));
96+ assertEquals (List .of ("h2val1" ), request .getHeaders ().get ("header2" ));
97+ assertEquals ("PATCH" , request .getMethod ());
98+ assertEquals ("foo=bar" , request .getQueryString ());
99+ assertEquals ("http://example.com/foo" , request .getUrl ());
100+ // parameterMap should be initialized to a safe default (e.g., empty map) rather than null
101+ assertNotNull (request .getParameterMap ());
102+ assertTrue (request .getParameterMap ().isEmpty ());
103+ }
104+
82105 @ Test
83106 public void cookieSerialization () throws Exception {
84107 JsonbConfig config = new JsonbConfig ()
0 commit comments