Issue #4861 - changes from review

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
This commit is contained in:
Lachlan Roberts 2020-05-13 23:05:54 +10:00
parent 629e106045
commit 4aece5e9cf
2 changed files with 18 additions and 27 deletions

View File

@ -1868,10 +1868,13 @@ public class Request implements HttpServletRequest
_asyncNotSupportedSource = null;
_handled = false;
_attributes = Attributes.unwrap(_attributes);
if (ServletAttributes.class.equals(_attributes.getClass()))
_attributes.clearAttributes();
else
_attributes = new ServletAttributes();
if (_attributes != null)
{
if (ServletAttributes.class.equals(_attributes.getClass()))
_attributes.clearAttributes();
else
_attributes = null;
}
_contentType = null;
_characterEncoding = null;
_contextPath = null;

View File

@ -33,51 +33,39 @@ public class ServletAttributes implements Attributes
_asyncAttributes = attributes;
}
private Attributes getAttributes()
{
return (_asyncAttributes == null) ? _attributes : _asyncAttributes;
}
@Override
public void removeAttribute(String name)
{
if (_asyncAttributes == null)
_attributes.removeAttribute(name);
else
_asyncAttributes.removeAttribute(name);
getAttributes().removeAttribute(name);
}
@Override
public void setAttribute(String name, Object attribute)
{
if (_asyncAttributes == null)
_attributes.setAttribute(name, attribute);
else
_asyncAttributes.setAttribute(name, attribute);
getAttributes().setAttribute(name, attribute);
}
@Override
public Object getAttribute(String name)
{
if (_asyncAttributes == null)
return _attributes.getAttribute(name);
else
return _asyncAttributes.getAttribute(name);
return getAttributes().getAttribute(name);
}
@Override
public Set<String> getAttributeNameSet()
{
if (_asyncAttributes == null)
return _attributes.getAttributeNameSet();
else
return _asyncAttributes.getAttributeNameSet();
return getAttributes().getAttributeNameSet();
}
@Override
public void clearAttributes()
{
if (_asyncAttributes == null)
_attributes.clearAttributes();
else
{
_asyncAttributes.clearAttributes();
_asyncAttributes = null;
}
getAttributes().clearAttributes();
_asyncAttributes = null;
}
}