View | Details | Raw Unified | Return to bug 52091
Collapse All | Expand All

(-)apache-tomcat-7.0.19-src/java/org/apache/catalina/core/StandardWrapper.java (-12 / +52 lines)
Lines 26-31 Link Here
26
import java.util.HashSet;
26
import java.util.HashSet;
27
import java.util.Stack;
27
import java.util.Stack;
28
import java.util.concurrent.atomic.AtomicInteger;
28
import java.util.concurrent.atomic.AtomicInteger;
29
import java.util.concurrent.locks.ReentrantReadWriteLock;
29
30
30
import javax.management.ListenerNotFoundException;
31
import javax.management.ListenerNotFoundException;
31
import javax.management.MBeanNotificationInfo;
32
import javax.management.MBeanNotificationInfo;
Lines 293-298 Link Here
293
                                                         ServletRequest.class,
294
                                                         ServletRequest.class,
294
                                                         ServletResponse.class};
295
                                                         ServletResponse.class};
295
    
296
    
297
    private final ReentrantReadWriteLock parametersLock = new ReentrantReadWriteLock();
298
    private final ReentrantReadWriteLock mappingsLock = new ReentrantReadWriteLock();
299
    private final ReentrantReadWriteLock referencesLock = new ReentrantReadWriteLock();
296
300
297
    // ------------------------------------------------------------- Properties
301
    // ------------------------------------------------------------- Properties
298
302
Lines 731-738 Link Here
731
    @Override
735
    @Override
