You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2015/08/12 13:42:30 UTC

svn commit: r1695483 - in /qpid/java/trunk: bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/ broker-core/src/main/java/org/apache/qpid/server/model/ broker-core/src/main/java/org/apache/qpid/server/queue/ broker-core/src/main/java/...

Author: kwall
Date: Wed Aug 12 11:42:29 2015
New Revision: 1695483

URL: http://svn.apache.org/r1695483
Log:
QPID-6608: [Java Broker] Uncaught exceptions in the vhost now cause the broker to shutdown

work by Lorenz Quack <qu...@gmail.com> and Keith Wall

Modified:
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueRunner.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/HouseKeepingTask.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/LastValueQueueListTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/HouseKeepingTaskTest.java

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java Wed Aug 12 11:42:29 2015
@@ -57,6 +57,8 @@ import org.apache.qpid.server.transport.
 import org.apache.qpid.server.txn.DtxRegistry;
 import org.apache.qpid.server.virtualhost.*;
 
+import javax.security.auth.Subject;
+
 /**
   Object that represents the VirtualHost whilst the VirtualHostNode is in the replica role.  The
   real virtualhost will be elsewhere in the group.
@@ -129,7 +131,7 @@ public class BDBHAReplicaVirtualHostImpl
     }
 
     @Override
-    public void executeTask(Runnable task)
+    public void executeTask(Runnable task, Subject subject)
     {
         throwUnsupportedForReplica();
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java Wed Aug 12 11:42:29 2015
@@ -32,6 +32,8 @@ import org.apache.qpid.server.store.Mess
 import org.apache.qpid.server.transport.AMQPConnection;
 import org.apache.qpid.server.virtualhost.VirtualHostConnectionListener;
 
+import javax.security.auth.Subject;
+
 @ManagedObject( defaultType = "ProvidedStore", description = VirtualHost.CLASS_DESCRIPTION)
 public interface VirtualHost<X extends VirtualHost<X, Q, E>, Q extends Queue<?>, E extends Exchange<?> > extends ConfiguredObject<X>
 {
@@ -118,7 +120,7 @@ public interface VirtualHost<X extends V
     @ManagedContextDefault( name = "virtualhost.enabledConnectionValidators")
     String DEFAULT_ENABLED_VALIDATORS = "[]";
 
-    void executeTask(Runnable task);
+    void executeTask(Runnable task, Subject subject);
 
     @ManagedAttribute( defaultValue = "${virtualhost.enabledConnectionValidators}")
     List<String> getEnabledConnectionValidators();

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java Wed Aug 12 11:42:29 2015
@@ -278,7 +278,7 @@ public abstract class AbstractQueue<X ex
 
     private final ConcurrentLinkedQueue<EnqueueRequest> _postRecoveryQueue = new ConcurrentLinkedQueue<>();
 
-    private final QueueRunner _queueRunner = new QueueRunner(this);
+    private final QueueRunner _queueRunner;
     private boolean _closing;
     private final ConcurrentMap<String,Task<MessageFilter>> _defaultFiltersMap = new ConcurrentHashMap<>();
 
@@ -287,6 +287,7 @@ public abstract class AbstractQueue<X ex
         super(parentsMap(virtualHost), attributes);
 
         _virtualHost = virtualHost;
+        _queueRunner = new QueueRunner(this, _virtualHost.getPrincipal());
     }
 
     @Override
@@ -557,26 +558,23 @@ public abstract class AbstractQueue<X ex
 
     // ------ Getters and Setters
 
-    public void execute(Runnable runnable)
+    public void execute(Runnable runnable, Subject subject)
     {
         try
         {
-
             if (_virtualHost.getState() != State.UNAVAILABLE)
             {
-                _virtualHost.executeTask(runnable);
+                _virtualHost.executeTask(runnable, subject);
             }
         }
         catch (RejectedExecutionException ree)
         {
-            // Ignore - SubFlusherRunner or QueueRunner submitted execution as queue was being stopped.
+            // Ignore - QueueRunner submitted execution as queue was being stopped.
             if(!_stopped.get())
             {
                 _logger.error("Unexpected rejected execution", ree);
                 throw ree;
-
             }
-
         }
     }
 

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueRunner.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueRunner.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueRunner.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueRunner.java Wed Aug 12 11:42:29 2015
@@ -20,7 +20,7 @@
  */
 package org.apache.qpid.server.queue;
 
