Skip to content

Commit 2e2f91d

Browse files
committed
Merge branch '1.5.x' into 2.0.x
2 parents 385216a + 17de157 commit 2e2f91d

File tree

7 files changed

+63
-60
lines changed

7 files changed

+63
-60
lines changed

Diff for: spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/BeanTypeRegistry.java

+31-31
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import java.lang.reflect.Method;
2121
import java.util.Arrays;
2222
import java.util.HashMap;
23-
import java.util.Iterator;
2423
import java.util.LinkedHashSet;
2524
import java.util.Map;
2625
import java.util.Set;
@@ -145,6 +144,17 @@ public void afterSingletonsInstantiated() {
145144
this.beanDefinitions.clear();
146145
}
147146

147+
private void updateTypesIfNecessary() {
148+
this.beanFactory.getBeanNamesIterator().forEachRemaining((name) -> {
149+
if (!this.beanTypes.containsKey(name)) {
150+
addBeanType(name);
151+
}
152+
else {
153+
updateBeanType(name);
154+
}
155+
});
156+
}
157+
148158
private void addBeanType(String name) {
149159
if (this.beanFactory.containsSingleton(name)) {
150160
this.beanTypes.put(name, this.beanFactory.getType(name));
@@ -161,13 +171,17 @@ private void addBeanTypeForNonAliasDefinition(String name) {
161171
}
162172
}
163173

164-
private RootBeanDefinition getBeanDefinition(String name) {
165-
try {
166-
return (RootBeanDefinition) this.beanFactory.getMergedBeanDefinition(name);
174+
private void updateBeanType(String name) {
175+
if (this.beanFactory.isAlias(name) || this.beanFactory.containsSingleton(name)) {
176+
return;
167177
}
168-
catch (BeanDefinitionStoreException ex) {
169-
logIgnoredError("unresolvable metadata in bean definition", name, ex);
170-
return null;
178+
RootBeanDefinition beanDefinition = getBeanDefinition(name);
179+
if (beanDefinition == null) {
180+
return;
181+
}
182+
RootBeanDefinition previous = this.beanDefinitions.put(name, beanDefinition);
183+
if (previous != null && !beanDefinition.equals(previous)) {
184+
addBeanTypeForNonAliasDefinition(name, beanDefinition);
171185
}
172186
}
173187

@@ -196,6 +210,16 @@ private void addBeanTypeForNonAliasDefinition(String name,
196210
}
197211
}
198212

213+
private RootBeanDefinition getBeanDefinition(String name) {
214+
try {
215+
return (RootBeanDefinition) this.beanFactory.getMergedBeanDefinition(name);
216+
}
217+
catch (BeanDefinitionStoreException ex) {
218+
logIgnoredError("unresolvable metadata in bean definition", name, ex);
219+
return null;
220+
}
221+
}
222+
199223
private void logIgnoredError(String message, String name, Exception ex) {
200224
if (logger.isDebugEnabled()) {
201225
logger.debug("Ignoring " + message + " '" + name + "'", ex);
@@ -207,30 +231,6 @@ private boolean requiresEagerInit(String factoryBeanName) {
207231
&& !this.beanFactory.containsSingleton(factoryBeanName));
208232
}
209233

210-
private void updateTypesIfNecessary() {
211-
Iterator<String> names = this.beanFactory.getBeanNamesIterator();
212-
while (names.hasNext()) {
213-
String name = names.next();
214-
if (!this.beanTypes.containsKey(name)) {
215-
addBeanType(name);
216-
}
217-
else {
218-
if (!this.beanFactory.isAlias(name)
219-
&& !this.beanFactory.containsSingleton(name)) {
220-
RootBeanDefinition beanDefinition = getBeanDefinition(name);
221-
if (beanDefinition != null) {
222-
RootBeanDefinition existingDefinition = this.beanDefinitions
223-
.put(name, beanDefinition);
224-
if (existingDefinition != null
225-
&& !beanDefinition.equals(existingDefinition)) {
226-
addBeanTypeForNonAliasDefinition(name, beanDefinition);
227-
}
228-
}
229-
}
230-
}
231-
}
232-
}
233-
234234
/**
235235
* Attempt to guess the type that a {@link FactoryBean} will return based on the
236236
* generics in its method signature.

Diff for: spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/condition/ConditionalOnBeanTests.java

-1
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,6 @@ public Integer testBean() {
347347
public static class ConsumingConfiguration {
348348

349349
ConsumingConfiguration(String testBean) {
350-
351350
}
352351

353352
}

Diff for: spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/ZipInflaterInputStream.java

+3-6
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,16 @@
3030
*/
3131
class ZipInflaterInputStream extends InflaterInputStream {
3232

33-
private final Inflater inflater;
33+
private int available;
3434

3535
private boolean extraBytesWritten;
3636

37-
private int available;
38-
3937
ZipInflaterInputStream(InputStream inputStream, int size) {
4038
this(inputStream, new Inflater(true), size);
4139
}
4240

4341
private ZipInflaterInputStream(InputStream inputStream, Inflater inflater, int size) {
44-
super(inputStream, inflater, getInflaterBufferSize(size));
45-
this.inflater = inflater;
42+
super(inputStream, new Inflater(true), getInflaterBufferSize(size));
4643
this.available = size;
4744
}
4845

@@ -66,7 +63,7 @@ public int read(byte[] b, int off, int len) throws IOException {
6663
@Override
6764
public void close() throws IOException {
6865
super.close();
69-
this.inflater.end();
66+
this.inf.end();
7067
}
7168

7269
@Override

Diff for: spring-boot-project/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/NoSuchMethodFailureAnalyzer.java

+24-18
Original file line numberDiff line numberDiff line change
@@ -48,24 +48,8 @@ protected FailureAnalysis analyze(Throwable rootFailure, NoSuchMethodError cause
4848
if (actual == null) {
4949
return null;
5050
}
51-
StringWriter description = new StringWriter();
52-
PrintWriter writer = new PrintWriter(description);
53-
writer.print("An attempt was made to call the method ");
54-
writer.print(cause.getMessage());
55-
writer.print(" but it does not exist. Its class, ");
56-
writer.print(className);
57-
writer.println(", is available from the following locations:");
58-
writer.println();
59-
for (URL candidate : candidates) {
60-
writer.print(" ");
61-
writer.println(candidate);
62-
}
63-
writer.println();
64-
writer.println("It was loaded from the following location:");
65-
writer.println();
66-
writer.print(" ");
67-
writer.println(actual);
68-
return new FailureAnalysis(description.toString(),
51+
String description = getDescription(cause, className, candidates, actual);
52+
return new FailureAnalysis(description,
6953
"Correct the classpath of your application so that it contains a single,"
7054
+ " compatible version of " + className,
7155
cause);
@@ -105,4 +89,26 @@ private URL getActual(String className) {
10589
}
10690
}
10791

92+
private String getDescription(NoSuchMethodError cause, String className,
93+
List<URL> candidates, URL actual) {
94+
StringWriter description = new StringWriter();
95+
PrintWriter writer = new PrintWriter(description);
96+
writer.print("An attempt was made to call the method ");
97+
writer.print(cause.getMessage());
98+
writer.print(" but it does not exist. Its class, ");
99+
writer.print(className);
100+
writer.println(", is available from the following locations:");
101+
writer.println();
102+
for (URL candidate : candidates) {
103+
writer.print(" ");
104+
writer.println(candidate);
105+
}
106+
writer.println();
107+
writer.println("It was loaded from the following location:");
108+
writer.println();
109+
writer.print(" ");
110+
writer.println(actual);
111+
return description.toString();
112+
}
113+
108114
}

Diff for: spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/undertow/UndertowServletWebServerFactory.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,8 @@ private void configureAccessLog(DeploymentInfo deploymentInfo) {
319319
private AccessLogHandler createAccessLogHandler(HttpHandler handler,
320320
AccessLogReceiver accessLogReceiver) {
321321
createAccessLogDirectoryIfNecessary();
322-
String formatString = ((this.accessLogPattern != null) ? this.accessLogPattern
323-
: "common");
322+
String formatString = (this.accessLogPattern != null) ? this.accessLogPattern
323+
: "common";
324324
return new AccessLogHandler(handler, accessLogReceiver, formatString,
325325
Undertow.class.getClassLoader());
326326
}

Diff for: spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/support/SpringBootServletInitializer.java

-1
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,6 @@ public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
196196
((ConfigurableWebEnvironment) environment)
197197
.initPropertySources(this.servletContext, null);
198198
}
199-
200199
}
201200

202201
@Override

Diff for: spring-boot-project/spring-boot/src/test/java/org/springframework/boot/diagnostics/analyzer/NoSuchMethodFailureAnalyzerTests.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@
3030
import static org.mockito.Mockito.mock;
3131

3232
/**
33-
* @author awilkinson
33+
* Tests for {@link NoSuchMethodFailureAnalyzer}.
34+
*
35+
* @author Andy Wilkinson
3436
*/
3537
@RunWith(ModifiedClassPathRunner.class)
3638
@ClassPathOverrides("javax.servlet:servlet-api:2.5")

0 commit comments

Comments
 (0)