code: @Override
  	public void process(final Task<Diff> task)
  		throws ConfigurationException, IOException, SQLConsumerException
  	{
  
  		long startTime = System.currentTimeMillis();
  
  		TaskTypes type = task.getTaskType();
  
  		if (type == TaskTypes.TASK_FULL || type == TaskTypes.TASK_PARTIAL_FIRST) {
  
  			this.sqlEncoder.init();
  			this.processingTimeSQL = 0;
  		}
  
  		super.process(task);
  
  		this.processingTimeSQL += System.currentTimeMillis() - startTime;
  
  		if (type == TaskTypes.TASK_FULL || type == TaskTypes.TASK_PARTIAL_LAST) {
  
  			ArticleInformation info = task.getHeader();
  			info.setEncodedSize(this.sqlEncoder.getEncodedSize());
  			info.setEncodedSQLSize(this.sqlEncoder.getEncodedSQLSize());
  			info.setExitingTime(System.currentTimeMillis());
  			info.setProcessingTimeSQL(processingTimeSQL);
  
  			String succesReport = info.toString();
  			// System.out.println(succesReport);
  			this.outputLogger.logMessage(Level.INFO, "\r\n" + succesReport);
  		}
  	}
docs: This method will process the given DiffTask and send him to the specified
  output.
  
  @param task
  DiffTask
  
  @throws ConfigurationException
  if problems occurred while initializing the components
  
  @throws IOException
  if problems occurred while writing the output (to file or
  archive)
  
  @throws SQLConsumerException
  if problems occurred while writing the output (to the sql
  producer database)