-import java.security.PrivilegedAction;
+import java.security.Principal;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
@@ -56,60 +56,55 @@ public class QueueRunner implements Runn
 
     private final AtomicLong _lastRunAgain = new AtomicLong();
     private final AtomicLong _lastRunTime = new AtomicLong();
+    private final Subject _subject;
 
-    public QueueRunner(AbstractQueue queue)
+    public QueueRunner(AbstractQueue queue, Principal principal)
     {
         _queue = queue;
+        _subject = SecurityManager.getSystemTaskSubject("Queue Delivery", principal);
     }
 
+    @Override
     public void run()
     {
         if(_scheduled.compareAndSet(SCHEDULED,RUNNING))
         {
-            Subject.doAs(SecurityManager.getSystemTaskSubject("Queue Delivery", _queue.getVirtualHost().getPrincipal()), new PrivilegedAction<Object>()
+            long runAgain = Long.MIN_VALUE;
+            _stateChange.set(false);
+            try
             {
-                @Override
-                public Object run()
+                runAgain = _queue.processQueue(QueueRunner.this);
+            }
+            catch (ConnectionScopedRuntimeException | TransportException  e)
+            {
+                final String errorMessage = "Problem during asynchronous delivery by " + toString();
+                if(_logger.isDebugEnabled())
                 {
-                    long runAgain = Long.MIN_VALUE;
-                    _stateChange.set(false);
-                    try
-                    {
-                        runAgain = _queue.processQueue(QueueRunner.this);
-                    }
-                    catch (ConnectionScopedRuntimeException | TransportException  e)
-                    {
-                        final String errorMessage = "Problem during asynchronous delivery by " + toString();
-                        if(_logger.isDebugEnabled())
-                        {
-                            _logger.debug(errorMessage, e);
-                        }
-                        else
-                        {
-                            _logger.info(errorMessage + ' ' + e.getMessage());
-                        }
-                    }
-                    finally
+                    _logger.debug(errorMessage, e);
+                }
+                else
+                {
+                    _logger.info(errorMessage + ' ' + e.getMessage());
+                }
+            }
+            finally
+            {
+                _scheduled.compareAndSet(RUNNING, IDLE);
+                final long stateChangeCount = _queue.getStateChangeCount();
+                _lastRunAgain.set(runAgain);
+                _lastRunTime.set(System.nanoTime());
+                if(runAgain == 0L || runAgain != stateChangeCount || _stateChange.compareAndSet(true,false))
+                {
+                    if(_scheduled.compareAndSet(IDLE, SCHEDULED))
                     {
-                        _scheduled.compareAndSet(RUNNING, IDLE);
-                        final long stateChangeCount = _queue.getStateChangeCount();
-                        _lastRunAgain.set(runAgain);
-                        _lastRunTime.set(System.nanoTime());
-                        if(runAgain == 0L || runAgain != stateChangeCount || _stateChange.compareAndSet(true,false))
-                        {
-                            if(_scheduled.compareAndSet(IDLE, SCHEDULED))
-                            {
-                                _queue.execute(QueueRunner.this);
-                            }
-                        }
+                        _queue.execute(QueueRunner.this, _subject);
                     }
-                    return null;
                 }
-
-            });
+            }
         }
     }
 
+    @Override
     public String toString()
     {
         return "QueueRunner-" + _queue.getLogSubject().toLogString();
@@ -120,7 +115,7 @@ public class QueueRunner implements Runn
         _stateChange.set(true);
         if(_scheduled.compareAndSet(IDLE, SCHEDULED))
         {
-            _queue.execute(this);
+            _queue.execute(this, _subject);
         }
     }
 

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java Wed Aug 12 11:42:29 2015
@@ -37,6 +37,8 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.*;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
@@ -48,6 +50,7 @@ import com.google.common.util.concurrent
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.SettableFuture;
+import org.apache.qpid.server.model.Connection;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -119,7 +122,7 @@ public abstract class AbstractVirtualHos
 
     private static final int HOUSEKEEPING_SHUTDOWN_TIMEOUT = 5;
 
