Merge remote-tracking branch 'origin/jetty-9.2.x' into jetty-9.3.x

This commit is contained in:
Jan Bartel 2016-08-31 16:23:06 +10:00
commit 34d465555b
6 changed files with 57 additions and 32 deletions

View File

@ -43,4 +43,9 @@ package org.eclipse.jetty.continuation;
* </p>
*/
public class ContinuationThrowable extends Error
{}
{
public ContinuationThrowable()
{
super(null, null, false, false);
}
}

View File

@ -34,11 +34,7 @@ import org.eclipse.jetty.util.log.Logger;
public class BlockingCallback implements Callback.NonBlocking
{
private static final Logger LOG = Log.getLogger(BlockingCallback.class);
private static Throwable SUCCEEDED = new Throwable()
{
@Override
public String toString() { return "SUCCEEDED"; }
};
private static Throwable SUCCEEDED = new ConstantThrowable("SUCCEEDED");
private final CountDownLatch _latch = new CountDownLatch(1);
private final AtomicReference<Throwable> _state = new AtomicReference<>();

View File

@ -0,0 +1,43 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.util;
/**
* A {@link Throwable} that may be used in static contexts. It uses Java 7
* constructor that prevents setting stackTrace inside exception object.
*/
public class ConstantThrowable extends Throwable {
private String name;
public ConstantThrowable() {
this(null);
}
public ConstantThrowable(String name) {
super(null, null, false, false);
this.name = name;
}
@Override
public String toString() {
return name;
}
}

View File

@ -29,7 +29,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
public class FutureCallback implements Future<Void>,Callback
{
private static Throwable COMPLETED=new Throwable();
private static Throwable COMPLETED=new ConstantThrowable();
private final AtomicBoolean _done=new AtomicBoolean(false);
private final CountDownLatch _latch=new CountDownLatch(1);
private Throwable _cause;

View File

@ -29,7 +29,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
public class FuturePromise<C> implements Future<C>,Promise<C>
{
private static Throwable COMPLETED=new Throwable();
private static Throwable COMPLETED=new ConstantThrowable();
private final AtomicBoolean _done=new AtomicBoolean(false);
private final CountDownLatch _latch=new CountDownLatch(1);
private Throwable _cause;

View File

@ -49,30 +49,11 @@ import org.eclipse.jetty.util.log.Logger;
public class SharedBlockingCallback
{
static final Logger LOG = Log.getLogger(SharedBlockingCallback.class);
private static Throwable IDLE = new Throwable()
{
@Override
public String toString()
{
return "IDLE";
}
};
private static Throwable SUCCEEDED = new Throwable()
{
@Override
public String toString()
{
return "SUCCEEDED";
}
};
private static Throwable FAILED = new Throwable()
{
@Override
public String toString()
{
return "FAILED";
}
};
private static Throwable IDLE = new ConstantThrowable("IDLE");
private static Throwable SUCCEEDED = new ConstantThrowable("SUCCEEDED");
private static Throwable FAILED = new ConstantThrowable("FAILED");
private final ReentrantLock _lock = new ReentrantLock();
private final Condition _idle = _lock.newCondition();