All Downloads are FREE. Search and download functionalities are using the official Maven repository.

hudson.triggers.SafeTimerTask Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 *
 * Copyright (c) 2004-2012 Oracle Corporation.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *
 *   Kohsuke Kawaguchi, Winston Prakash
 *
 *******************************************************************************/ 

package hudson.triggers;

import java.util.Timer;
import java.util.TimerTask;
import java.util.logging.Logger;
import java.util.logging.Level;
import org.eclipse.hudson.security.HudsonSecurityManager;

/**
 * {@link Timer} wrapper so that a fatal error in {@link TimerTask} won't
 * terminate the timer.
 *
 * 

{@link Trigger#timer} is a shared timer instance that can be used inside * Hudson to schedule a recurring work. * * @author Kohsuke Kawaguchi * @since 1.124 * @see Trigger#timer */ public abstract class SafeTimerTask extends TimerTask { public final void run() { // background activity gets system credential, // just like executors get it. HudsonSecurityManager.grantFullControl(); try { doRun(); } catch (Throwable t) { LOGGER.log(Level.SEVERE, "Timer task " + this + " failed", t); } finally { HudsonSecurityManager.resetFullControl(); } } protected abstract void doRun() throws Exception; private static final Logger LOGGER = Logger.getLogger(SafeTimerTask.class.getName()); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy