diff --git a/build.gradle b/build.gradle index 4be38c7ed8..632eecf401 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ ext { rxjava2Version = "2.2.10" slf4jVersion = "1.7.26" // spring-jcl + consistent 3rd party deps tiles3Version = "3.0.8" - tomcatVersion = "9.0.21" + tomcatVersion = "9.0.22" undertowVersion = "2.0.22.Final" gradleScriptDir = "${rootProject.projectDir}/gradle" @@ -148,7 +148,7 @@ configure(allprojects) { project -> } checkstyle { - toolVersion = "8.21" + toolVersion = "8.22" configDir = rootProject.file("src/checkstyle") } diff --git a/spring-context/src/main/java/org/springframework/context/ApplicationEventPublisher.java b/spring-context/src/main/java/org/springframework/context/ApplicationEventPublisher.java index 0ee817642d..779b73c1c4 100644 --- a/spring-context/src/main/java/org/springframework/context/ApplicationEventPublisher.java +++ b/spring-context/src/main/java/org/springframework/context/ApplicationEventPublisher.java @@ -27,6 +27,7 @@ package org.springframework.context; * @see ApplicationContext * @see ApplicationEventPublisherAware * @see org.springframework.context.ApplicationEvent + * @see org.springframework.context.event.ApplicationEventMulticaster * @see org.springframework.context.event.EventPublicationInterceptor */ @FunctionalInterface @@ -35,9 +36,16 @@ public interface ApplicationEventPublisher { /** * Notify all matching listeners registered with this * application of an application event. Events may be framework events - * (such as RequestHandledEvent) or application-specific events. + * (such as ContextRefreshedEvent) or application-specific events. + *

Such an event publication step is effectively a hand-off to the + * multicaster and does not imply synchronous/asynchronous execution + * or even immediate execution at all. Event listeners are encouraged + * to be as efficient as possible, individually using asynchronous + * execution for longer-running and potentially blocking operations. * @param event the event to publish - * @see org.springframework.web.context.support.RequestHandledEvent + * @see #publishEvent(Object) + * @see org.springframework.context.event.ContextRefreshedEvent + * @see org.springframework.context.event.ContextClosedEvent */ default void publishEvent(ApplicationEvent event) { publishEvent((Object) event); @@ -48,8 +56,14 @@ public interface ApplicationEventPublisher { * application of an event. *

If the specified {@code event} is not an {@link ApplicationEvent}, * it is wrapped in a {@link PayloadApplicationEvent}. + *

Such an event publication step is effectively a hand-off to the + * multicaster and does not imply synchronous/asynchronous execution + * or even immediate execution at all. Event listeners are encouraged + * to be as efficient as possible, individually using asynchronous + * execution for longer-running and potentially blocking operations. * @param event the event to publish * @since 4.2 + * @see #publishEvent(ApplicationEvent) * @see PayloadApplicationEvent */ void publishEvent(Object event); diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java b/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java index fea6b37993..70b6b06da9 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -84,8 +84,9 @@ public abstract class SharedEntityManagerCreator { queryTerminatingMethods.add("execute"); // JPA 2.1 StoredProcedureQuery queryTerminatingMethods.add("executeUpdate"); queryTerminatingMethods.add("getSingleResult"); - queryTerminatingMethods.add("getResultList"); queryTerminatingMethods.add("getResultStream"); + queryTerminatingMethods.add("getResultList"); + queryTerminatingMethods.add("list"); // Hibernate Query.list() method }