-    private ScheduledThreadPoolExecutor _houseKeepingTasks;
+    private ScheduledThreadPoolExecutor _houseKeepingTaskExecutor;
 
     private final Broker<?> _broker;
 
@@ -561,15 +564,15 @@ public abstract class AbstractVirtualHos
 
     protected void shutdownHouseKeeping()
     {
-        if(_houseKeepingTasks != null)
+        if(_houseKeepingTaskExecutor != null)
         {
-            _houseKeepingTasks.shutdown();
+            _houseKeepingTaskExecutor.shutdown();
 
             try
             {
-                if (!_houseKeepingTasks.awaitTermination(HOUSEKEEPING_SHUTDOWN_TIMEOUT, TimeUnit.SECONDS))
+                if (!_houseKeepingTaskExecutor.awaitTermination(HOUSEKEEPING_SHUTDOWN_TIMEOUT, TimeUnit.SECONDS))
                 {
-                    _houseKeepingTasks.shutdownNow();
+                    _houseKeepingTaskExecutor.shutdownNow();
                 }
             }
             catch (InterruptedException e)
@@ -582,10 +585,10 @@ public abstract class AbstractVirtualHos
 
     protected void removeHouseKeepingTasks()
     {
-        BlockingQueue<Runnable> taskQueue = _houseKeepingTasks.getQueue();
+        BlockingQueue<Runnable> taskQueue = _houseKeepingTaskExecutor.getQueue();
         for (final Runnable runnable : taskQueue)
         {
-            _houseKeepingTasks.remove(runnable);
+            _houseKeepingTaskExecutor.remove(runnable);
         }
     }
 
@@ -597,45 +600,51 @@ public abstract class AbstractVirtualHos
      */
     public void scheduleHouseKeepingTask(long period, HouseKeepingTask task)
     {
-        _houseKeepingTasks.scheduleAtFixedRate(task, period / 2, period,
-                                               TimeUnit.MILLISECONDS);
+        _houseKeepingTaskExecutor.scheduleAtFixedRate(task, period / 2, period, TimeUnit.MILLISECONDS);
     }
 
     public ScheduledFuture<?> scheduleTask(long delay, Runnable task)
     {
-        return _houseKeepingTasks.schedule(task, delay, TimeUnit.MILLISECONDS);
+        return _houseKeepingTaskExecutor.schedule(task, delay, TimeUnit.MILLISECONDS);
     }
 
     @Override
-    public void executeTask(Runnable task)
+    public void executeTask(final Runnable task, Subject subject)
     {
-        _houseKeepingTasks.execute(task);
+        _houseKeepingTaskExecutor.execute(new HouseKeepingTask(this, subject)
+        {
+            @Override
+            public void execute()
+            {
+                task.run();
+            }
+        });
     }
 
     public long getHouseKeepingTaskCount()
     {
-        return _houseKeepingTasks.getTaskCount();
+        return _houseKeepingTaskExecutor.getTaskCount();
     }
 
     public long getHouseKeepingCompletedTaskCount()
     {
-        return _houseKeepingTasks.getCompletedTaskCount();
+        return _houseKeepingTaskExecutor.getCompletedTaskCount();
     }
 
     public int getHouseKeepingPoolSize()
     {
-        return _houseKeepingTasks.getCorePoolSize();
+        return _houseKeepingTaskExecutor.getCorePoolSize();
     }
 
     public void setHouseKeepingPoolSize(int newSize)
     {
-        _houseKeepingTasks.setCorePoolSize(newSize);
+        _houseKeepingTaskExecutor.setCorePoolSize(newSize);
     }
 
 
     public int getHouseKeepingActiveCount()
     {
-        return _houseKeepingTasks.getActiveCount();
+        return _houseKeepingTaskExecutor.getActiveCount();
     }
 
     @Override
@@ -1208,45 +1217,20 @@ public abstract class AbstractVirtualHos
             {
                 if (q.getState() == State.ACTIVE)
                 {
-                    if (_logger.isDebugEnabled())
-                    {
-                        _logger.debug("Checking message status for queue: "
-                                      + q.getName());
-                    }
-                    try
-                    {
-                        q.checkMessageStatus();
-                    }
-                    catch (Exception e)
-                    {
-                        _logger.error("Exception in housekeeping for queue: " + q.getName(), e);
-                        //Don't throw exceptions as this will stop the
-                        // house keeping task from running.
-                    }
+                    _logger.debug("Checking message status for queue: {}", q.getName());
+                    q.checkMessageStatus();
                 }
             }
             for (Connection<?> connection : _connections)
             {
-                if (_logger.isDebugEnabled())
-                {
-                    _logger.debug("Checking for long running open transactions on connection " + connection);
-                }
+                _logger.debug("Checking for long running open transactions on connection {}", connection);
                 for (AMQSessionModel<?> session : connection.getUnderlyingConnection().getSessionModels())
                 {
-                    if (_logger.isDebugEnabled())
-                    {
-                        _logger.debug("Checking for long running open transactions on session " + session);
-                    }
-                    try
-                    {
-                        session.checkTransactionStatus(getStoreTransactionOpenTimeoutWarn(),
-                                                       getStoreTransactionOpenTimeoutClose(),
-                                                       getStoreTransactionIdleTimeoutWarn(),
-                                                       getStoreTransactionIdleTimeoutClose());
-                    } catch (Exception e)
-                    {
-                        _logger.error("Exception in housekeeping for connection: " + connection.toString(), e);
-                    }
+                    _logger.debug("Checking for long running open transactions on session {}", session);
+                    session.checkTransactionStatus(getStoreTransactionOpenTimeoutWarn(),
+                                                   getStoreTransactionOpenTimeoutClose(),
+                                                   getStoreTransactionIdleTimeoutWarn(),
+                                                   getStoreTransactionIdleTimeoutClose());
                 }
             }
         }
@@ -1843,8 +1827,51 @@ public abstract class AbstractVirtualHos
         final SuppressingInheritedAccessControlContextThreadFactory housekeepingThreadFactory =
                 new SuppressingInheritedAccessControlContextThreadFactory("virtualhost-" + getName() + "-pool",
                                                                           SecurityManager.getSystemTaskSubject("Housekeeping", getPrincipal()));
-        _houseKeepingTasks = new ScheduledThreadPoolExecutor(getHousekeepingThreadCount(),
-                                                             housekeepingThreadFactory);
+        _houseKeepingTaskExecutor = new ScheduledThreadPoolExecutor(getHousekeepingThreadCount(), housekeepingThreadFactory){
+            @Override
+            protected void afterExecute(Runnable r, Throwable t)
+            {
+                super.afterExecute(r, t);
+                if (t == null && r instanceof Future<?>)
+                {
+                    Future future = (Future<?>) r;
+                    try
+                    {
+                        if (future.isDone())
+                        {
+                            Object result = future.get();
+                        }
+                    }
+                    catch (CancellationException ce)
+                    {
+                        _logger.debug("Housekeeping task got cancelled");
+                        // Ignore cancellation of task
+                    }
+                    catch (ExecutionException ee)
+                    {
+                        t = ee.getCause();
+                    }
+                    catch (InterruptedException ie)
+                    {
+                        Thread.currentThread().interrupt(); // ignore/reset
+                    }
+                }
+                if (t != null)
+                {
+                    _logger.error("Houskeeping task threw an exception:", t);
+
+                    final Thread.UncaughtExceptionHandler uncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
+                    if (uncaughtExceptionHandler != null)
+                    {
+                        uncaughtExceptionHandler.uncaughtException(Thread.currentThread(), t);
+                    }
+                    else
+                    {
+                        Runtime.getRuntime().halt(1);
+                    }
+                }
+            }
+        };
 
         final SuppressingInheritedAccessControlContextThreadFactory connectionThreadFactory =
                 new SuppressingInheritedAccessControlContextThreadFactory("virtualhost-" + getName() + "-iopool",

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/HouseKeepingTask.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/HouseKeepingTask.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/HouseKeepingTask.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/HouseKeepingTask.java Wed Aug 12 11:42:29 2015
@@ -24,24 +24,30 @@ import java.security.PrivilegedAction;
 
 import javax.security.auth.Subject;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.security.SecurityManager;
 
 public abstract class HouseKeepingTask implements Runnable
 {
-    private Logger _logger = LoggerFactory.getLogger(this.getClass());
-
-    private String _name;
-
+    private final String _name;
     private final Subject _subject;
 
     public HouseKeepingTask(VirtualHost vhost)
     {
+        this(vhost, null);
+    }
+
+    public HouseKeepingTask(VirtualHost vhost, Subject subject)
+    {
         _name = vhost.getName() + ":" + this.getClass().getSimpleName();
-        _subject = SecurityManager.getSystemTaskSubject(_name, vhost.getPrincipal());
+        if (subject == null)
+        {
+            _subject = SecurityManager.getSystemTaskSubject(_name, vhost.getPrincipal());
+        }
+        else
+        {
+            _subject = subject;
+        }
     }
 
     final public void run()
@@ -56,14 +62,7 @@ public abstract class HouseKeepingTask i
                 @Override
                 public Object run()
                 {
-                    try
-                    {
-                        execute();
-                    }
-                    catch (Exception e)
-                    {
-                        _logger.warn(this.getClass().getSimpleName() + " throw exception: " + e, e);
-                    }
+                    execute();
                     return null;
                 }
             });

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java Wed Aug 12 11:42:29 2015
@@ -58,6 +58,8 @@ import org.apache.qpid.server.transport.
 import org.apache.qpid.server.txn.DtxRegistry;
 import org.apache.qpid.server.virtualhost.*;
 
+import javax.security.auth.Subject;
+
 @ManagedObject( category = false, type = RedirectingVirtualHostImpl.TYPE, register = false )
 class RedirectingVirtualHostImpl
     extends AbstractConfiguredObject<RedirectingVirtualHostImpl>
@@ -130,7 +132,7 @@ class RedirectingVirtualHostImpl
     }
 
     @Override
