code: @Override
  	public void process(final Task<Diff> task)
  		throws ConfigurationException, IOException, SQLConsumerException
  	{
  
  		int i = -1;
  		SQLEncoding[] queries = null;
  
  		try {
  				queries = sqlEncoder.encodeTask(task);
  
  				Statement query;
  				int size = queries.length;
  				for (i = 0; i < size; i++) {
  
  					query = connection.createStatement();
  					query.executeUpdate(queries[i].getQuery());
  					query.close();
  				}
  			// System.out.println(task.toString());
  
  		}
  		catch (SQLException e) {
  
  			String q;
  			if (queries == null || queries.length <= i || queries[i] == null) {
  				q = "<unidentified query>";
  			}
  			else {
  				q = queries[i].toString();
  			}
  
  			throw ErrorFactory.createSQLConsumerException(
  					ErrorKeys.DIFFTOOL_SQLCONSUMER_DATABASEWRITER_EXCEPTION, q,
  					e);
  
  		}
  		catch (DecodingException e) {
  
  			throw ErrorFactory.createSQLConsumerException(
  					ErrorKeys.DIFFTOOL_SQLCONSUMER_DATABASEWRITER_EXCEPTION, e);
  
  		}
  		catch (EncodingException e) {
  
  			throw ErrorFactory.createSQLConsumerException(
  					ErrorKeys.DIFFTOOL_SQLCONSUMER_FILEWRITER_EXCEPTION, e);
  		}
  	}
docs: This method will process the given DiffTask and send it 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)