Browse Source

Reliable null value handling in ConcurrentMapCache, GuavaCache, JCacheCache

The 4.1 variant of this fix just introduces readResolve declarations to the existing NullHolder classes.

Issue: SPR-13553
pull/931/head
Juergen Hoeller 9 years ago
parent
commit
de932903ca
  1. 8
      spring-context-support/src/main/java/org/springframework/cache/guava/GuavaCache.java
  2. 6
      spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheCache.java
  3. 8
      spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCache.java

8
spring-context-support/src/main/java/org/springframework/cache/guava/GuavaCache.java vendored

@ -28,8 +28,8 @@ import org.springframework.cache.support.SimpleValueWrapper; @@ -28,8 +28,8 @@ import org.springframework.cache.support.SimpleValueWrapper;
import org.springframework.util.Assert;
/**
* Spring {@link Cache} adapter implementation on top of a
* Guava {@link com.google.common.cache.Cache} instance.
* Spring {@link org.springframework.cache.Cache} adapter implementation
* on top of a Guava {@link com.google.common.cache.Cache} instance.
*
* <p>Requires Google Guava 12.0 or higher.
*
@ -174,6 +174,10 @@ public class GuavaCache implements Cache { @@ -174,6 +174,10 @@ public class GuavaCache implements Cache {
@SuppressWarnings("serial")
private static class NullHolder implements Serializable {
private Object readResolve() {
return NULL_HOLDER;
}
}

6
spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheCache.java vendored

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2014 the original author or authors.
* Copyright 2002-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -142,6 +142,10 @@ public class JCacheCache implements Cache { @@ -142,6 +142,10 @@ public class JCacheCache implements Cache {
@SuppressWarnings("serial")
private static class NullHolder implements Serializable {
private Object readResolve() {
return NULL_HOLDER;
}
}
}

8
spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCache.java vendored

@ -25,8 +25,8 @@ import org.springframework.cache.support.SimpleValueWrapper; @@ -25,8 +25,8 @@ import org.springframework.cache.support.SimpleValueWrapper;
import org.springframework.util.Assert;
/**
* Simple {@link Cache} implementation based on the core JDK
* {@code java.util.concurrent} package.
* Simple {@link org.springframework.cache.Cache} implementation based on the
* core JDK {@code java.util.concurrent} package.
*
* <p>Useful for testing or simple caching scenarios, typically in combination
* with {@link org.springframework.cache.support.SimpleCacheManager} or
@ -172,6 +172,10 @@ public class ConcurrentMapCache implements Cache { @@ -172,6 +172,10 @@ public class ConcurrentMapCache implements Cache {
@SuppressWarnings("serial")
private static class NullHolder implements Serializable {
private Object readResolve() {
return NULL_HOLDER;
}
}
}

Loading…
Cancel
Save