When using the timezone GMT-5:00 as the user.timezone property,  ISOChronology will throw a NullPointerException due the the static initializer order.  Starting up a simple test class that calls new DateTime() with:  java -Duser.timezone=GMT-5:00  the NullPointerException is thrown.  I've noticed this behavior on Windows XP when running WSAD.  WSAD sets the user.timezone property on start-up to some OS default.  On machines that have not modifed the date/time with the OS software, this exception can occur.  If I modify the timezone with the Windows OS date/time software, the OS sets the timezone to America/New_York or whatever and WSAD starts our server fine.  ISOChronology.java:  private static final INSTANCE_UTC = new ISOChronology(GregorianChronology.getInstanceUTC());  This call would call ISOChronology getInstance(DateTimeZone) before the class is completely initialized leading cCache to be null which the synchronized(cCache) throws an Exception in.  Moving the creation of INSTANCE_UTC to the static code block so that all of the variables are created seemed to do the trick.  This is a problem only with offsets in GMT.  (GMT+/-nn:nn)  .... /* Singleton instance of a UTC ISOChronology / private static final ISOChronology INSTANCE_UTC;  private  static  final  int  FAST_CACHE_SIZE  = 64 ;  /**  Fast  cache  of  zone  to  chronology  */  private  static  final  ISOChronology []  cFastCache  =   new ISOChronology [FAST_CACHE_SIZE] ;  /** Cache of zone to chronology */  private  static  final  Map  cCache  =  new  HashMap ();  static  {  // Moved here so all variables are created  INSTANCE_UTC  =  new   ISOChronology(GregorianChronology.getInstanceUTC()); cCache.put(DateTimeZone.UTC, INSTANCE_UTC); } ...  Exception in thread "main" java.lang.ExceptionInInitializerError at org.joda.time.chrono.GregorianChronology.(GregorianChronology.java:101) at org.joda.time.chrono.ISOChronology.(ISOChronology.java:92) at org.joda.time.AbstractDateTime.(AbstractDateTime.java:110) at org.joda.time.DateTime.(DateTime.java:112) at JodaTest.main(JodaTest.java:14) Caused by: java.lang.NullPointerException at org.joda.time.chrono.ISOChronology.getInstance(ISOChronology.java:136) at org.joda.time.format.DateTimeFormatterBuilder.(DateTimeFormatterBuilder.java:115) at org.joda.time.DateTimeZone.offsetFormatter(DateTimeZone.java:404) at org.joda.time.DateTimeZone.getInstance(DateTimeZone.java:256) at org.joda.time.DateTimeZone.(DateTimeZone.java:149)