Things I Would Prefer Not Discovering At 1:30 AM

I just had my uISV nightmare happen:

If you combine the following two conditions:

  • You have a free space
  • You have exactly as many words as are needed for the card (i.e. 24 for a 5×5 with 1 free space)

and you try to print, the printing thread crashes silently, due to an ArrayIndexOutOfBoundsException.  This shows up to the user as the program simply ignoring the print command.

This is about the worst thing that could happen to me at 1:30 in the morning, short of a crash bug.  Without the capability to print, the application is useless.  Printing is always the thing I spend the most time testing, but I typically test by loading up Wizards and when picking randomly.  I rarely get one that has exactly twenty-four words in it.  

Unfortunately, that behavior (filling the card exactly) is really common in actual use.  Blech.  Memo to self: need to start using JUnit before I touch anything in the bowels of the printing code ever again.

I tried fruitlessly to fix it, but there is little that can be done at 3 AM.  Thank God for Capistrano.  The whole shebang of my website, including the executables, can be rolled back to a known good version at the touch of a button.  And, while it is annoying as all heck, I had to push the button — the 2.5 executable is just an accident waiting to happen for anyone who downloads it, so I need to contain that and get to work on fixing it.

Memo to self: get ready to FedEx replacements to all four people who got CDs with 2.5 on it, and write passle of apologies to anyone who downloaded the trial in the last 24 hours.

Advertisements
Explore posts in the same categories: Uncategorized

3 Comments on “Things I Would Prefer Not Discovering At 1:30 AM”

  1. Ruben Gamez Says:

    Wow, that sucks! Sorry to hear that… good thing for easy rollback. Gives me something to keep in mind after I officially release — have a quick and easy way to rollback to the previous release.


  2. And implement an auto-updater 🙂


  3. Happened to me too, and on the first product launch! Don’t know how this particular bug slipped into it, I had tested the code and everything. At least not many people saw it, but I wonder if I lost those folks who downloaded it? Hard to say.

    I wrote some screen-scraping software recently to add an API to a site that didn’t have one. TDD seemed like a great fit for this as I can quickly identify any html changes that impact the app by re-running the tests.

    I’m curious as to how one would unit test printing – pdf creator and parse the pdf or something?


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: