Browse Source

Polishing

pull/26273/head
Juergen Hoeller 5 years ago
parent
commit
240cfb1224
  1. 5
      spring-aspects/src/main/java/org/springframework/transaction/aspectj/AbstractTransactionAspect.aj
  2. 6
      spring-core/kotlin-coroutines/src/main/kotlin/org/springframework/core/CoroutinesUtils.kt
  3. 5
      spring-expression/src/main/java/org/springframework/expression/spel/ast/AstUtils.java

5
spring-aspects/src/main/java/org/springframework/transaction/aspectj/AbstractTransactionAspect.aj

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2017 the original author or authors. * Copyright 2002-2020 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -59,7 +59,8 @@ public abstract aspect AbstractTransactionAspect extends TransactionAspectSuppor
@Override @Override
public void destroy() { public void destroy() {
clearTransactionManagerCache(); // An aspect is basically a singleton // An aspect is basically a singleton -> cleanup on destruction
clearTransactionManagerCache();
} }
@SuppressAjWarnings("adviceDidNotMatch") @SuppressAjWarnings("adviceDidNotMatch")

6
spring-core/kotlin-coroutines/src/main/kotlin/org/springframework/core/CoroutinesUtils.kt

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2019 the original author or authors. * Copyright 2002-2020 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -66,10 +66,10 @@ internal fun isSuspendingFunction(method: Method) = method.kotlinFunction!!.isSu
* @since 5.2 * @since 5.2
*/ */
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
internal fun invokeSuspendingFunction(method: Method, bean: Any, vararg args: Any?): Publisher<*> { internal fun invokeSuspendingFunction(method: Method, target: Any, vararg args: Any?): Publisher<*> {
val function = method.kotlinFunction!! val function = method.kotlinFunction!!
val mono = mono(Dispatchers.Unconfined) { val mono = mono(Dispatchers.Unconfined) {
function.callSuspend(bean, *args.sliceArray(0..(args.size-2))).let { if (it == Unit) null else it } function.callSuspend(target, *args.sliceArray(0..(args.size-2))).let { if (it == Unit) null else it }
}.onErrorMap(InvocationTargetException::class.java) { it.targetException } }.onErrorMap(InvocationTargetException::class.java) { it.targetException }
return if (function.returnType.classifier == Flow::class) { return if (function.returnType.classifier == Flow::class) {
mono.flatMapMany { (it as Flow<Any>).asFlux() } mono.flatMapMany { (it as Flow<Any>).asFlux() }

5
spring-expression/src/main/java/org/springframework/expression/spel/ast/AstUtils.java

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2020 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -54,10 +54,9 @@ public abstract class AstUtils {
} }
else { else {
if (targetType != null) { if (targetType != null) {
int pos = 0;
for (Class<?> clazz : targets) { for (Class<?> clazz : targets) {
if (clazz == targetType) { // put exact matches on the front to be tried first? if (clazz == targetType) { // put exact matches on the front to be tried first?
specificAccessors.add(pos++, resolver); specificAccessors.add(resolver);
} }
else if (clazz.isAssignableFrom(targetType)) { // put supertype matches at the end of the else if (clazz.isAssignableFrom(targetType)) { // put supertype matches at the end of the
// specificAccessor list // specificAccessor list

Loading…
Cancel
Save