-    public void executeTask(Runnable task)
+    public void executeTask(Runnable task, Subject subject)
     {
         throwUnsupportedForRedirector();
     }

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/LastValueQueueListTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/LastValueQueueListTest.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/LastValueQueueListTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/LastValueQueueListTest.java Wed Aug 12 11:42:29 2015
@@ -23,6 +23,7 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.security.Principal;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
@@ -67,6 +68,7 @@ public class LastValueQueueListTest exte
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(factory);
         when(virtualHost.getModel()).thenReturn(factory.getModel());
+        when(virtualHost.getPrincipal()).thenReturn(mock(Principal.class));
         TaskExecutor taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
         when(virtualHost.getTaskExecutor()).thenReturn(taskExecutor);
         when(virtualHost.getChildExecutor()).thenReturn(taskExecutor);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java Wed Aug 12 11:42:29 2015
@@ -24,6 +24,7 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.security.Principal;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
@@ -68,6 +69,7 @@ public class PriorityQueueListTest exten
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(factory);
         when(virtualHost.getModel()).thenReturn(factory.getModel());
+        when(virtualHost.getPrincipal()).thenReturn(mock(Principal.class));
         TaskExecutor taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
         when(virtualHost.getTaskExecutor()).thenReturn(taskExecutor);
         when(virtualHost.getChildExecutor()).thenReturn(taskExecutor);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java Wed Aug 12 11:42:29 2015
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.lang.reflect.Field;
+import java.security.Principal;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
@@ -245,6 +246,7 @@ public abstract class QueueEntryImplTest
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(factory);
         when(virtualHost.getModel()).thenReturn(factory.getModel());
