Change relevant Assert calls to throw IllegalStateException
Change certain Assert class from `assert...` to `assertState` so that a more appropriate `IllegalStateException` is thrown. Fixes gh-43779
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -57,6 +57,7 @@ import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
|
||||
import org.springframework.core.type.classreading.MetadataReaderFactory;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
@@ -170,7 +171,7 @@ public class AutoConfigurationImportSelector implements DeferredImportSelector,
|
||||
protected AnnotationAttributes getAttributes(AnnotationMetadata metadata) {
|
||||
String name = getAnnotationClass().getName();
|
||||
AnnotationAttributes attributes = AnnotationAttributes.fromMap(metadata.getAnnotationAttributes(name, true));
|
||||
Assert.notNull(attributes, () -> "No auto-configuration attributes found. Is " + metadata.getClassName()
|
||||
Assert.state(attributes != null, () -> "No auto-configuration attributes found. Is " + metadata.getClassName()
|
||||
+ " annotated with " + ClassUtils.getShortName(name) + "?");
|
||||
return attributes;
|
||||
}
|
||||
@@ -195,7 +196,7 @@ public class AutoConfigurationImportSelector implements DeferredImportSelector,
|
||||
ImportCandidates importCandidates = ImportCandidates.load(this.autoConfigurationAnnotation,
|
||||
getBeanClassLoader());
|
||||
List<String> configurations = importCandidates.getCandidates();
|
||||
Assert.notEmpty(configurations,
|
||||
Assert.state(!CollectionUtils.isEmpty(configurations),
|
||||
"No auto configuration classes found in " + "META-INF/spring/"
|
||||
+ this.autoConfigurationAnnotation.getName() + ".imports. If you "
|
||||
+ "are using a custom packaging, make sure that file is correct.");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -112,10 +112,10 @@ public class JobLauncherApplicationRunner
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
Assert.isTrue(this.jobs.size() <= 1 || StringUtils.hasText(this.jobName),
|
||||
Assert.state(this.jobs.size() <= 1 || StringUtils.hasText(this.jobName),
|
||||
"Job name must be specified in case of multiple jobs");
|
||||
if (StringUtils.hasText(this.jobName)) {
|
||||
Assert.isTrue(isLocalJob(this.jobName) || isRegisteredJob(this.jobName),
|
||||
Assert.state(isLocalJob(this.jobName) || isRegisteredJob(this.jobName),
|
||||
() -> "No job found with name '" + this.jobName + "'");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -102,7 +102,7 @@ public class CacheAutoConfiguration {
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
Assert.notNull(this.cacheManager.getIfAvailable(),
|
||||
Assert.state(this.cacheManager.getIfAvailable() != null,
|
||||
() -> "No cache manager could be auto-configured, check your configuration (caching type is '"
|
||||
+ this.cacheProperties.getType() + "')");
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -250,8 +250,8 @@ class OnBeanCondition extends FilteringSpringBootCondition implements Configurat
|
||||
ConfigurableListableBeanFactory beanFactory = spec.getContext().getBeanFactory();
|
||||
if (spec.getStrategy() == SearchStrategy.ANCESTORS) {
|
||||
BeanFactory parent = beanFactory.getParentBeanFactory();
|
||||
Assert.isInstanceOf(ConfigurableListableBeanFactory.class, parent,
|
||||
"Unable to use SearchStrategy.ANCESTORS");
|
||||
Assert.state(parent instanceof ConfigurableListableBeanFactory,
|
||||
"Unable to use SearchStrategy.ANCESTORS without ConfigurableListableBeanFactory");
|
||||
beanFactory = (ConfigurableListableBeanFactory) parent;
|
||||
}
|
||||
return beanFactory;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -45,7 +45,7 @@ class OnResourceCondition extends SpringBootCondition {
|
||||
ResourceLoader loader = context.getResourceLoader();
|
||||
List<String> locations = new ArrayList<>();
|
||||
collectValues(locations, attributes.get("resources"));
|
||||
Assert.isTrue(!locations.isEmpty(),
|
||||
Assert.state(!locations.isEmpty(),
|
||||
"@ConditionalOnResource annotations must specify at least one resource location");
|
||||
List<String> missing = new ArrayList<>();
|
||||
for (String location : locations) {
|
||||
|
||||
@@ -583,7 +583,7 @@ public class FlywayAutoConfiguration {
|
||||
Extension(FluentConfiguration configuration, Class<E> type, String name) {
|
||||
this.extension = SingletonSupplier.of(() -> {
|
||||
E extension = configuration.getPluginRegister().getPlugin(type);
|
||||
Assert.notNull(extension, () -> "Flyway %s extension missing".formatted(name));
|
||||
Assert.state(extension != null, () -> "Flyway %s extension missing".formatted(name));
|
||||
return extension;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -52,7 +52,7 @@ public class HazelcastProperties {
|
||||
if (this.config == null) {
|
||||
return null;
|
||||
}
|
||||
Assert.isTrue(this.config.exists(),
|
||||
Assert.state(this.config.exists(),
|
||||
() -> "Hazelcast configuration does not exist '" + this.config.getDescription() + "'");
|
||||
return this.config;
|
||||
}
|
||||
|
||||
@@ -292,7 +292,7 @@ public class JacksonAutoConfiguration {
|
||||
// Find the field (this way we automatically support new constants
|
||||
// that may be added by Jackson in the future)
|
||||
Field field = findPropertyNamingStrategyField(fieldName);
|
||||
Assert.notNull(field, () -> "Constant named '" + fieldName + "' not found");
|
||||
Assert.state(field != null, () -> "Constant named '" + fieldName + "' not found");
|
||||
try {
|
||||
builder.propertyNamingStrategy((PropertyNamingStrategy) field.get(null));
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -96,7 +96,8 @@ public class XADataSourceAutoConfiguration implements BeanClassLoaderAware {
|
||||
try {
|
||||
Class<?> dataSourceClass = ClassUtils.forName(className, this.classLoader);
|
||||
Object instance = BeanUtils.instantiateClass(dataSourceClass);
|
||||
Assert.isInstanceOf(XADataSource.class, instance);
|
||||
Assert.state(instance instanceof XADataSource,
|
||||
() -> "DataSource class " + className + " is not an XADataSource");
|
||||
return (XADataSource) instance;
|
||||
}
|
||||
catch (Exception ex) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -175,8 +175,8 @@ class Saml2RelyingPartyRegistrationConfiguration {
|
||||
try (InputStream inputStream = location.getInputStream()) {
|
||||
PemContent pemContent = PemContent.load(inputStream);
|
||||
PrivateKey privateKey = pemContent.getPrivateKey();
|
||||
Assert.isInstanceOf(RSAPrivateKey.class, privateKey,
|
||||
"PrivateKey in resource '" + location + "' must be an RSAPrivateKey");
|
||||
Assert.state(privateKey instanceof RSAPrivateKey,
|
||||
() -> "PrivateKey in resource '" + location + "' must be an RSAPrivateKey");
|
||||
return (RSAPrivateKey) privateKey;
|
||||
}
|
||||
catch (Exception ex) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -53,7 +53,7 @@ class CertificateMatcher {
|
||||
Assert.notNull(privateKey, "Private key must not be null");
|
||||
this.privateKey = privateKey;
|
||||
this.signature = createSignature(privateKey);
|
||||
Assert.notNull(this.signature, "Failed to create signature");
|
||||
Assert.state(this.signature != null, "Failed to create signature");
|
||||
this.generatedSignature = sign(this.signature, privateKey);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -127,7 +127,7 @@ public final class PropertiesSslBundle implements SslBundle {
|
||||
if (properties.isVerifyKeys()) {
|
||||
CertificateMatcher certificateMatcher = new CertificateMatcher(pemSslStore.privateKey());
|
||||
Assert.state(certificateMatcher.matchesAny(pemSslStore.certificates()),
|
||||
"Private key in %s matches none of the certificates in the chain".formatted(propertyName));
|
||||
() -> "Private key in %s matches none of the certificates in the chain".formatted(propertyName));
|
||||
}
|
||||
return pemSslStore;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -91,7 +91,7 @@ import org.springframework.transaction.PlatformTransactionManager;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
||||
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
|
||||
import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
|
||||
import static org.mockito.BDDMockito.given;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
@@ -484,7 +484,7 @@ class BatchAutoConfigurationTests {
|
||||
JobLauncherApplicationRunner runner = createInstance();
|
||||
runner.setJobs(Arrays.asList(mockJob("one"), mockJob("two")));
|
||||
runner.setJobName("three");
|
||||
assertThatIllegalArgumentException().isThrownBy(runner::afterPropertiesSet)
|
||||
assertThatIllegalStateException().isThrownBy(runner::afterPropertiesSet)
|
||||
.withMessage("No job found with name 'three'");
|
||||
}
|
||||
|
||||
@@ -492,7 +492,7 @@ class BatchAutoConfigurationTests {
|
||||
void whenTheUserDefinesAJobNameThatDoesNotExistWithRegisteredJobFailsFast() {
|
||||
JobLauncherApplicationRunner runner = createInstance("one", "two");
|
||||
runner.setJobName("three");
|
||||
assertThatIllegalArgumentException().isThrownBy(runner::afterPropertiesSet)
|
||||
assertThatIllegalStateException().isThrownBy(runner::afterPropertiesSet)
|
||||
.withMessage("No job found with name 'three'");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user