Search in sources :

Example 36 with TimerTask

use of java.util.TimerTask in project tomcat by apache.

the class PoolUtils method checkMinIdle.

/**
     * Periodically check the idle object count for the pool. At most one idle
     * object will be added per period. If there is an exception when calling
     * {@link ObjectPool#addObject()} then no more checks will be performed.
     *
     * @param pool
     *            the pool to check periodically.
     * @param minIdle
     *            if the {@link ObjectPool#getNumIdle()} is less than this then
     *            add an idle object.
     * @param period
     *            the frequency to check the number of idle objects in a pool,
     *            see {@link Timer#schedule(TimerTask, long, long)}.
     * @param <T> the type of objects in the pool
     * @return the {@link TimerTask} that will periodically check the pools idle
     *         object count.
     * @throws IllegalArgumentException
     *             when <code>pool</code> is <code>null</code> or when
     *             <code>minIdle</code> is negative or when <code>period</code>
     *             isn't valid for {@link Timer#schedule(TimerTask, long, long)}
     */
public static <T> TimerTask checkMinIdle(final ObjectPool<T> pool, final int minIdle, final long period) throws IllegalArgumentException {
    if (pool == null) {
        throw new IllegalArgumentException("keyedPool must not be null.");
    }
    if (minIdle < 0) {
        throw new IllegalArgumentException("minIdle must be non-negative.");
    }
    final TimerTask task = new ObjectPoolMinIdleTimerTask<>(pool, minIdle);
    getMinIdleTimer().schedule(task, 0L, period);
    return task;
}
Also used : TimerTask(java.util.TimerTask)

Example 37 with TimerTask

use of java.util.TimerTask in project tomcat by apache.

the class PoolUtils method checkMinIdle.

/**
     * Periodically check the idle object count for each key in the
     * <code>Collection</code> <code>keys</code> in the keyedPool. At most one
     * idle object will be added per period.
     *
     * @param keyedPool
     *            the keyedPool to check periodically.
     * @param keys
     *            a collection of keys to check the idle object count.
     * @param minIdle
     *            if the {@link KeyedObjectPool#getNumIdle(Object)} is less than
     *            this then add an idle object.
     * @param period
     *            the frequency to check the number of idle objects in a
     *            keyedPool, see {@link Timer#schedule(TimerTask, long, long)}.
     * @param <K> the type of the pool key
     * @param <V> the type of pool entries
     * @return a {@link Map} of key and {@link TimerTask} pairs that will
     *         periodically check the pools idle object count.
     * @throws IllegalArgumentException
     *             when <code>keyedPool</code>, <code>keys</code>, or any of the
     *             values in the collection is <code>null</code> or when
     *             <code>minIdle</code> is negative or when <code>period</code>
     *             isn't valid for {@link Timer#schedule(TimerTask, long, long)}
     *             .
     * @see #checkMinIdle(KeyedObjectPool, Object, int, long)
     */
public static <K, V> Map<K, TimerTask> checkMinIdle(final KeyedObjectPool<K, V> keyedPool, final Collection<K> keys, final int minIdle, final long period) throws IllegalArgumentException {
    if (keys == null) {
        throw new IllegalArgumentException("keys must not be null.");
    }
    final Map<K, TimerTask> tasks = new HashMap<>(keys.size());
    final Iterator<K> iter = keys.iterator();
    while (iter.hasNext()) {
        final K key = iter.next();
        final TimerTask task = checkMinIdle(keyedPool, key, minIdle, period);
        tasks.put(key, task);
    }
    return tasks;
}
Also used : TimerTask(java.util.TimerTask) HashMap(java.util.HashMap)

Example 38 with TimerTask

use of java.util.TimerTask in project tomcat by apache.

the class PoolUtils method checkMinIdle.

/**
     * Periodically check the idle object count for the key in the keyedPool. At
     * most one idle object will be added per period. If there is an exception
     * when calling {@link KeyedObjectPool#addObject(Object)} then no more
     * checks for that key will be performed.
     *
     * @param keyedPool
     *            the keyedPool to check periodically.
     * @param key
     *            the key to check the idle count of.
     * @param minIdle
     *            if the {@link KeyedObjectPool#getNumIdle(Object)} is less than
     *            this then add an idle object.
     * @param period
     *            the frequency to check the number of idle objects in a
     *            keyedPool, see {@link Timer#schedule(TimerTask, long, long)}.
     * @param <K> the type of the pool key
     * @param <V> the type of pool entries
     * @return the {@link TimerTask} that will periodically check the pools idle
     *         object count.
     * @throws IllegalArgumentException
     *             when <code>keyedPool</code>, <code>key</code> is
     *             <code>null</code> or when <code>minIdle</code> is negative or
     *             when <code>period</code> isn't valid for
     *             {@link Timer#schedule(TimerTask, long, long)}.
     */
