Figure 6: Notifying subscribers of an event

protected void notifyFired() {
    TimerEvent evt = new TimerEvent(this, theNumber, theCount);
    Vector v;
    synchronized(this) {
        v = (Vector) listeners.clone();
    }
    int cnt = v.size();
    for (int k=0; k<cnt; k++) {
        TimerListener client = (TimerListener) v.elementAt(k);
        client.timerFired(evt);
    }
}