Debugging Users and Invisible Characters

As a developer working for a startup with live software in the field, I often have to problem solve some interesting and out of the box bugs. One recent bug was related to changes to the Daylight Standard Time and Sun’s Java Timezone Updater, which is far from the control of my code. The Timezone Updater is a simple Java application that can be run as follows.

"c:\Program Files\Java\jre1.5.0_10\bin\java" -jar tzupdater.jar -f -bc

After documenting, testing, and validating the process of running the Timezone Updater from the command prompt we had our sales engineer upgrade the all of our clients’ JRE with the current timezone data. After some time we had reports that some clients had a problem running the above command, they where getting the following Java error.

Exception in thread "main" java.lang.NoClassDefFoundError: ûjar

It seemed that Java could not find a class named ujar (notice that funny hat over the u). Our sales engineer, with the aid of a software engineer, spent all day going back and forth with the client. As you might have guessed, updating the timezone data worked for our engineers but at the client site they consistently got the above error. After a long email thread full of instructions, screen shots, and frustration I was pull in.

I too was unable to reproduce the error until I considered the error. The only clue in the above error is the funny character u. After some time it occurred to me that the -jar had been corrupted into ujar. But what would distort the dash? Word. The instructions to run the Java Timezone Updater where written and sent in Outlook and cut and pasted from Outlook. Outlook uses Word as the default mail editor and Word has the awful tendency of distorting plain old ASCII text into special characters at will, try typing :) in Word.

This bug was not obvious to our client’s IT personnel, our front line sales engineer, and an experienced software engineer. Having code working on the developer’s machine is not a valid solution, software needs to work at the client’s site too!

One lesson that most developers don’t learn is to debug outside the debugger. As an engineer there are times you need to trouble shoot, problem solve, and debug not just your software from the comforts of your favorite IDE but the whole software stack, network, hardware, user’s environment, and even the user himself.

Every problem, issue, and bug experienced by the end user directly and indirectly with your software eventually needs to be implicitly and explicitly dealt with by your software development team. Bugs that are on the fringes of the code base are the most difficult to solve, that is why each member a software development team needs to take full ownership of the whole code base, and every known issue.

Technorati Tags: , , , , , ,

Enjoy. Share. Be Happy.
  • Twitter
  • Facebook
  • StumbleUpon
  • del.icio.us
  • Tumblr
  • Google Bookmarks
  • FriendFeed
  • Yahoo! Buzz
  • Reddit
  • Digg
  • HackerNews
  • Suggest to Techmeme via Twitter
  • LinkedIn
  • Ping.fm
  • Identi.ca
  • Mixx
  • Furl

Related posts:

  1. Daylight Standard Time Fiasco with Java
  2. Java Remote Debug
  3. Java Outlook Connector 2.0 Review
  4. Word To PDF
  5. Working Code is Just One Corner Case

This entry was posted in IDE, Java, Programming, Rant, TechKnow, Tools. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

6 Comments

  1. Atte Gartman
    Posted January 23, 2008 at 6:17 am | Permalink

    Thanks for the ujar fix!!! I looked for a solution for a day.

  2. Edu
    Posted May 30, 2008 at 3:57 am | Permalink

    THANx!!! I was getting nuts with the ûjar error!

  3. Joe
    Posted March 1, 2009 at 6:34 pm | Permalink

    Thanks a million!!! .. working in the document world,that odd hat on the U seemed out of place for an ASCII character. Important note, I went from Word, to Ultra Edit to command window with my command and still encountered the problem .. util I edited the -jar directly in the command window.

  4. Posted February 17, 2010 at 6:07 am | Permalink

    Thanks to your post, I could successfully debug this issue! Even after a couple of years that you posted this, its coming to rescue for people like us :)

  5. Joanne McGraw
    Posted April 6, 2010 at 12:10 pm | Permalink

    “Even after a couple of years that you posted this, its coming to rescue for people like us :)”

    Me, too! I also spent most of the day trying to figure this one out. Thank heavens this was documented or I’d still be at it.

    Thank you!

  6. Tommy Yuen
    Posted June 3, 2010 at 8:34 pm | Permalink

    Thanks for saving me from this!
    Another lession learned. Sometimes you need to “type” the command, not just copy and paste.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*