1b0bd03b7f
* java/awt/EventQueue.java (invokeAndWait): Call postEvent() within synchronized block. * java/awt/event/InvocationEvent (dispatch): Synchronize on notifier before calling notifyAll(). From-SVN: r35042
97 lines
2.0 KiB
Java
97 lines
2.0 KiB
Java
/* Copyright (C) 2000 Free Software Foundation
|
|
|
|
This file is part of libjava.
|
|
|
|
This software is copyrighted work licensed under the terms of the
|
|
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
|
|
details. */
|
|
|
|
package java.awt.event;
|
|
import java.awt.*;
|
|
|
|
/**
|
|
* @author Tom Tromey <tromey@cygnus.com>
|
|
* @date April 8, 2000
|
|
*/
|
|
|
|
/* Status: Believed to be complete and correct. */
|
|
|
|
public class InvocationEvent extends AWTEvent implements ActiveEvent
|
|
{
|
|
public static final int INVOCATION_DEFAULT = 1200;
|
|
public static final int INVOCATION_FIRST = 1200;
|
|
public static final int INVOCATION_LAST = 1200;
|
|
|
|
protected InvocationEvent (Object source, int id, Runnable runnable,
|
|
Object notifier, boolean catchExceptions)
|
|
{
|
|
super (source, id);
|
|
this.runnable = runnable;
|
|
this.notifier = notifier;
|
|
this.catchExceptions = catchExceptions;
|
|
}
|
|
|
|
public InvocationEvent (Object source, Runnable runnable)
|
|
{
|
|
super (source, INVOCATION_DEFAULT);
|
|
this.runnable = runnable;
|
|
}
|
|
|
|
public InvocationEvent(Object source, Runnable runnable, Object notifier,
|
|
boolean catchExceptions)
|
|
{
|
|
super (source, INVOCATION_DEFAULT);
|
|
this.runnable = runnable;
|
|
this.notifier = notifier;
|
|
this.catchExceptions = catchExceptions;
|
|
}
|
|
|
|
public void dispatch ()
|
|
{
|
|
Exception e = null;
|
|
if (catchExceptions)
|
|
try
|
|
{
|
|
runnable.run ();
|
|
}
|
|
catch (Exception x)
|
|
{
|
|
exception = x;
|
|
}
|
|
else
|
|
runnable.run ();
|
|
|
|
if (notifier != null)
|
|
{
|
|
synchronized (notifier)
|
|
{
|
|
notifier.notifyAll ();
|
|
}
|
|
}
|
|
}
|
|
|
|
public Exception getException ()
|
|
{
|
|
return exception;
|
|
}
|
|
|
|
public String paramString ()
|
|
{
|
|
String r;
|
|
if (id == INVOCATION_DEFAULT)
|
|
r = "INVOCATION_DEFAULT";
|
|
else
|
|
r = "unknown type";
|
|
|
|
r += ",runnable=" + runnable + ",notifier=" + notifier +
|
|
",catchExceptions=" + catchExceptions;
|
|
return r;
|
|
}
|
|
|
|
protected boolean catchExceptions;
|
|
protected Object notifier;
|
|
protected Runnable runnable;
|
|
|
|
private Exception exception;
|
|
}
|