and here instead of lines 79-87:

if (changedFileResources != null)
	this.changedFileResources = Collections
			.unmodifiableCollection(new HashSet<IFile>(changedFileResources));
else
	this.changedFileResources = null;

Set<String> added2, changed2, removed2, missing2, modified2, untracked2, conflicts2;
if (baseDiff != null) {
	added2 = new HashSet<String>(baseDiff.getAdded());
	changed2 = new HashSet<String>(baseDiff.getChanged());
	removed2 = new HashSet<String>(baseDiff.getRemoved());
	missing2 = new HashSet<String>(baseDiff.getMissing());
	modified2 = new HashSet<String>(baseDiff.getModified());
	untracked2 = new HashSet<String>(baseDiff.getUntracked());
	conflicts2 = new HashSet<String>(baseDiff.getConflicting());
} else {
	added2 = new HashSet<String>();
	changed2 = new HashSet<String>();
	removed2 = new HashSet<String>();
	missing2 = new HashSet<String>();
	modified2 = new HashSet<String>();
	untracked2 = new HashSet<String>();
	conflicts2 = new HashSet<String>();
}