// Path: fabric.lib/src/fabric/registry/exception/PersistenceException.java
// public class PersistenceException extends Exception {
// 
// 	/** Copyright notice. */
// 	public static final String copyrightNotice = "(C) Copyright IBM Corp. 2009";
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private String errorMessage = null;
// 	private int errorCode = 0;
// 	private String sqlState = null;
// 
// 	/**
// 	 * 
// 	 */
// 	public PersistenceException() {
// 	}
// 
// 	/**
// 	 * 
// 	 * @param msg
// 	 */
// 	public PersistenceException(String msg) {
// 		super(msg);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param detailMessage
// 	 * @param throwable
// 	 */
// 	public PersistenceException(String detailMessage, Throwable throwable) {
// 		super(detailMessage, throwable);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param throwable
// 	 */
// 	public PersistenceException(Throwable throwable) {
// 		super(throwable);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param message
// 	 * @param errorMessage
// 	 * @param errorCode
// 	 * @param sqlState
// 	 */
// 	public PersistenceException(String message, String errorMessage, int errorCode, String sqlState) {
// 		super(message);
// 
// 		this.errorMessage = errorMessage;
// 		this.errorCode = errorCode;
// 		this.sqlState = sqlState;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public int getErrorCode() {
// 		return errorCode;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param errorCode
// 	 */
// 	public void setErrorCode(int errorCode) {
// 		this.errorCode = errorCode;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public String getErrorMessage() {
// 		return errorMessage;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param errorMessage
// 	 */
// 	public void setErrorMessage(String errorMessage) {
// 		this.errorMessage = errorMessage;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public String getSqlState() {
// 		return sqlState;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param sqlState
// 	 */
// 	public void setSqlState(String sqlState) {
// 		this.sqlState = sqlState;
// 	}
// }


import fabric.registry.FabricRegistry;
import fabric.registry.QueryScope;
import fabric.registry.RegistryObject;
import fabric.registry.TaskService;
import fabric.registry.TaskServiceFactory;
import fabric.registry.exception.DuplicateKeyException;
import fabric.registry.exception.IncompleteObjectException;
import fabric.registry.exception.MalformedPredicateException;
import fabric.registry.exception.PersistenceException;
import fabric.registry.exception.RegistryQueryException;
import fabric.registry.persistence.IPersistenceResultRow;
import fabric.registry.persistence.PersistenceManager;

        TaskService[] taskServices = null;
        String query = null;
        try {
            /* check the predicate for basic things like double-quotes etc. */
            queryPredicates = parsePredicate(queryPredicates);
            /* build the full query */
            query = format(PREDICATE_QUERY, queryPredicates);
            /* execute */
            taskServices = runTaskServiceQuery(query);
        } catch (PersistenceException e) {
            e.printStackTrace();
            /* check the SQLState to identify the specific error */
            if (e.getSqlState().startsWith("42X") || e.getSqlState().startsWith("42Y")
                    || e.getSqlState().startsWith("42Z")) {
                /* Apache Derby SQL compilation error - problem with the predicate */
                throw new MalformedPredicateException("Invalid predicate for query: " + queryPredicates);
            } else {
                throw new RegistryQueryException("Error occurred running query: " + query);
            }
        }
        return taskServices;
    }

    /**
     * @see fabric.registry.TaskServiceFactory#getTaskServicesByTask(java.lang.String)
     */
    @Override
    public TaskService[] getTaskServicesByTask(String taskId) {

// Path: fabric.lib/src/fabric/registry/exception/PersistenceException.java
// public class PersistenceException extends Exception {
// 
// 	/** Copyright notice. */
// 	public static final String copyrightNotice = "(C) Copyright IBM Corp. 2009";
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private String errorMessage = null;
// 	private int errorCode = 0;
// 	private String sqlState = null;
// 
// 	/**
// 	 * 
// 	 */
// 	public PersistenceException() {
// 	}
// 
// 	/**
// 	 * 
// 	 * @param msg
// 	 */
// 	public PersistenceException(String msg) {
// 		super(msg);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param detailMessage
// 	 * @param throwable
// 	 */
// 	public PersistenceException(String detailMessage, Throwable throwable) {
// 		super(detailMessage, throwable);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param throwable
// 	 */
// 	public PersistenceException(Throwable throwable) {
// 		super(throwable);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param message
// 	 * @param errorMessage
// 	 * @param errorCode
// 	 * @param sqlState
// 	 */
// 	public PersistenceException(String message, String errorMessage, int errorCode, String sqlState) {
// 		super(message);
// 
// 		this.errorMessage = errorMessage;
// 		this.errorCode = errorCode;
// 		this.sqlState = sqlState;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public int getErrorCode() {
// 		return errorCode;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param errorCode
// 	 */
// 	public void setErrorCode(int errorCode) {
// 		this.errorCode = errorCode;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public String getErrorMessage() {
// 		return errorMessage;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param errorMessage
// 	 */
// 	public void setErrorMessage(String errorMessage) {
// 		this.errorMessage = errorMessage;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public String getSqlState() {
// 		return sqlState;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param sqlState
// 	 */
// 	public void setSqlState(String sqlState) {
// 		this.sqlState = sqlState;
// 	}
// }


// Path: fabric.lib/src/fabric/registry/impl/TaskServiceFactoryImpl.java
import fabric.registry.FabricRegistry;
import fabric.registry.QueryScope;
import fabric.registry.RegistryObject;
import fabric.registry.TaskService;
import fabric.registry.TaskServiceFactory;
import fabric.registry.exception.DuplicateKeyException;
import fabric.registry.exception.IncompleteObjectException;
import fabric.registry.exception.MalformedPredicateException;
import fabric.registry.exception.PersistenceException;
import fabric.registry.exception.RegistryQueryException;
import fabric.registry.persistence.IPersistenceResultRow;
import fabric.registry.persistence.PersistenceManager;


        TaskService[] taskServices = null;
        String query = null;
        try {
            /* check the predicate for basic things like double-quotes etc. */
            queryPredicates = parsePredicate(queryPredicates);
            /* build the full query */
            query = format(PREDICATE_QUERY, queryPredicates);
            /* execute */
            taskServices = runTaskServiceQuery(query);
        } catch (PersistenceException e) {
            e.printStackTrace();
            /* check the SQLState to identify the specific error */
            if (e.getSqlState().startsWith("42X") || e.getSqlState().startsWith("42Y")
                    || e.getSqlState().startsWith("42Z")) {
                /* Apache Derby SQL compilation error - problem with the predicate */
                throw new MalformedPredicateException("Invalid predicate for query: " + queryPredicates);
            } else {
                throw new RegistryQueryException("Error occurred running query: " + query);
            }
        }
        return taskServices;
    }

    /**
     * @see fabric.registry.TaskServiceFactory#getTaskServicesByTask(java.lang.String)
     */
    @Override
    public TaskService[] getTaskServicesByTask(String taskId) {

        TaskService[] taskServices = null;