From 323638fb24be7df45e1ca20ed698ab448b81f508 Mon Sep 17 00:00:00 2001 From: Thomas Lutz Date: Thu, 28 Feb 2019 13:34:14 +0100 Subject: [PATCH 1/2] Fix #16: JSON get does not handle missing cookie --- .../java/com/github/jscookie/javacookie/Cookies.java | 6 ++++++ .../javacookie/test/unit/CookiesJSONReadTest.java | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/main/java/com/github/jscookie/javacookie/Cookies.java b/src/main/java/com/github/jscookie/javacookie/Cookies.java index a8abe7f..d5327b2 100644 --- a/src/main/java/com/github/jscookie/javacookie/Cookies.java +++ b/src/main/java/com/github/jscookie/javacookie/Cookies.java @@ -65,6 +65,9 @@ public synchronized String get( String name ) { @Override public T get( String name, Class dataType ) throws CookieParseException { String value = get( name ); + if(value == null) { + return null; + } try { return mapper.readValue( value, dataType ); } catch ( IOException e ) { @@ -75,6 +78,9 @@ public T get( String name, Class dataType ) throws CookieParseException { @Override public T get( String name, TypeReference typeRef ) throws CookieParseException { String value = get( name ); + if(value == null) { + return null; + } try { return mapper.readValue( value, typeRef ); } catch ( IOException e ) { diff --git a/src/test/java/com/github/jscookie/javacookie/test/unit/CookiesJSONReadTest.java b/src/test/java/com/github/jscookie/javacookie/test/unit/CookiesJSONReadTest.java index a4f7977..7b40866 100644 --- a/src/test/java/com/github/jscookie/javacookie/test/unit/CookiesJSONReadTest.java +++ b/src/test/java/com/github/jscookie/javacookie/test/unit/CookiesJSONReadTest.java @@ -102,6 +102,17 @@ public void read_custom_type_with_number_prop() throws CookieParseException { Assert.assertEquals( expected2, actual2 ); } + @Test + public void read_missing_cookie() throws CookieParseException { + Mockito.when( request.getHeader( "cookie" ) ).thenReturn( null ); + + Assert.assertNull( cookies.get( "c" ) ); + Assert.assertNull( cookies.get( "c", CustomTypeInteger.class ) ); + Assert.assertNull( cookies.get( "c", CustomTypeBoolean.class ) ); + Assert.assertNull( cookies.get( "c", CustomTypeString.class ) ); + Assert.assertNull( cookies.get( "c", new TypeReference>() {} ) ); + } + private static class CustomTypeString { private String property; @JsonProperty( "property" ) From 5c349e6b614f0e692873c41a477b04d387c6a0eb Mon Sep 17 00:00:00 2001 From: Thomas Lutz Date: Fri, 1 Mar 2019 09:35:07 +0100 Subject: [PATCH 2/2] Fix code formatting --- src/main/java/com/github/jscookie/javacookie/Cookies.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/jscookie/javacookie/Cookies.java b/src/main/java/com/github/jscookie/javacookie/Cookies.java index d5327b2..f82f344 100644 --- a/src/main/java/com/github/jscookie/javacookie/Cookies.java +++ b/src/main/java/com/github/jscookie/javacookie/Cookies.java @@ -65,7 +65,7 @@ public synchronized String get( String name ) { @Override public T get( String name, Class dataType ) throws CookieParseException { String value = get( name ); - if(value == null) { + if ( value == null ) { return null; } try { @@ -78,7 +78,7 @@ public T get( String name, Class dataType ) throws CookieParseException { @Override public T get( String name, TypeReference typeRef ) throws CookieParseException { String value = get( name ); - if(value == null) { + if ( value == null ) { return null; } try {