732
    public void addInitParameter(String name, String value) {
736
    public void addInitParameter(String name, String value) {
733
737
734
        synchronized (parameters) {
738
        try {
739
            parametersLock.writeLock().lock();
735
            parameters.put(name, value);
740
            parameters.put(name, value);
741
        } finally {
742
            parametersLock.writeLock().unlock();
736
        }
743
        }
737
        fireContainerEvent("addInitParameter", name);
744
        fireContainerEvent("addInitParameter", name);
738
745
Lines 760-767 Link Here
760
    @Override
767
    @Override
761
    public void addMapping(String mapping) {
768
    public void addMapping(String mapping) {
762
769
763
        synchronized (mappings) {
770
        try {
771
            mappingsLock.writeLock().lock();
764
            mappings.add(mapping);
772
            mappings.add(mapping);
773
        } finally {
774
            mappingsLock.writeLock().unlock();
765
        }
775
        }
766
        if(parent.getState().equals(LifecycleState.STARTED))
776
        if(parent.getState().equals(LifecycleState.STARTED))
767
            fireContainerEvent(ADD_MAPPING_EVENT, mapping);
777
            fireContainerEvent(ADD_MAPPING_EVENT, mapping);
Lines 779-786 Link Here
779
    @Override
789
    @Override
780
    public void addSecurityReference(String name, String link) {
790
    public void addSecurityReference(String name, String link) {
781
791
782
        synchronized (references) {
792
        try {
793
            referencesLock.writeLock().lock();
783
            references.put(name, link);
794
            references.put(name, link);
795
        } finally {
796
            referencesLock.writeLock().unlock();
784
        }
797
        }
785
        fireContainerEvent("addSecurityReference", name);
798
        fireContainerEvent("addSecurityReference", name);
786
799
Lines 935-942 Link Here
935
    @Override
948
    @Override
936
    public String findInitParameter(String name) {
949
    public String findInitParameter(String name) {
937
950
938
        synchronized (parameters) {
951
        try {
952
            parametersLock.readLock().lock();
939
            return parameters.get(name);
953
            return parameters.get(name);
954
        } finally {
955
            parametersLock.readLock().unlock();
940
        }
956
        }
941
957
942
    }
958
    }
Lines 949-957 Link Here
949
    @Override
965
    @Override
950
    public String[] findInitParameters() {
966
    public String[] findInitParameters() {
951
967
952
        synchronized (parameters) {
968
        try {
969
            parametersLock.readLock().lock();
953
            String results[] = new String[parameters.size()];
970
            String results[] = new String[parameters.size()];
954
            return parameters.keySet().toArray(results);
971
            return parameters.keySet().toArray(results);
972
        } finally {
973
            parametersLock.readLock().unlock();
955
        }
974
        }
956
975
957
    }
976
    }
Lines 963-970 Link Here
963
    @Override
982
    @Override
964
    public String[] findMappings() {
983
    public String[] findMappings() {
965
984
966
        synchronized (mappings) {
985
        try {
986
            mappingsLock.readLock().lock();
967
            return mappings.toArray(new String[mappings.size()]);
987
            return mappings.toArray(new String[mappings.size()]);
988
        } finally {
989
            mappingsLock.readLock().unlock();
968
        }
990
        }
969
991
970
    }
992
    }
Lines 979-986 Link Here
979
    @Override
1001
    @Override
980
    public String findSecurityReference(String name) {
1002
    public String findSecurityReference(String name) {
981
1003
982
        synchronized (references) {
1004
        try {
1005
            referencesLock.readLock().lock();
983
            return references.get(name);
1006
            return references.get(name);
1007
        } finally {
1008
            referencesLock.readLock().unlock();
984
        }
1009
        }
985
1010
986
    }
1011
    }
Lines 993-1001 Link Here
993
    @Override
1018
    @Override
994
    public String[] findSecurityReferences() {
1019
    public String[] findSecurityReferences() {
995
1020
996
        synchronized (references) {
1021
        try {
1022
            referencesLock.readLock().lock();
997
            String results[] = new String[references.size()];
1023
            String results[] = new String[references.size()];
998
            return references.keySet().toArray(results);
1024
            return references.keySet().toArray(results);
1025
        } finally {
1026
            referencesLock.readLock().unlock();
999
        }
1027
        }
1000
1028
1001
    }
1029
    }
Lines 1251-1258 Link Here
1251
    @Override
1279
    @Override
1252
    public void removeInitParameter(String name) {
1280
    public void removeInitParameter(String name) {
1253
1281
1254
        synchronized (parameters) {
1282
        try {
1283
            parametersLock.writeLock().lock();
1255
            parameters.remove(name);
1284
            parameters.remove(name);
1285
        } finally {
1286
            parametersLock.writeLock().unlock();
1256
        }
1287
        }
1257
        fireContainerEvent("removeInitParameter", name);
1288
        fireContainerEvent("removeInitParameter", name);
1258
1289
Lines 1280-1287 Link Here
1280
    @Override
1311
    @Override
1281
    public void removeMapping(String mapping) {
1312
    public void removeMapping(String mapping) {
1282
1313
1283
        synchronized (mappings) {
1314
        try {
1315
            mappingsLock.writeLock().lock();
1284
            mappings.remove(mapping);
1316
            mappings.remove(mapping);
1317
        } finally {
1318
            mappingsLock.writeLock().unlock();
1285
        }
1319
        }
1286
        if(parent.getState().equals(LifecycleState.STARTED))
1320
        if(parent.getState().equals(LifecycleState.STARTED))
1287
            fireContainerEvent(REMOVE_MAPPING_EVENT, mapping);
1321
            fireContainerEvent(REMOVE_MAPPING_EVENT, mapping);
Lines 1297-1304 Link Here
1297
    @Override
1331
    @Override
1298
    public void removeSecurityReference(String name) {
1332
    public void removeSecurityReference(String name) {
1299
1333
1300
        synchronized (references) {
1334
        try {
1335
            referencesLock.writeLock().lock();
1301
            references.remove(name);
1336
            references.remove(name);
1337
        } finally {
1338
            referencesLock.writeLock().unlock();
1302
        }
1339
        }
1303
        fireContainerEvent("removeSecurityReference", name);
1340
        fireContainerEvent("removeSecurityReference", name);
1304
1341
Lines 1508-1515 Link Here
1508
    @Override
1545
    @Override
1509
    public Enumeration<String> getInitParameterNames() {
1546
    public Enumeration<String> getInitParameterNames() {
1510
1547
1511
        synchronized (parameters) {
1548
        try {
1549
            parametersLock.readLock().lock();
1512
            return (new Enumerator<String>(parameters.keySet()));
1550
            return (new Enumerator<String>(parameters.keySet()));
1551
        } finally {
1552
            parametersLock.readLock().unlock();
1513
        }
1553
        }
1514
1554
1515
    }
1555
    }
(-)apache-tomcat-7.0.19-src/java/org/apache/jasper/runtime/TagHandlerPool.java (-1 / +1 lines)
Lines 38-44 Link Here
38
    public static final String OPTION_TAGPOOL = "tagpoolClassName";
38
    public static final String OPTION_TAGPOOL = "tagpoolClassName";
39
    public static final String OPTION_MAXSIZE = "tagpoolMaxSize";
39
    public static final String OPTION_MAXSIZE = "tagpoolMaxSize";
40
40
41
    private final Log log = LogFactory.getLog(TagHandlerPool.class);
41
    private final static Log log = LogFactory.getLog(TagHandlerPool.class);
42
42
43
    // index of next available tag handler
43
    // index of next available tag handler
44
    private int current;
44
    private int current;

Return to bug 52091