In my java class, I have a Calendar property. If this calendar is initialized to null, all is fine with compass. If I have it default to a new Calendar instance, compass will not update the value of the calendar with what is contained in it's index.
//This calendar is fine
Calendar goodCalendar = null;
//This calendar is bad
Calendar badCalendar = Calendar.getInstance();
I suspect that compass is checking the values and only setting them if they are not null.