Hi Sean and Mike, I just came up for air from grading :-) and implemented the fix. It now works. Thank you very much! Mark On Dec 11, 2006, at 1:49 PM, Sean Luke wrote: > Last week Mark asked about a bug where simstate.kill() would cause > chart generators to appear to delete their data. > > After poking around I think I've found the source of the problem. > It's not that the data is going away. It's that the chart > generators are receiving a spurious request to update some data at > time Infinity (which in MASON represents "the simulation is > over"). The chart generator dutifully adds that timestamp, > stretching the space to Infinity, and subtly breaking JFreeChart's > series mechanism. > > It's an easy fix: identify where your chart is being updated and > check to see if the timestamp is valid. In > ChartingPropertyInspector I've fixed it by changing > > if (lastTime < time || !updatedOnceAlready) > to > if (time >= state.schedule.EPOCH && time < > state.schedule.AFTER_SIMULATION && > (lastTime < time || !updatedOnceAlready)) // bug fix > > > If you're following the example in the howto.html file about making > a programmatic chart, you can change the line > > // now add the data > series.add(x, y, true); > to > > // now add the data > if (x >= state.schedule.EPOCH && x < > state.schedule.AFTER_SIMULATION) > series.add(x, y, true); > > There's a more subtle, minor, bug that I still have to track down: > MASON is requesting that elements update themselves at Infinity > (probably because SimState.kill() advanced the time to Infinity), > but the Console still shows the next time tick. I'll mull that over. > > Sean