+        when(virtualHost.getPrincipal()).thenReturn(mock(Principal.class));
         TaskExecutor taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
         when(virtualHost.getTaskExecutor()).thenReturn(taskExecutor);
         when(virtualHost.getChildExecutor()).thenReturn(taskExecutor);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java Wed Aug 12 11:42:29 2015
@@ -24,6 +24,7 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.security.Principal;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
@@ -57,6 +58,7 @@ public class SimpleQueueEntryImplTest ex
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(factory);
         when(virtualHost.getModel()).thenReturn(factory.getModel());
+        when(virtualHost.getPrincipal()).thenReturn(mock(Principal.class));
         TaskExecutor taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
         when(virtualHost.getTaskExecutor()).thenReturn(taskExecutor);
         when(virtualHost.getChildExecutor()).thenReturn(taskExecutor);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java Wed Aug 12 11:42:29 2015
@@ -24,6 +24,7 @@ import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.security.Principal;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
@@ -96,6 +97,7 @@ public class SortedQueueEntryListTest ex
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(factory);
         when(virtualHost.getModel()).thenReturn(factory.getModel());
+        when(virtualHost.getPrincipal()).thenReturn(mock(Principal.class));
         TaskExecutor taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
         when(virtualHost.getTaskExecutor()).thenReturn(taskExecutor);
         when(virtualHost.getChildExecutor()).thenReturn(taskExecutor);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java Wed Aug 12 11:42:29 2015
