The Concutest Community Project

March 26th, 2007, 3:13 pm (Announcement)

Welcome to the Concutest Community Project. This is an effort to allow community volunteers to identify the concurrency invariants that exist in the Java API. Anyone can participate. It’s free, all you need to do is register1.

Please read the “About” and “An Example” pages to find out more about the Concutest Community Project.

The research staff of the Concutest project will periodically evaluate the posts on this blog and add new invariants to our publicly available database. All tools are (or will eventually be) open-source and free for anyone to use.

Thank you!


Footnotes:
  1. Privacy policy: We guarantee that we will never pass your email address on to anyone outside the core Concutest project, and that your password is safe and even unknown to us. [back]

Print This Print This   Email This Email This

Auto-Upgrade to WordPress 3.0

June 17th, 2010, 5:25 pm

I just did an upgrade to WordPress 3.0. Everything seems to be working, but if you notice any problems, please let me know.

Print This Print This   Email This Email This

Auto-Upgrade to WordPress 2.9

January 3rd, 2010, 12:50 am

I just performed an WordPress auto-upgrade to version 2.9.

If you notice any errors on this blog, please let me know.

Print This Print This   Email This Email This

Auto-Upgrade to WordPress 2.8.4

August 12th, 2009, 12:19 pm

And another quick upgrade to WordPress 2.8.4 due to a vulnerability in the previous version.

I think I actually experienced attempts to exploit this problem: During the last two days, I received numerous unrequested password reset notifications for the administrator accounts on my blogs.

Print This Print This   Email This Email This

Auto-Upgrade to WordPress 2.8.3

August 3rd, 2009, 10:46 pm

I just managed to do a WordPress auto-upgrade for the first time in a while. When it didn’t work this time, I searched the WordPress support forums and found out that the .htaccess file had to be fixed for users of 1&1.

This blog is now running on WordPress 2.8.3. The Markdown plugin stopped working in a very strange way, so I updated to a different Markdown plugin. Then I had to change the “next/previous page” links, but now everything seems to work.

If you notice any errors on this blog, please let me know.

Print This Print This   Email This Email This

Upgrade to WordPress 2.7

December 12th, 2008, 10:56 am

I just upgraded to WordPress 2.7. Everything seems to work as usual now. I did have to update the WP-Email, WP-Print and WP-Sticky plugins, and regenerate the permalinks.

Now, of course, the entire administration side of WordPress looks different, and I have to get used to it, but in general I have to say it looks nice. If you notice any errors on this blog, please let me know.

Print This Print This   Email This Email This

Update to WordPress 2.6.2

October 3rd, 2008, 8:55 pm

I just upgraded the blog software to WordPress 2.6.2. If you notice any problems, please let me know.

Print This Print This   Email This Email This

Update to WordPress 2.6

July 16th, 2008, 7:53 am

I just upgraded the blog software to WordPress 2.6. Fortunately, this time the upgrade was much easier than the last time, and I didn’t have to mess with the email and print features separately. Everything seems to be working fine, and I’m keeping my fingers crossed.

Print This Print This   Email This Email This

javax.swing.tree.RowMapper

March 26th, 2007, 10:48 pm

TODO: Explain

Print This Print This   Email This Email This

javax.swing.table.AbstractTableModel

March 26th, 2007, 10:48 pm

TODO: Explain

Print This Print This   Email This Email This

javax.swing.tree.AbstractLayoutCache

March 26th, 2007, 10:47 pm

TODO: Explain

Print This Print This   Email This Email This

javax.swing.tree.TreeCellRenderer

March 26th, 2007, 10:47 pm

TODO: Explain

Print This Print This   Email This Email This

javax.swing.table.TableColumn

March 26th, 2007, 10:47 pm

TODO: Explain

Print This Print This   Email This Email This

javax.swing.table.JTableHeader

March 26th, 2007, 10:45 pm

TODO: Explain

Print This Print This   Email This Email This

javax.swing.JComponent

March 26th, 2007, 10:44 pm

TODO: Explain

Print This Print This   Email This Email This

javax.swing.JTable

March 26th, 2007, 10:43 pm

TODO: Explain

Print This Print This   Email This Email This

javax.swing.SwingUtilities.invokeAndWait

March 26th, 2007, 3:22 pm

Consider the invokeAndWait method in the javax.swing.SwingUtilities class:

You give it a Runnable, and Java will execute it in the event thread, and then return to you once that is done. This normally works, but what if you call the method from the event thread? In that case, Java will put the Runnable at the end of the event queue, and then wait for it to be executed, but it never will be executed, because the current event is waiting for that Runnable to finish. Calling javax.swing.SwingUtilities.invokeAndWait from within the event thread is a recipe for an instant deadlock!

Therefore, the concurrency invariant for that method is “do not run it in the event thread”.

This invariant can be ensured by prefixing the invokeAndWait method with the Concutest ThreadChecker annotation @NotEventThread:

  1. package javax.swing;
  2.  
  3. import edu.rice.cs.cunit.threadCheck.predicates.NotEventThread;
  4. // ...
  5. public class SwingUtilities {
  6. // ...
  7. @NotEventThread
  8. public static void invokeAndWait(Runnable doRun)
  9. // ...
  10. }
  11. // ...
  12. }

Print This Print This   Email This Email This