• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hazendaz / httpunit / 755

14 Feb 2026 07:14PM UTC coverage: 80.526%. Remained the same
755

push

github

hazendaz
[ci] Fix badge

3213 of 4105 branches covered (78.27%)

Branch coverage included in aggregate %.

8245 of 10124 relevant lines covered (81.44%)

0.81 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

79.41
/src/main/java/com/meterware/servletunit/DispatchedRequestWrapper.java
1
/*
2
 * SPDX-License-Identifier: MIT
3
 * See LICENSE file for details.
4
 *
5
 * Copyright 2000-2026 Russell Gold
6
 * Copyright 2021-2000 hazendaz
7
 */
8
package com.meterware.servletunit;
9

10
import jakarta.servlet.RequestDispatcher;
11
import jakarta.servlet.http.HttpServletRequest;
12
import jakarta.servlet.http.HttpServletRequestWrapper;
13

14
import java.util.Enumeration;
15
import java.util.Hashtable;
16
import java.util.Map;
17

18
/**
19
 * This class represents a request dispatched via a RequestDispatcherImpl.
20
 **/
21
class DispatchedRequestWrapper extends HttpServletRequestWrapper {
22

23
    /** Request-specific information, including parameters and paths. **/
24
    private RequestContext _requestContext;
25

26
    /** The request being wrapped. **/
27
    private HttpServletRequest _baseRequest;
28

29
    /**
30
     * Creates the include request wrapper.
31
     *
32
     * @param request
33
     *            the request
34
     * @param dispatcher
35
     *            the dispatcher
36
     *
37
     * @return the http servlet request
38
     */
39
    static HttpServletRequest createIncludeRequestWrapper(HttpServletRequest request, RequestDispatcher dispatcher) {
40
        return new IncludeRequestWrapper(request, dispatcher);
1✔
41
    }
42

43
    /**
44
     * Creates the forward request wrapper.
45
     *
46
     * @param request
47
     *            the request
48
     * @param dispatcher
49
     *            the dispatcher
50
     *
51
     * @return the http servlet request
52
     */
53
    static HttpServletRequest createForwardRequestWrapper(HttpServletRequest request, RequestDispatcher dispatcher) {
54
        return new ForwardRequestWrapper(request, dispatcher);
1✔
55
    }
56

57
    /**
58
     * Instantiates a new dispatched request wrapper.
59
     *
60
     * @param baseRequest
61
     *            the base request
62
     * @param dispatcher
63
     *            the dispatcher
64
     */
65
    DispatchedRequestWrapper(HttpServletRequest baseRequest, RequestDispatcher dispatcher) {
66
        super(baseRequest);
1✔
67
        _baseRequest = baseRequest;
1✔
68
        _requestContext = (RequestContext) dispatcher;
1✔
69
        _requestContext.setParentRequest(baseRequest);
1✔
70
    }
1✔
71

72
    /**
73
     * Gets the base request.
74
     *
75
     * @return the base request
76
     */
77
    HttpServletRequest getBaseRequest() {
78
        return _baseRequest;
×
79
    }
80

81
    @Override
82
    public String getParameter(String s) {
83
        return _requestContext.getParameter(s);
1✔
84
    }
85

86
    @Override
87
    public Enumeration getParameterNames() {
88
        return _requestContext.getParameterNames();
×
89
    }
90

91
    @Override
92
    public String[] getParameterValues(String s) {
93
        return _requestContext.getParameterValues(s);
×
94
    }
95

96
    @Override
97
    public Map getParameterMap() {
98
        return _requestContext.getParameterMap();
×
99
    }
100

101
}
102

103
class IncludeRequestWrapper extends DispatchedRequestWrapper {
104

105
    static final String REQUEST_URI = "jakarta.servlet.include.request_uri";
106
    static final String CONTEXT_PATH = "jakarta.servlet.include.context_path";
107
    static final String SERVLET_PATH = "jakarta.servlet.include.servlet_path";
108
    static final String PATH_INFO = "jakarta.servlet.include.path_info";
109
    static final String QUERY_STRING = "jakarta.servlet.include.query_string";
110

111
    private Hashtable _attributes = new Hashtable<>();
1✔
112

113
    IncludeRequestWrapper(HttpServletRequest request, RequestDispatcher dispatcher) {
114
        super(request, dispatcher);
1✔
115
        _attributes.put(REQUEST_URI, ((RequestDispatcherImpl) dispatcher).getRequestURI());
1✔
116
        _attributes.put(CONTEXT_PATH, request.getContextPath());
1✔
117
        _attributes.put(SERVLET_PATH, ((RequestDispatcherImpl) dispatcher).getServletMetaData().getServletPath());
1✔
118
        final String pathInfo = ((RequestDispatcherImpl) dispatcher).getServletMetaData().getPathInfo();
1✔
119
        if (pathInfo != null) {
1!
120
            _attributes.put(PATH_INFO, pathInfo);
×
121
        }
122
    }
1✔
123

124
    @Override
125
    public Object getAttribute(String s) {
126
        Object result = _attributes.get(s);
1✔
127
        return result != null ? result : super.getAttribute(s);
1✔
128
    }
129

130
}
131

132
class ForwardRequestWrapper extends DispatchedRequestWrapper {
133

134
    private RequestDispatcherImpl _requestContext;
135

136
    ForwardRequestWrapper(HttpServletRequest request, RequestDispatcher dispatcher) {
137
        super(request, dispatcher);
1✔
138
        _requestContext = (RequestDispatcherImpl) dispatcher;
1✔
139
    }
1✔
140

141
    @Override
142
    public String getRequestURI() {
143
        return _requestContext.getRequestURI();
1✔
144
    }
145

146
    @Override
147
    public String getQueryString() {
148
        return super.getQueryString();
×
149
    }
150

151
    @Override
152
    public String getServletPath() {
153
        return _requestContext.getServletMetaData().getServletPath();
1✔
154
    }
155

156
    @Override
157
    public String getPathInfo() {
158
        return _requestContext.getServletMetaData().getPathInfo();
1✔
159
    }
160
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc