Before this commit, system properties with a value has been quoted all the time.
This is fine as long if the resulting string is passed into the RunArguments(String) constructor, which then parses it again into a String[].
This isn't fine if they are added to ProcessBuilder.command, because then quoting is unnecessary.
This commit also fixes the unnecessary Map -> String -> String[] parsing by adding the entries directly into the array.
Closes gh-46555
Previously, available() would return 0 initially and then negative
values once some data head been read. It should be a positive value
(for entries with content) initially a decrease as data is read
reaching zero once an entry's data has been read in its entirety.
This commit initialises the count of the remaining bytes to
be equal to the entry's uncompressed size. It also removes logic
that closes the stream when remaining equals zero upon read or skip.
This condition was not reached before as remaining would become
negative as soon as any data was read or skipped. With the correct
initialization of remaining, the condition is now reached and it
results in test failures due to premature closure. Furthermore, the
javadoc of read and skip do not require the stream to be closed
when the reach end of file.
Closes gh-47056
This is a follow-up of gh-46599 where detecting the default value
suffer from the same problem. Rather than using a name, the resolver now
provides the field itself. This also adds a dedicated test for the use
of @Name with Lombok.
Closes gh-46662
Previously, when a property was customized with @Name, getter, setter,
field, and record component were looked up using the custom name, rather
than the property name. This lead to missing information as the custom
name is not meant to match the field name, for instance.
This commit keeps the custom name, but uses the property name as for
other cases.
See gh-46599
Signed-off-by: Bohdan Pryshedko <prishedko@gmail.com>
Replace the string based `JarFileUrlKey` and cache with a simple key
built directly from URL components. This should allow cache lookups
to remain fast whilst removing any `URLStreamHandler.getHostAddress`
calls.
Prior to this commit, we assumed that it was safe to use the URL
directly as a cache key as long as it had an empty or null `host`.
This assumption isn't correct when Palo Alto Network Cortex XDR agent
is present as it appears to intercept calls to `getHostAddress`
and, unlike the JDK code, always perform a DNS lookup.
Fixes gh-46401
Compilation of AOT-generated source code requires runtime
dependencies to be on the classpath. This is necessary as a class
from a runtime dependency may appear in the signature of a generated
method that defines a bean. To accomplish this, Boot's AOT plugin
sets the org.gradle.usage attribute of the compile classpath
configurations of the aot and aotTest source sets to java-runtime.
When the Kotlin plugin is applied after Boot's AOT plugin it breaks
this arrangement by setting org.gradle.usage to java-api. There
doesn't appear to be a way to prevent it from messing with the aot
and aotTest source sets despite them not using Kotlin. This commit
works around the problem by repairing the damage and setting the
attribute back to java-runtime again.
Fixes gh-46397
Introduce @EnabledOnLocale annotation to enable or disable tests
based on the system's default locale.
See gh-46211
Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
Prior to this change, versions in the dev and production classpaths
could differ. These differing versions could result in a transitive
dependency that should have been present in both development and
production only being present in the former. This would likely
result in failures at runtime.
This commit aligns the versions by adding constraints to the
production runtime classpath for each dependency in the runtime
classpath.
Closes gh-46043
Update `JarFileUrlKey` so that only URLs that have a cheap `equals()`
method call are cached. This should prevent expensive DNS lookups from
being performed.
Fixes gh-46015
The changelog generator did not detect properties that were added to a new
version with error-level deprecation (indicating immediate removal). This
commonly occurs when upgrading dependencies like Flyway 10, where properties
are removed without prior deprecation.
Modified the computeDifferences method to detect properties that only exist
in the new metadata with error-level deprecation and properly mark them as
DELETED in the changelog.
See gh-45267
Signed-off-by: yybmion <yunyubin54@gmail.com>
Update `EphemeralBuilder` so that it adds an additional layer that
containing an empty application (aka workspace) directory owned by
the build user.
Prior to this commit, the directory was only bound. This could cause
issues on Podman where, unlike Docker, the bound directory is owned
by `root`.
Fixes gh-45233