Apply "instanceof pattern matching" in spring-tx

Closes gh-30019
This commit is contained in:
diguage 2023-02-23 22:25:32 +08:00 committed by Sam Brannen
parent 00c2c1d2a1
commit 375114defa
8 changed files with 38 additions and 38 deletions

View File

@ -77,11 +77,11 @@ public abstract class AbstractMessageEndpointFactory implements MessageEndpointF
* @see #setTransactionTimeout * @see #setTransactionTimeout
*/ */
public void setTransactionManager(Object transactionManager) { public void setTransactionManager(Object transactionManager) {
if (transactionManager instanceof TransactionFactory) { if (transactionManager instanceof TransactionFactory factory) {
this.transactionFactory = (TransactionFactory) transactionManager; this.transactionFactory = factory;
} }
else if (transactionManager instanceof TransactionManager) { else if (transactionManager instanceof TransactionManager manager) {
this.transactionFactory = new SimpleTransactionFactory((TransactionManager) transactionManager); this.transactionFactory = new SimpleTransactionFactory(manager);
} }
else { else {
throw new IllegalArgumentException("Transaction manager [" + transactionManager + throw new IllegalArgumentException("Transaction manager [" + transactionManager +

View File

@ -429,8 +429,8 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
catch (Throwable ex) { catch (Throwable ex) {
if (txAttr.rollbackOn(ex)) { if (txAttr.rollbackOn(ex)) {
// A RuntimeException: will lead to a rollback. // A RuntimeException: will lead to a rollback.
if (ex instanceof RuntimeException) { if (ex instanceof RuntimeException rex) {
throw (RuntimeException) ex; throw rex;
} }
else { else {
throw new ThrowableHolderException(ex); throw new ThrowableHolderException(ex);
@ -538,8 +538,8 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
String methodIdentification = methodIdentification(method, targetClass); String methodIdentification = methodIdentification(method, targetClass);
if (methodIdentification == null) { if (methodIdentification == null) {
if (txAttr instanceof DefaultTransactionAttribute) { if (txAttr instanceof DefaultTransactionAttribute dta) {
methodIdentification = ((DefaultTransactionAttribute) txAttr).getDescriptor(); methodIdentification = dta.getDescriptor();
} }
if (methodIdentification == null) { if (methodIdentification == null) {
methodIdentification = ClassUtils.getQualifiedMethodName(method, targetClass); methodIdentification = ClassUtils.getQualifiedMethodName(method, targetClass);
@ -1047,8 +1047,8 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
if (txInfo.transactionAttribute != null && txInfo.transactionAttribute.rollbackOn(ex)) { if (txInfo.transactionAttribute != null && txInfo.transactionAttribute.rollbackOn(ex)) {
return txInfo.getTransactionManager().rollback(txInfo.getReactiveTransaction()).onErrorMap(ex2 -> { return txInfo.getTransactionManager().rollback(txInfo.getReactiveTransaction()).onErrorMap(ex2 -> {
logger.error("Application exception overridden by rollback exception", ex); logger.error("Application exception overridden by rollback exception", ex);
if (ex2 instanceof TransactionSystemException) { if (ex2 instanceof TransactionSystemException systemException) {
((TransactionSystemException) ex2).initApplicationException(ex); systemException.initApplicationException(ex);
} }
return ex2; return ex2;
} }
@ -1059,8 +1059,8 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
// Will still roll back if TransactionStatus.isRollbackOnly() is true. // Will still roll back if TransactionStatus.isRollbackOnly() is true.
return txInfo.getTransactionManager().commit(txInfo.getReactiveTransaction()).onErrorMap(ex2 -> { return txInfo.getTransactionManager().commit(txInfo.getReactiveTransaction()).onErrorMap(ex2 -> {
logger.error("Application exception overridden by commit exception", ex); logger.error("Application exception overridden by commit exception", ex);
if (ex2 instanceof TransactionSystemException) { if (ex2 instanceof TransactionSystemException systemException) {
((TransactionSystemException) ex2).initApplicationException(ex); systemException.initApplicationException(ex);
} }
return ex2; return ex2;
} }

View File

@ -547,8 +547,8 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
* @return a corresponding UserTransaction handle * @return a corresponding UserTransaction handle
*/ */
protected UserTransaction buildUserTransaction(TransactionManager transactionManager) { protected UserTransaction buildUserTransaction(TransactionManager transactionManager) {
if (transactionManager instanceof UserTransaction) { if (transactionManager instanceof UserTransaction userTransaction) {
return (UserTransaction) transactionManager; return userTransaction;
} }
else { else {
return new UserTransactionAdapter(transactionManager); return new UserTransactionAdapter(transactionManager);
@ -702,11 +702,11 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
*/ */
@Nullable @Nullable
protected TransactionManager findTransactionManager(@Nullable UserTransaction ut) { protected TransactionManager findTransactionManager(@Nullable UserTransaction ut) {
if (ut instanceof TransactionManager) { if (ut instanceof TransactionManager transactionManager) {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("JTA UserTransaction object [" + ut + "] implements TransactionManager"); logger.debug("JTA UserTransaction object [" + ut + "] implements TransactionManager");
} }
return (TransactionManager) ut; return transactionManager;
} }
// Check fallback JNDI locations. // Check fallback JNDI locations.
@ -762,11 +762,11 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
} }
} }
// Check whether the UserTransaction or TransactionManager implements it... // Check whether the UserTransaction or TransactionManager implements it...
if (ut instanceof TransactionSynchronizationRegistry) { if (ut instanceof TransactionSynchronizationRegistry tsr) {
return (TransactionSynchronizationRegistry) ut; return tsr;
} }
if (tm instanceof TransactionSynchronizationRegistry) { if (tm instanceof TransactionSynchronizationRegistry tsr) {
return (TransactionSynchronizationRegistry) tm; return tsr;
} }
// OK, so no JTA 1.1 TransactionSynchronizationRegistry is available... // OK, so no JTA 1.1 TransactionSynchronizationRegistry is available...
return null; return null;

View File

@ -55,8 +55,8 @@ abstract class TransactionSynchronizationUtils {
Assert.notNull(resource, "Resource must not be null"); Assert.notNull(resource, "Resource must not be null");
Object resourceRef = resource; Object resourceRef = resource;
// unwrap infrastructure proxy // unwrap infrastructure proxy
if (resourceRef instanceof InfrastructureProxy) { if (resourceRef instanceof InfrastructureProxy infraProxy) {
resourceRef = ((InfrastructureProxy) resourceRef).getWrappedObject(); resourceRef = infraProxy.getWrappedObject();
} }
if (aopAvailable) { if (aopAvailable) {
// now unwrap scoped proxy // now unwrap scoped proxy
@ -125,8 +125,8 @@ abstract class TransactionSynchronizationUtils {
private static class ScopedProxyUnwrapper { private static class ScopedProxyUnwrapper {
public static Object unwrapIfNecessary(Object resource) { public static Object unwrapIfNecessary(Object resource) {
if (resource instanceof ScopedObject) { if (resource instanceof ScopedObject so) {
return ((ScopedObject) resource).getTargetObject(); return so.getTargetObject();
} }
else { else {
return resource; return resource;

View File

@ -118,8 +118,8 @@ final class TransactionalOperatorImpl implements TransactionalOperator {
logger.debug("Initiating transaction rollback on application exception", ex); logger.debug("Initiating transaction rollback on application exception", ex);
return this.transactionManager.rollback(status).onErrorMap(ex2 -> { return this.transactionManager.rollback(status).onErrorMap(ex2 -> {
logger.error("Application exception overridden by rollback exception", ex); logger.error("Application exception overridden by rollback exception", ex);
if (ex2 instanceof TransactionSystemException) { if (ex2 instanceof TransactionSystemException tse) {
((TransactionSystemException) ex2).initApplicationException(ex); tse.initApplicationException(ex);
} }
return ex2; return ex2;
} }
@ -129,8 +129,8 @@ final class TransactionalOperatorImpl implements TransactionalOperator {
@Override @Override
public boolean equals(@Nullable Object other) { public boolean equals(@Nullable Object other) {
return (this == other || (super.equals(other) && (!(other instanceof TransactionalOperatorImpl) || return (this == other || (super.equals(other) && (!(other instanceof TransactionalOperatorImpl toi) ||
getTransactionManager() == ((TransactionalOperatorImpl) other).getTransactionManager()))); getTransactionManager() == toi.getTransactionManager())));
} }
@Override @Override

View File

@ -174,11 +174,11 @@ public class DefaultTransactionStatus extends AbstractTransactionStatus {
@Override @Override
protected SavepointManager getSavepointManager() { protected SavepointManager getSavepointManager() {
Object transaction = this.transaction; Object transaction = this.transaction;
if (!(transaction instanceof SavepointManager)) { if (!(transaction instanceof SavepointManager manager)) {
throw new NestedTransactionNotSupportedException( throw new NestedTransactionNotSupportedException(
"Transaction object [" + this.transaction + "] does not support savepoints"); "Transaction object [" + this.transaction + "] does not support savepoints");
} }
return (SavepointManager) transaction; return manager;
} }
/** /**
@ -198,8 +198,8 @@ public class DefaultTransactionStatus extends AbstractTransactionStatus {
*/ */
@Override @Override
public void flush() { public void flush() {
if (this.transaction instanceof SmartTransactionObject) { if (this.transaction instanceof SmartTransactionObject transactionObject) {
((SmartTransactionObject) this.transaction).flush(); transactionObject.flush();
} }
} }

View File

@ -64,8 +64,8 @@ public abstract class TransactionSynchronizationUtils {
Assert.notNull(resource, "Resource must not be null"); Assert.notNull(resource, "Resource must not be null");
Object resourceRef = resource; Object resourceRef = resource;
// unwrap infrastructure proxy // unwrap infrastructure proxy
if (resourceRef instanceof InfrastructureProxy) { if (resourceRef instanceof InfrastructureProxy infrasProxy) {
resourceRef = ((InfrastructureProxy) resourceRef).getWrappedObject(); resourceRef = infrasProxy.getWrappedObject();
} }
if (aopAvailable) { if (aopAvailable) {
// now unwrap scoped proxy // now unwrap scoped proxy
@ -185,8 +185,8 @@ public abstract class TransactionSynchronizationUtils {
private static class ScopedProxyUnwrapper { private static class ScopedProxyUnwrapper {
public static Object unwrapIfNecessary(Object resource) { public static Object unwrapIfNecessary(Object resource) {
if (resource instanceof ScopedObject) { if (resource instanceof ScopedObject scopedObject) {
return ((ScopedObject) resource).getTargetObject(); return scopedObject.getTargetObject();
} }
else { else {
return resource; return resource;

View File

@ -181,8 +181,8 @@ public class TransactionTemplate extends DefaultTransactionDefinition
@Override @Override
public boolean equals(@Nullable Object other) { public boolean equals(@Nullable Object other) {
return (this == other || (super.equals(other) && (!(other instanceof TransactionTemplate) || return (this == other || (super.equals(other) && (!(other instanceof TransactionTemplate template) ||
getTransactionManager() == ((TransactionTemplate) other).getTransactionManager()))); getTransactionManager() == template.getTransactionManager())));
} }
} }