/** {@inheritDoc} */ public void runTask(KernelRunnable task, Identity owner) throws Exception { if (isShutdown) { throw new IllegalStateException("Scheduler is shutdown"); } if (ContextResolver.isCurrentTransaction()) { // we're already active in a transaction, so just run the task task.run(); } else { // we're starting a new transaction ScheduledTaskImpl scheduledTask = new ScheduledTaskImpl(task, owner, defaultPriority, System.currentTimeMillis()); waitForTask(scheduledTask, false); } }
/** * Returns the base type of the task that is run transactionally by this <code>TransactionRunner * </code>. * * @return the base type of the wrapped task */ public String getBaseTaskType() { return transactionalTask.getBaseTaskType(); }