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

(-)a/java/org/apache/catalina/ha/context/ReplicatedContext.java (-3 / +12 lines)
Lines 83-95 public class ReplicatedContext extends StandardContext implements MapOwner { Link Here
83
    @Override
83
    @Override
84
    protected synchronized void stopInternal() throws LifecycleException {
84
    protected synchronized void stopInternal() throws LifecycleException {
85
85
86
        Map<String, Object> map = ((ReplApplContext) this.context)
87
                .getAttributeMap();
88
86
        super.stopInternal();
89
        super.stopInternal();
87
90
88
        Map<String,Object> map =
89
                ((ReplApplContext)this.context).getAttributeMap();
90
        if (map instanceof ReplicatedMap) {
91
        if (map instanceof ReplicatedMap) {
91
            ((ReplicatedMap<?,?>)map).breakdown();
92
            ((ReplicatedMap<?, ?>) map).breakdown();
92
        }
93
        }
94
93
    }
95
    }
94
96
95
97
Lines 160-165 public class ReplicatedContext extends StandardContext implements MapOwner { Link Here
160
162
161
        @Override
163
        @Override
162
        public void setAttribute(String name, Object value) {
164
        public void setAttribute(String name, Object value) {
165
            if (name == null) {
166
                throw new IllegalArgumentException(sm.getString("applicationContext.setAttribute.namenull"));
167
            }
168
            if (value == null) {
169
                removeAttribute(name);
170
                return;
171
            }
163
            if ( (!getParent().getState().isAvailable()) || "org.apache.jasper.runtime.JspApplicationContextImpl".equals(name) ){
172
            if ( (!getParent().getState().isAvailable()) || "org.apache.jasper.runtime.JspApplicationContextImpl".equals(name) ){
164
                tomcatAttributes.put(name,value);
173
                tomcatAttributes.put(name,value);
165
            } else
174
            } else
(-)a/test/org/apache/catalina/ha/context/TestReplicatedContext.java (-1 / +56 lines)
Line 0 Link Here
0
- 
1
package org.apache.catalina.ha.context;
2
3
import java.io.File;
4
import java.io.IOException;
5
6
import javax.servlet.ServletException;
7
import javax.servlet.http.HttpServlet;
8
import javax.servlet.http.HttpServletRequest;
9
import javax.servlet.http.HttpServletResponse;
10
11
import org.apache.catalina.Context;
12
import org.apache.catalina.Host;
13
import org.apache.catalina.LifecycleException;
14
import org.apache.catalina.core.StandardHost;
15
import org.apache.catalina.startup.Tomcat;
16
import org.apache.catalina.startup.TomcatBaseTest;
17
import org.apache.tomcat.util.buf.ByteChunk;
18
import org.junit.Assert;
19
import org.junit.Test;
20
21
public class TestReplicatedContext extends TomcatBaseTest {
22
23
    @Test
24
    public void testBug57425() throws LifecycleException, IOException, ServletException {
25
        Tomcat tomcat = getTomcatInstance();
26
        Host host = tomcat.getHost();
27
        if (host instanceof StandardHost) {
28
            ((StandardHost) host).setContextClass(ReplicatedContext.class.getName());
29
        }
30
31
        File root = new File("test/webapp");
32
        Context context = tomcat.addWebapp(host, "", "", root.getAbsolutePath());
33
34
        Tomcat.addServlet(context, "test", new AccessContextServlet());
35
        context.addServletMapping("/access", "test");
36
37
        tomcat.start();
38
39
        ByteChunk result = getUrl("http://localhost:" + getPort() + "/access");
40
41
        Assert.assertEquals("OK", result.toString());
42
43
    }
44
45
    private static class AccessContextServlet extends HttpServlet {
46
47
        private static final long serialVersionUID = 1L;
48
49
        @Override
50
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
51
                throws ServletException, IOException {
52
            getServletContext().setAttribute("NULL", null);
53
            resp.getWriter().print("OK");
54
        }
55
    }
56
}

Return to bug 57425