@@ -56,13 +56,13 @@ public class LinkedCaseInsensitiveMap<V> implements Map<String, V>, Serializable
56
56
private final Locale locale ;
57
57
58
58
@ Nullable
59
- private transient Set <String > keySet ;
59
+ private transient volatile Set <String > keySet ;
60
60
61
61
@ Nullable
62
- private transient Collection <V > values ;
62
+ private transient volatile Collection <V > values ;
63
63
64
64
@ Nullable
65
- private transient Set <Entry <String , V >> entrySet ;
65
+ private transient volatile Set <Entry <String , V >> entrySet ;
66
66
67
67
68
68
/**
@@ -465,7 +465,7 @@ public void forEach(Consumer<? super Entry<String, V>> action) {
465
465
}
466
466
467
467
468
- private class EntryIterator {
468
+ private abstract class EntryIterator < T > implements Iterator < T > {
469
469
470
470
private final Iterator <Entry <String , V >> delegate ;
471
471
@@ -476,16 +476,18 @@ public EntryIterator() {
476
476
this .delegate = targetMap .entrySet ().iterator ();
477
477
}
478
478
479
- public Entry <String , V > nextEntry () {
479
+ protected Entry <String , V > nextEntry () {
480
480
Entry <String , V > entry = this .delegate .next ();
481
481
this .last = entry ;
482
482
return entry ;
483
483
}
484
484
485
+ @ Override
485
486
public boolean hasNext () {
486
487
return this .delegate .hasNext ();
487
488
}
488
489
490
+ @ Override
489
491
public void remove () {
490
492
this .delegate .remove ();
491
493
if (this .last != null ) {
@@ -496,7 +498,7 @@ public void remove() {
496
498
}
497
499
498
500
499
- private class KeySetIterator extends EntryIterator implements Iterator <String > {
501
+ private class KeySetIterator extends EntryIterator <String > {
500
502
501
503
@ Override
502
504
public String next () {
@@ -505,7 +507,7 @@ public String next() {
505
507
}
506
508
507
509
508
- private class ValuesIterator extends EntryIterator implements Iterator <V > {
510
+ private class ValuesIterator extends EntryIterator <V > {
509
511
510
512
@ Override
511
513
public V next () {
@@ -514,7 +516,7 @@ public V next() {
514
516
}
515
517
516
518
517
- private class EntrySetIterator extends EntryIterator implements Iterator <Entry <String , V >> {
519
+ private class EntrySetIterator extends EntryIterator <Entry <String , V >> {
518
520
519
521
@ Override
520
522
public Entry <String , V > next () {
0 commit comments