1
1
/*
2
- * Copyright 2009-2012 the original author or authors.
2
+ * Copyright 2009-2014 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
15
15
*/
16
16
package org .apache .ibatis .cache .decorators ;
17
17
18
- import java .util .Collections ;
19
18
import java .util .LinkedHashMap ;
20
19
import java .util .Map ;
21
20
import java .util .concurrent .locks .ReadWriteLock ;
@@ -36,17 +35,18 @@ public LruCache(Cache delegate) {
36
35
setSize (1024 );
37
36
}
38
37
38
+ @ Override
39
39
public String getId () {
40
40
return delegate .getId ();
41
41
}
42
42
43
+ @ Override
43
44
public int getSize () {
44
45
return delegate .getSize ();
45
46
}
46
47
47
48
public void setSize (final int size ) {
48
- // TODO look for a better solution to this, see issue #335
49
- keyMap = Collections .synchronizedMap (new LinkedHashMap <Object , Object >(size , .75F , true ) {
49
+ keyMap = new LinkedHashMap <Object , Object >(size , .75F , true ) {
50
50
private static final long serialVersionUID = 4267176411845948333L ;
51
51
52
52
protected boolean removeEldestEntry (Map .Entry <Object , Object > eldest ) {
@@ -56,31 +56,34 @@ protected boolean removeEldestEntry(Map.Entry<Object, Object> eldest) {
56
56
}
57
57
return tooBig ;
58
58
}
59
- }) ;
59
+ };
60
60
}
61
61
62
+ @ Override
62
63
public void putObject (Object key , Object value ) {
63
64
delegate .putObject (key , value );
64
65
cycleKeyList (key );
65
66
}
66
67
68
+ @ Override
67
69
public Object getObject (Object key ) {
68
70
keyMap .get (key ); //touch
69
71
return delegate .getObject (key );
70
-
71
72
}
72
73
74
+ @ Override
73
75
public Object removeObject (Object key ) {
74
76
return delegate .removeObject (key );
75
77
}
76
78
79
+ @ Override
77
80
public void clear () {
78
81
delegate .clear ();
79
82
keyMap .clear ();
80
83
}
81
84
82
85
public ReadWriteLock getReadWriteLock () {
83
- return delegate . getReadWriteLock () ;
86
+ return null ;
84
87
}
85
88
86
89
private void cycleKeyList (Object key ) {
@@ -92,4 +95,3 @@ private void cycleKeyList(Object key) {
92
95
}
93
96
94
97
}
95
-
0 commit comments