public static <K, V> TimerTask checkMinIdle(final KeyedObjectPool<K, V> keyedPool, final K key, final int minIdle, final long period) throws IllegalArgumentException {
    if (keyedPool == null) {
        throw new IllegalArgumentException("keyedPool must not be null.");
    }
    if (key == null) {
        throw new IllegalArgumentException("key must not be null.");
    }
    if (minIdle < 0) {
        throw new IllegalArgumentException("minIdle must be non-negative.");
    }
    final TimerTask task = new KeyedObjectPoolMinIdleTimerTask<>(keyedPool, key, minIdle);
    getMinIdleTimer().schedule(task, 0L, period);
    return task;
}
Also used : TimerTask(java.util.TimerTask)

Example 39 with TimerTask

use of java.util.TimerTask in project UltimateAndroid by cymcsg.

the class CircleProgressActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.circle_progress_activity_my);
    donutProgress = (DonutProgress) findViewById(R.id.donut_progress);
    circleProgress = (CircleProgress) findViewById(R.id.circle_progress);
    arcProgress = (ArcProgress) findViewById(R.id.arc_progress);
    timer = new Timer();
    timer.schedule(new TimerTask() {

        @Override
        public void run() {
            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    donutProgress.setProgress(donutProgress.getProgress() + 1);
                    circleProgress.setProgress(circleProgress.getProgress() + 1);
                    arcProgress.setProgress(arcProgress.getProgress() + 1);
                }
            });
        }
    }, 1000, 100);
}
Also used : Timer(java.util.Timer) TimerTask(java.util.TimerTask)

Example 40 with TimerTask

use of java.util.TimerTask in project hive by apache.

the class ScriptOperator method close.

@Override
public void close(boolean abort) throws HiveException {
    boolean new_abort = abort;
    if (!abort) {
        if (scriptError != null) {
            throw new HiveException(ErrorMsg.SCRIPT_GENERIC_ERROR.getErrorCodedMsg(), scriptError);
        }
        // everything ok. try normal shutdown
        try {
            try {
                if (scriptOutWriter != null) {
                    scriptOutWriter.close();
                }
            } catch (IOException e) {
                if (isBrokenPipeException(e) && allowPartialConsumption()) {
                    LOG.warn("Got broken pipe: ignoring exception");
                } else {
                    if (isBrokenPipeException(e)) {
                        displayBrokenPipeInfo();
                    }
                    throw e;
                }
            }
            int exitVal = 0;
            if (scriptPid != null) {
                exitVal = scriptPid.waitFor();
            }
            if (exitVal != 0) {
                LOG.error("Script failed with code " + exitVal);
                new_abort = true;
            }
        } catch (IOException e) {
            LOG.error("Got ioexception: " + e.getMessage());
            e.printStackTrace();
            new_abort = true;
        } catch (InterruptedException e) {
        }
    } else {
        // error code of the child process if possible.
        try {
            // Interrupt the current thread after 1 second
            final Thread mythread = Thread.currentThread();
            Timer timer = new Timer(true);
            timer.schedule(new TimerTask() {

                @Override
                public void run() {
                    mythread.interrupt();
                }
            }, 1000);
            // Wait for the child process to finish
            int exitVal = 0;
            if (scriptPid != null) {
                scriptPid.waitFor();
            }
            // Cancel the timer
            timer.cancel();
            // Output the exit code
            LOG.error("Script exited with code " + exitVal);
        } catch (InterruptedException e) {
            // Ignore
            LOG.error("Script has not exited yet. It will be killed.");
        }
    }
    // try these best effort
    try {
        if (outThread != null) {
            outThread.join(0);
        }
    } catch (Exception e) {
        LOG.warn("Exception in closing outThread: " + StringUtils.stringifyException(e));
    }
    try {
        if (errThread != null) {
            errThread.join(0);
        }
    } catch (Exception e) {
        LOG.warn("Exception in closing errThread: " + StringUtils.stringifyException(e));
    }
    try {
        if (scriptPid != null) {
            scriptPid.destroy();
        }
    } catch (Exception e) {
        LOG.warn("Exception in destroying scriptPid: " + StringUtils.stringifyException(e));
    }
    super.close(new_abort);
    if (new_abort && !abort) {
        throw new HiveException(ErrorMsg.SCRIPT_CLOSING_ERROR.getErrorCodedMsg());
    }
}
Also used : HiveException(org.apache.hadoop.hive.ql.metadata.HiveException) Timer(java.util.Timer) TimerTask(java.util.TimerTask) IOException(java.io.IOException) IOException(java.io.IOException) SerDeException(org.apache.hadoop.hive.serde2.SerDeException) HiveException(org.apache.hadoop.hive.ql.metadata.HiveException)

Aggregations

TimerTask (java.util.TimerTask)413 Timer (java.util.Timer)298 IOException (java.io.IOException)31 Date (java.util.Date)23 Test (org.junit.Test)21 ArrayList (java.util.ArrayList)17 File (java.io.File)16 Intent (android.content.Intent)8 Bundle (android.os.Bundle)8 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)8 InputMethodManager (android.view.inputmethod.InputMethodManager)7 HashMap (java.util.HashMap)7 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)7 Location (android.location.Location)6 LocationListener (android.location.LocationListener)6 View (android.view.View)6 ImageView (android.widget.ImageView)6 TextView (android.widget.TextView)6 URI (java.net.URI)5 CountDownLatch (java.util.concurrent.CountDownLatch)5