/******************************************************************************* * Copyright (c) 2000, 2011 IBM Corporation and others. * 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: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jdi.hcr; import com.sun.jdi.ObjectCollectedException; import com.sun.jdi.ThreadReference; import com.sun.jdi.request.DuplicateRequestException; import com.sun.jdi.request.EventRequest; /** * Hot code replacement extension to * <code>com.sun.jdi.request.EventRequestManager</code>. */ public interface EventRequestManager extends com.sun.jdi.Mirror { /** * Creates a new disabled {@link ReenterStepRequest}. The new event request * is added to the list managed by this EventRequestManager. Use * {@link EventRequest#enable()} to activate this event request. * <p> * The returned request will control stepping only in the specified * <code>thread</code>; all other threads will be unaffected. * <p> * Only one pending reenter step request is allowed per thread. * <p> * Note that enabling such a request can throw an * <code>OperationRefusedException</code> if the VM refused to perform this * operation. This in recognition that the VM may be in an awkward state and * unable to comply. For example, execution is suspended in a native method * and the arguments would be unavailable on return . * * @param thread * the thread in which to step * @return the created {@link ReenterStepRequest} * @throws DuplicateRequestException * if there is already a pending step request for the specified * thread. * @throws ObjectCollectedException * if the thread object has been garbage collected. */ public ReenterStepRequest createReenterStepRequest(ThreadReference thread); }