mirror of
https://github.com/jetty/jetty.project.git
synced 2025-03-01 03:19:13 +00:00
Merge remote-tracking branch 'origin/master' into jetty-http2
This commit is contained in:
commit
ae8e7f0067
@ -315,7 +315,10 @@ public class HttpChannel implements Runnable
|
||||
else
|
||||
{
|
||||
error=true;
|
||||
throw e;
|
||||
LOG.warn(String.valueOf(_uri), e);
|
||||
_state.error(e);
|
||||
_request.setHandled(true);
|
||||
handleException(e);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@ -66,6 +66,9 @@ public class RequestLogHandler extends HandlerWrapper
|
||||
@Override
|
||||
public void onError(AsyncEvent event) throws IOException
|
||||
{
|
||||
HttpServletResponse response = (HttpServletResponse)event.getAsyncContext().getResponse();
|
||||
if (!response.isCommitted())
|
||||
response.setStatus(500);
|
||||
|
||||
}
|
||||
|
||||
@ -91,6 +94,12 @@ public class RequestLogHandler extends HandlerWrapper
|
||||
{
|
||||
super.handle(target, baseRequest, request, response);
|
||||
}
|
||||
catch(Error|IOException|ServletException|RuntimeException e)
|
||||
{
|
||||
if (!response.isCommitted() && !baseRequest.getHttpChannelState().isAsync())
|
||||
response.setStatus(500);
|
||||
throw e;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (_requestLog != null && baseRequest.getDispatcherType().equals(DispatcherType.REQUEST))
|
||||
|
@ -130,6 +130,7 @@ public class AsyncGzipFilter extends UserAgentFilter implements GzipFactory
|
||||
private static final Logger LOG = Log.getLogger(AsyncGzipFilter.class);
|
||||
public final static String GZIP = "gzip";
|
||||
public static final String DEFLATE = "deflate";
|
||||
public final static String ETAG_GZIP="--gzip";
|
||||
public final static String ETAG = "o.e.j.s.GzipFilter.ETag";
|
||||
public final static int DEFAULT_MIN_GZIP_SIZE=256;
|
||||
|
||||
@ -364,9 +365,8 @@ public class AsyncGzipFilter extends UserAgentFilter implements GzipFactory
|
||||
String etag = request.getHeader("If-None-Match");
|
||||
if (etag!=null)
|
||||
{
|
||||
int dd=etag.indexOf("--");
|
||||
if (dd>0)
|
||||
request.setAttribute(ETAG,etag.substring(0,dd)+(etag.endsWith("\"")?"\"":""));
|
||||
if (etag.contains(ETAG_GZIP))
|
||||
request.setAttribute(ETAG,etag.replace(ETAG_GZIP,""));
|
||||
}
|
||||
|
||||
HttpChannel channel = HttpChannel.getCurrentHttpChannel();
|
||||
|
@ -255,7 +255,7 @@ public abstract class AbstractCompressedStream extends ServletOutputStream
|
||||
|
||||
String etag=_wrapper.getETag();
|
||||
if (etag!=null)
|
||||
setHeader("ETag",etag.substring(0,etag.length()-1)+'-'+_encoding+'"');
|
||||
setHeader("ETag",etag.substring(0,etag.length()-1)+"--"+_encoding+'"');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ import org.eclipse.jetty.http.MimeTypes;
|
||||
import org.eclipse.jetty.server.HttpChannel;
|
||||
import org.eclipse.jetty.server.HttpOutput;
|
||||
import org.eclipse.jetty.server.Response;
|
||||
import org.eclipse.jetty.servlets.AsyncGzipFilter;
|
||||
import org.eclipse.jetty.util.BufferUtil;
|
||||
import org.eclipse.jetty.util.Callback;
|
||||
import org.eclipse.jetty.util.IteratingNestedCallback;
|
||||
@ -195,7 +196,7 @@ public class GzipHttpOutput extends HttpOutput
|
||||
response.setContentLength(-1);
|
||||
String etag=fields.get(HttpHeader.ETAG);
|
||||
if (etag!=null)
|
||||
fields.put(HttpHeader.ETAG,etag.substring(0,etag.length()-1)+"--gzip\"");
|
||||
fields.put(HttpHeader.ETAG,etag.substring(0,etag.length()-1)+AsyncGzipFilter.ETAG_GZIP+ '"');
|
||||
|
||||
LOG.debug("{} compressing {}",this,_deflater);
|
||||
_state.set(GZState.COMPRESSING);
|
||||
|
@ -23,6 +23,7 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.lang.instrument.ClassFileTransformer;
|
||||
import java.lang.instrument.IllegalClassFormatException;
|
||||
import java.lang.instrument.Instrumentation;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.security.CodeSource;
|
||||
@ -461,16 +462,43 @@ public class WebAppClassLoader extends URLClassLoader
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @see addTransformer
|
||||
* @deprecated
|
||||
*/
|
||||
public void addClassFileTransformer(ClassFileTransformer transformer)
|
||||
{
|
||||
_transformers.add(transformer);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @see removeTransformer
|
||||
* @deprecated
|
||||
*/
|
||||
public boolean removeClassFileTransformer(ClassFileTransformer transformer)
|
||||
{
|
||||
return _transformers.remove(transformer);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @see addClassFileTransformer
|
||||
*/
|
||||
public void addTransformer(ClassFileTransformer transformer)
|
||||
{
|
||||
_transformers.add(transformer);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @see removeClassFileTransformer
|
||||
*/
|
||||
public boolean removeTransformer(ClassFileTransformer transformer)
|
||||
{
|
||||
return _transformers.remove(transformer);
|
||||
}
|
||||
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
@Override
|
||||
|
@ -97,7 +97,7 @@ public class WebAppClassLoaderTest
|
||||
{
|
||||
final List<Object> results=new ArrayList<Object>();
|
||||
|
||||
_loader.addClassFileTransformer(new ClassFileTransformer()
|
||||
_loader.addTransformer(new ClassFileTransformer()
|
||||
{
|
||||
public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer)
|
||||
throws IllegalClassFormatException
|
||||
@ -109,7 +109,7 @@ public class WebAppClassLoaderTest
|
||||
return b;
|
||||
}
|
||||
});
|
||||
_loader.addClassFileTransformer(new ClassFileTransformer()
|
||||
_loader.addTransformer(new ClassFileTransformer()
|
||||
{
|
||||
public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer)
|
||||
throws IllegalClassFormatException
|
||||
|
Loading…
x
Reference in New Issue
Block a user