blob: 2aebd06b4a695e550bc7e0b73535583fd20dc220 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.internal.jpa.transaction;
import java.io.StringWriter;
import java.io.PrintWriter;
import java.sql.SQLException;
import jakarta.transaction.SystemException;
import jakarta.transaction.RollbackException;
class ExceptionFactory {
public ExceptionFactory() {
}
protected String stackTraceString(Exception ex) {
StringWriter swriter = new StringWriter();
PrintWriter writer = new PrintWriter(swriter, true);
ex.printStackTrace(writer);
writer.close();
return swriter.toString();
}
public SystemException newSystemException(String str) {
return new SystemException(str);
}
public SystemException newSystemException(Exception ex) {
return new SystemException("Real nested exception: " + stackTraceString(ex));
}
public RollbackException rollbackException(SQLException sqlEx) {
return new RollbackException(sqlEx.toString());
}
public SystemException txMarkedForRollbackException() {
return newSystemException("Transaction marked for rollback");
}
public SystemException txActiveException() {
return newSystemException("Transaction is already active");
}
public SystemException txNotActiveException() {
return newSystemException("No transaction is active");
}
public SystemException invalidStateException(int state) {
return newSystemException("Cannot complete operation, invalid state: " + state);
}
}