@@ -24,6 +24,7 @@ import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.security.Principal;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
@@ -66,6 +67,7 @@ public class SortedQueueEntryTest extend
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(factory);
         when(virtualHost.getModel()).thenReturn(factory.getModel());
+        when(virtualHost.getPrincipal()).thenReturn(mock(Principal.class));
         TaskExecutor taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
         when(virtualHost.getTaskExecutor()).thenReturn(taskExecutor);
         when(virtualHost.getChildExecutor()).thenReturn(taskExecutor);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java Wed Aug 12 11:42:29 2015
@@ -24,6 +24,7 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.security.Principal;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
@@ -69,6 +70,7 @@ public class StandardQueueEntryListTest
         TaskExecutor taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
         when(virtualHost.getTaskExecutor()).thenReturn(taskExecutor);
         when(virtualHost.getChildExecutor()).thenReturn(taskExecutor);
+        when(virtualHost.getPrincipal()).thenReturn(mock(Principal.class));
         _testQueue = new StandardQueueImpl(queueAttributes, virtualHost);
         _testQueue.open();
         _sqel = _testQueue.getEntries();
@@ -118,6 +120,7 @@ public class StandardQueueEntryListTest
             when(virtualHost.getEventLogger()).thenReturn(new EventLogger());
             when(virtualHost.getObjectFactory()).thenReturn(_factory);
             when(virtualHost.getModel()).thenReturn(_factory.getModel());
+            when(virtualHost.getPrincipal()).thenReturn(mock(Principal.class));
             TaskExecutor taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
             when(virtualHost.getTaskExecutor()).thenReturn(taskExecutor);
             when(virtualHost.getChildExecutor()).thenReturn(taskExecutor);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java Wed Aug 12 11:42:29 2015
@@ -20,6 +20,7 @@
  */
 package org.apache.qpid.server.queue;
 
+import java.security.Principal;
 import java.util.Arrays;
 import java.util.EnumSet;
 import java.util.HashMap;
@@ -38,6 +39,8 @@ import org.apache.qpid.server.model.Queu
 import org.apache.qpid.server.store.MessageEnqueueRecord;
 import org.apache.qpid.server.virtualhost.VirtualHostImpl;
 
+import static org.mockito.Mockito.mock;
+
 public class StandardQueueTest extends AbstractQueueTestBase
 {
 
@@ -216,7 +219,7 @@ public class StandardQueueTest extends A
                                          ConsumerImpl.Option.SEES_REQUEUES));
 
         // process queue
-        testQueue.processQueue(new QueueRunner(testQueue)
+        testQueue.processQueue(new QueueRunner(testQueue, mock(Principal.class))
         {
             public void run()
             {

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/HouseKeepingTaskTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/HouseKeepingTaskTest.java?rev=1695483&r1=1695482&r2=1695483&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/HouseKeepingTaskTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/HouseKeepingTaskTest.java Wed Aug 12 11:42:29 2015
@@ -63,7 +63,6 @@ public class HouseKeepingTaskTest extend
         public void execute()
         {
             _threadNameDuringExecution = Thread.currentThread().getName(); // store current thread name so we can assert it later
-            throw new RuntimeException("deliberate exception to check that thread name still gets reverted");
         }
 
         public String getThreadNameDuringExecution()



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org