From 31815598a2af37f0b71ea94eada70d6659c23752 Mon Sep 17 00:00:00 2001 From: James Roper Date: Fri, 8 May 2015 22:54:48 +1000 Subject: [PATCH] Fix binary compatibility Change type of Cookie.maxAge back to int to maintain binary compatibility for drop in fixes. --- .../org/jboss/netty/handler/codec/http/Cookie.java | 12 ++++++------ .../netty/handler/codec/http/CookieDecoder.java | 4 ++-- .../netty/handler/codec/http/DefaultCookie.java | 2 +- .../codec/http/cookie/ClientCookieDecoder.java | 12 ++++++------ .../netty/handler/codec/http/cookie/Cookie.java | 8 ++++---- .../handler/codec/http/cookie/DefaultCookie.java | 6 +++--- .../codec/http/cookie/ServerCookieEncoder.java | 2 +- .../netty/handler/codec/http/CookieDecoderTest.java | 8 ++++---- .../codec/http/cookie/ClientCookieDecoderTest.java | 8 ++++---- 9 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/main/java/org/jboss/netty/handler/codec/http/Cookie.java b/src/main/java/org/jboss/netty/handler/codec/http/Cookie.java index c78f7f8c57..4e1fa4c3e1 100644 --- a/src/main/java/org/jboss/netty/handler/codec/http/Cookie.java +++ b/src/main/java/org/jboss/netty/handler/codec/http/Cookie.java @@ -20,7 +20,7 @@ import java.util.Set; /** * An interface defining an * HTTP cookie. - * @deprecated Use {@link io.netty.handler.codec.http.cookie.Cookie} instead. + * @deprecated Use {@link org.jboss.netty.handler.codec.http.cookie.Cookie} instead. */ @Deprecated public interface Cookie extends org.jboss.netty.handler.codec.http.cookie.Cookie { @@ -79,23 +79,23 @@ public interface Cookie extends org.jboss.netty.handler.codec.http.cookie.Cookie * @deprecated Use {@link #maxAge()} instead. */ @Deprecated - long getMaxAge(); + int getMaxAge(); /** - * Returns the maximum age of this {@link Cookie} in seconds or {@link Long#MIN_VALUE} if unspecified + * Returns the maximum age of this {@link Cookie} in seconds or {@link Integer#MIN_VALUE} if unspecified * * @return The maximum age of this {@link Cookie} * * @deprecated Not part of RFC6265 */ @Deprecated - long maxAge(); + int maxAge(); /** * Sets the maximum age of this {@link Cookie} in seconds. * If an age of {@code 0} is specified, this {@link Cookie} will be * automatically removed by browser because it will expire immediately. - * If {@link Long#MIN_VALUE} is specified, this {@link Cookie} will be removed when the + * If {@link Integer#MIN_VALUE} is specified, this {@link Cookie} will be removed when the * browser is closed. * * @param maxAge The maximum age of this {@link Cookie} in seconds @@ -103,7 +103,7 @@ public interface Cookie extends org.jboss.netty.handler.codec.http.cookie.Cookie * @deprecated Not part of RFC6265 */ @Deprecated - void setMaxAge(long maxAge); + void setMaxAge(int maxAge); /** * @deprecated Use {@link #version()} instead. diff --git a/src/main/java/org/jboss/netty/handler/codec/http/CookieDecoder.java b/src/main/java/org/jboss/netty/handler/codec/http/CookieDecoder.java index e8450aedba..9e2dac991c 100644 --- a/src/main/java/org/jboss/netty/handler/codec/http/CookieDecoder.java +++ b/src/main/java/org/jboss/netty/handler/codec/http/CookieDecoder.java @@ -138,7 +138,7 @@ public final class CookieDecoder { String commentURL = null; String domain = null; String path = null; - long maxAge = Long.MIN_VALUE; + int maxAge = Integer.MIN_VALUE; List ports = new ArrayList(2); for (int j = i + 1; j < names.size(); j++, i++) { @@ -165,7 +165,7 @@ public final class CookieDecoder { HttpHeaderDateFormat.get().parse(value).getTime() - System.currentTimeMillis(); - maxAge = maxAgeMillis / 1000 + (maxAgeMillis % 1000 != 0? 1 : 0); + maxAge = (int) (maxAgeMillis / 1000 + (maxAgeMillis % 1000 != 0? 1 : 0)); } catch (ParseException e) { // Ignore. } diff --git a/src/main/java/org/jboss/netty/handler/codec/http/DefaultCookie.java b/src/main/java/org/jboss/netty/handler/codec/http/DefaultCookie.java index 724c24736a..9460af0121 100644 --- a/src/main/java/org/jboss/netty/handler/codec/http/DefaultCookie.java +++ b/src/main/java/org/jboss/netty/handler/codec/http/DefaultCookie.java @@ -154,7 +154,7 @@ public class DefaultCookie extends org.jboss.netty.handler.codec.http.cookie.Def } @Deprecated - public long getMaxAge() { + public int getMaxAge() { return maxAge(); } diff --git a/src/main/java/org/jboss/netty/handler/codec/http/cookie/ClientCookieDecoder.java b/src/main/java/org/jboss/netty/handler/codec/http/cookie/ClientCookieDecoder.java index 51e1e08624..b36ff378dd 100644 --- a/src/main/java/org/jboss/netty/handler/codec/http/cookie/ClientCookieDecoder.java +++ b/src/main/java/org/jboss/netty/handler/codec/http/cookie/ClientCookieDecoder.java @@ -154,7 +154,7 @@ public final class ClientCookieDecoder extends CookieDecoder { private final DefaultCookie cookie; private String domain; private String path; - private long maxAge = Long.MIN_VALUE; + private int maxAge = Integer.MIN_VALUE; private String expires; private boolean secure; private boolean httpOnly; @@ -163,18 +163,18 @@ public final class ClientCookieDecoder extends CookieDecoder { this.cookie = cookie; } - private long mergeMaxAgeAndExpire(long maxAge, String expires) { + private int mergeMaxAgeAndExpire(int maxAge, String expires) { // max age has precedence over expires - if (maxAge != Long.MIN_VALUE) { + if (maxAge != Integer.MIN_VALUE) { return maxAge; } else if (expires != null) { Date expiresDate = HttpHeaderDateFormat.get().parse(expires, new ParsePosition(0)); if (expiresDate != null) { long maxAgeMillis = expiresDate.getTime() - System.currentTimeMillis(); - return maxAgeMillis / 1000 + (maxAgeMillis % 1000 != 0 ? 1 : 0); + return (int) (maxAgeMillis / 1000 + (maxAgeMillis % 1000 != 0 ? 1 : 0)); } } - return Long.MIN_VALUE; + return Integer.MIN_VALUE; } public Cookie cookie() { @@ -239,7 +239,7 @@ public final class ClientCookieDecoder extends CookieDecoder { private void setMaxAge(String value) { try { - maxAge = Math.max(Long.valueOf(value), 0L); + maxAge = Math.max(Integer.valueOf(value), 0); } catch (NumberFormatException e1) { // ignore failure to parse -> treat as session cookie } diff --git a/src/main/java/org/jboss/netty/handler/codec/http/cookie/Cookie.java b/src/main/java/org/jboss/netty/handler/codec/http/cookie/Cookie.java index 8c8e7e15a9..4f3d3dcfa5 100644 --- a/src/main/java/org/jboss/netty/handler/codec/http/cookie/Cookie.java +++ b/src/main/java/org/jboss/netty/handler/codec/http/cookie/Cookie.java @@ -87,22 +87,22 @@ public interface Cookie extends Comparable { void setPath(String path); /** - * Returns the maximum age of this {@link Cookie} in seconds or {@link Long#MIN_VALUE} if unspecified + * Returns the maximum age of this {@link Cookie} in seconds or {@link Integer#MIN_VALUE} if unspecified * * @return The maximum age of this {@link Cookie} */ - long maxAge(); + int maxAge(); /** * Sets the maximum age of this {@link Cookie} in seconds. * If an age of {@code 0} is specified, this {@link Cookie} will be * automatically removed by browser because it will expire immediately. - * If {@link Long#MIN_VALUE} is specified, this {@link Cookie} will be removed when the + * If {@link Integer#MIN_VALUE} is specified, this {@link Cookie} will be removed when the * browser is closed. * * @param maxAge The maximum age of this {@link Cookie} in seconds */ - void setMaxAge(long maxAge); + void setMaxAge(int maxAge); /** * Checks to see if this {@link Cookie} is secure diff --git a/src/main/java/org/jboss/netty/handler/codec/http/cookie/DefaultCookie.java b/src/main/java/org/jboss/netty/handler/codec/http/cookie/DefaultCookie.java index ad69997080..e335cc1922 100644 --- a/src/main/java/org/jboss/netty/handler/codec/http/cookie/DefaultCookie.java +++ b/src/main/java/org/jboss/netty/handler/codec/http/cookie/DefaultCookie.java @@ -25,7 +25,7 @@ public class DefaultCookie implements Cookie { private boolean wrap; private String domain; private String path; - private long maxAge = Long.MIN_VALUE; + private int maxAge = Integer.MIN_VALUE; private boolean secure; private boolean httpOnly; @@ -105,11 +105,11 @@ public class DefaultCookie implements Cookie { this.path = validateValue("path", path); } - public long maxAge() { + public int maxAge() { return maxAge; } - public void setMaxAge(long maxAge) { + public void setMaxAge(int maxAge) { this.maxAge = maxAge; } diff --git a/src/main/java/org/jboss/netty/handler/codec/http/cookie/ServerCookieEncoder.java b/src/main/java/org/jboss/netty/handler/codec/http/cookie/ServerCookieEncoder.java index d00505cc97..08015dae18 100644 --- a/src/main/java/org/jboss/netty/handler/codec/http/cookie/ServerCookieEncoder.java +++ b/src/main/java/org/jboss/netty/handler/codec/http/cookie/ServerCookieEncoder.java @@ -93,7 +93,7 @@ public final class ServerCookieEncoder extends CookieEncoder { add(buf, name, value); } - if (cookie.maxAge() != Long.MIN_VALUE) { + if (cookie.maxAge() != Integer.MIN_VALUE) { add(buf, CookieHeaderNames.MAX_AGE, cookie.maxAge()); Date expires = new Date(cookie.maxAge() * 1000 + System.currentTimeMillis()); add(buf, CookieHeaderNames.EXPIRES, HttpHeaderDateFormat.get().format(expires)); diff --git a/src/test/java/org/jboss/netty/handler/codec/http/CookieDecoderTest.java b/src/test/java/org/jboss/netty/handler/codec/http/CookieDecoderTest.java index e84775b675..e811b31ec5 100644 --- a/src/test/java/org/jboss/netty/handler/codec/http/CookieDecoderTest.java +++ b/src/test/java/org/jboss/netty/handler/codec/http/CookieDecoderTest.java @@ -207,7 +207,7 @@ public class CookieDecoderTest { assertNull(c.getCommentUrl()); assertNull(c.getDomain()); assertTrue(c.getPorts().isEmpty()); - assertEquals(Long.MIN_VALUE, c.getMaxAge()); + assertEquals(Integer.MIN_VALUE, c.getMaxAge()); c = it.next(); assertEquals(1, c.getVersion()); @@ -218,7 +218,7 @@ public class CookieDecoderTest { assertNull(c.getCommentUrl()); assertNull(c.getDomain()); assertTrue(c.getPorts().isEmpty()); - assertEquals(Long.MIN_VALUE, c.getMaxAge()); + assertEquals(Integer.MIN_VALUE, c.getMaxAge()); assertFalse(it.hasNext()); } @@ -243,7 +243,7 @@ public class CookieDecoderTest { assertNull(c.getCommentUrl()); assertNull(c.getDomain()); assertTrue(c.getPorts().isEmpty()); - assertEquals(Long.MIN_VALUE, c.getMaxAge()); + assertEquals(Integer.MIN_VALUE, c.getMaxAge()); assertTrue(it.hasNext()); c = it.next(); @@ -255,7 +255,7 @@ public class CookieDecoderTest { assertNull(c.getComment()); assertNull(c.getCommentUrl()); assertTrue(c.getPorts().isEmpty()); - assertEquals(Long.MIN_VALUE, c.getMaxAge()); + assertEquals(Integer.MIN_VALUE, c.getMaxAge()); assertFalse(it.hasNext()); } diff --git a/src/test/java/org/jboss/netty/handler/codec/http/cookie/ClientCookieDecoderTest.java b/src/test/java/org/jboss/netty/handler/codec/http/cookie/ClientCookieDecoderTest.java index 2c49bc3fc6..680664d84d 100644 --- a/src/test/java/org/jboss/netty/handler/codec/http/cookie/ClientCookieDecoderTest.java +++ b/src/test/java/org/jboss/netty/handler/codec/http/cookie/ClientCookieDecoderTest.java @@ -172,11 +172,11 @@ public class ClientCookieDecoderTest { @Test public void testDecodingLongDates() { Calendar cookieDate = Calendar.getInstance(TimeZone.getTimeZone("UTC")); - cookieDate.set(9999, Calendar.DECEMBER, 31, 23, 59, 59); - long expectedMaxAge = (cookieDate.getTimeInMillis() - System - .currentTimeMillis()) / 1000; + cookieDate.set(2080, Calendar.DECEMBER, 31, 23, 59, 59); + int expectedMaxAge = (int)((cookieDate.getTimeInMillis() - System + .currentTimeMillis()) / 1000); - String source = "Format=EU; expires=Fri, 31-Dec-9999 23:59:59 GMT; path=/"; + String source = "Format=EU; expires=Fri, 31-Dec-2080 23:59:59 GMT; path=/"; Cookie cookie = ClientCookieDecoder.STRICT.decode(source);