code: protected Diff processRevision(final Revision revision)
  		throws UnsupportedEncodingException
  	{
  
  		// ----------------------------------------------------//
  		// ** HERE IS THE POINT TO INCLUDE ADDITIONAL FILTERS //
  		// TO REMOVE FAULTY REVISIONS FROM FURTHER PROCESSING //
  		// ----------------------------------------------------//
  
  		try{
  			if(revision.getRevisionText()==null){
  				return null;
  			}
  		}catch(NullPointerException e){
  			return null;
  		}
  
  		revTemp = revision.getRevisionText().toCharArray();
  
  		if (MODE_SURROGATES == SurrogateModes.DISCARD_REVISION) {
  
  			// Ignore Revision with surrogate characters
  			if (Surrogates.scan(revTemp)) {
  				return null;
  			}
  		}
  
  		Diff diff;
  
  		// Full revision
  		if (revisionCounter % COUNTER_FULL_REVISION == 0) {
  
  			diff = generateFullRevision(revision);
  
  			// Diffed revision
  		}
  		else {
  
  			diff = generateDiff(revPrevious, revTemp);
  
  			// if the current revision is identical to the last valid revision
  			if (diff.size() == 0) {
  				return null;
  			}
  		}
  
  		return diff;
  	}
docs: Calculates the diff for the given revision.
  
  @param revision
  Reference to a revision
  @return Diff
  
  @throws UnsupportedEncodingException
  if the character encoding is unsupported