For those seeing NullPointerExceptions in the Debugger with the Chronon 3 udpate, this should fix that.
Also since due to ‘per thread time’, we run each thread truly independently, if you view the value of a variable that was created in a different thread, chronon will try to guess its value. >95% of the time the value will be correct, but even then the debugger marks such values as <<fuzzy>>.
It has barely been a week since we released update 1.1.1 and we are back again with another update full of more goodies.
Support for Reflection in the recorder
The Chronon recorder will now recognize updates to the fields of your object done using the Java Reflection APIs.
This is especially useful if you use ORM frameworks like Hibernate which use reflection to set the fields of the Java objects. No longer will you see ‘null’ in those fields, but the actual values.
‘Copy Value’ for variables in the Debugger
If the value of a variable has a string that is too large to fit in the eclipse view, you can right-click and select ‘Copy Value’ to copy a fully formatted version of the string to clipboard.
This functionality is supported for all views that show the value of a variable, ie theLocals view, Variable History view and Current Line view.
And of course, lots more bugfixes in the recorder and debugger. If you were running into deadlocks while recording before, you shouldnt anymore.
So go ahead and update your Chronon installation!
This update brings a ton of improvements. I will list some of the major ones here:
Support for applications with huge number of threads
Until now, you could create only 1024 different threads in your application, after which Chronon would throw an exception.
With this release, if your application is going to create more threads, you can specify that in the recorder config file, eg
maxrecordedthreads = 3000
Of course, you can set this option from within Eclipse too.
Note that the number of threads here does not mean ‘the number of threads active at a certain point in time’. It means ‘the total number of threads created during the lifetime of your application’. So if your application frequently creates and destroys new threads instead of using a thread pool, this might be useful to you.
Much faster stack traces in the Stack view
The stack view can now create stack traces much faster and wont crash if the stack trace at a point is extremely deep.
Recorder no longer deadlocks during shutdown
This was a problem for some people who had redirected System.out to a custom Logging class, which they were also recording. This would cause a deadlock in the recorder. No more. Now we print out shutting down messages in a different thread. Since during shutdown, Chronon locks up the rest of the threads while it is persisting data, it is possible if you have System.out redirected to a custom Logging class, for the printer thread to be locked while the persistance is taking place, but that only means the messages to the console will appear a bit delayed. The recorder will still complete and in the same amount of time as before, but it wont deadlock.
We recommend everyone to update their Chronon installation.
We have updated Chronon with some bugfixes related to recording JEE servers from within Eclipse.
If you were seeing an exception when trying to Record a server, you shouldnt see it anymore.
Everyone please update using the update instructions here.