The problem is XXX requires timezone format with a colon, i.e., 2014-06-09T00:01+02:00
Using Z instead of XXX or using XX (2 X's) should accept format without colon
Be careful with using one X as some have posted because this will disregard the last two digits of the timezone (e.g., 2014-06-09T00:01+02). This could be problematic if working with time zones in some countries like India where the time zone offset is +05:30. Note the following code..
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mmXXX").format(new SimpleDateFormat("yyyy-MM-dd'T'HH:mmX").parse("2014-06-09T00:01+05:30")));
Will print 2014-06-08T14:01-05:00. The :30 in the timezone was lost when using one X. Documentation