@Override public void scheduled(IJobChangeEvent event) { if (fixedTheJob) return; Job job = event.getJob(); if (job == null) return; Class<? extends Job> jobClazz = job.getClass(); if (!job.isSystem() && jobClazz .getName() .equals("org.eclipse.egit.core.internal.indexdiff.IndexDiffCacheEntry$5")) { try { Field field = InternalJob.class.getDeclaredField("flags"); field.setAccessible(true); field.set( job, ((Integer) field.get(job)).intValue() | 0x0100 /*InternalJob.M_SYSTEM*/); if (log.isInfoEnabled()) { log.info("Made job '" + job + "' a system job."); } fixedTheJob = true; } catch (Exception e) { log.error(e.getMessage(), e); } } }