public static void writeTimers(Collection<TimerJobInstance> timers, MarshallerWriteContext outCtx) throws IOException { List<TimerJobInstance> sortedTimers = new ArrayList<TimerJobInstance>(timers); Collections.sort( sortedTimers, new Comparator<TimerJobInstance>() { public int compare(TimerJobInstance o1, TimerJobInstance o2) { return (int) (o1.getJobHandle().getId() - o2.getJobHandle().getId()); } }); for (TimerJobInstance timer : sortedTimers) { outCtx.writeShort(PersisterEnums.DEFAULT_TIMER); JobContext jctx = ((SelfRemovalJobContext) timer.getJobContext()).getJobContext(); TimersOutputMarshaller writer = outCtx.writersByClass.get(jctx.getClass()); writer.write(jctx, outCtx); } outCtx.writeShort(PersisterEnums.END); }