Commit Graph

415 Commits (9bd46ca8f86b09656fccab3231fb5faf15dd75d2)

Author SHA1 Message Date
Spring Buildmaster c10aad165f Next Development Version 7 years ago
Spring Buildmaster ade4760842 Next Development Version 7 years ago
Phillip Webb 624a5f8260 Apply URL decoding for nested jar entry names
Update `JarURLConnection` to apply URL decoding to nested jar entry
names.

Fixes gh-12765
7 years ago
Phillip Webb a8f366a554 Fix copyright header for edited files 7 years ago
Phillip Webb e975dbe3f0 Only use jar shortcut for matching URLs
Update JAR `Handler` logic so that the existing `jarFile` is only used
if the requested URL starts with the same path. Prior to this commit it
was possible to construct a URL with another URL as context. This could
mean that the `handler` was shared and the already resolved `jarFile`
contained in the handler wasn't necessarily suitable.

Fixes gh-12483
7 years ago
Andy Wilkinson eee891dbc8 Decode file: URLs passed into PropertiesLauncher via loader.path
Closes gh-12325
7 years ago
Stephane Nicoll b4a7e1d64b Use toLowerCase() and toUpperCase() with Locale.ENGLISH
This commit updates all `toLowerCase()` and `toUpperCase` invocations to
use the variant that takes a `Locale` to avoid locale-specific side
effect.

Closes gh-12213
7 years ago
Andy Wilkinson 915eaf3447 Polish 7 years ago
Andy Wilkinson 746cc0f70b Make JarFile.size() return the number of entries in the jar
Closes gh-12195
7 years ago
Phillip Webb 798522d890 Format with Eclipse Oxygen SR2 7 years ago
Spring Buildmaster 6414b42335 Next Development Version 7 years ago
Stephane Nicoll 397d3e85e8 Fix Windows build
Closes gh-11459
7 years ago
Douglas Cardoso feecc27677 Log inaccessible file in RandomAccessDataFile
Closes gh-11401
7 years ago
dreis2211 d5370e6852 Precompile current dir pattern in Handler
Closes gh-11321
7 years ago
dreis2211 37437a0fe2 Avoid allocations from lower-casing spec in JAR Handler
Closes gh-11314
7 years ago
Andy Wilkinson a491727b7c Avoid creating unnecessary garbage during URL normalization
Closes gh-11207
7 years ago
Spring Buildmaster df2ae7aa19 Next Development Version 7 years ago
Johnny Lim 4979af9fa5 Remove unnecessary assignments
Closes gh-10805
7 years ago
Spring Buildmaster c0f9f64776 Next Development Version 7 years ago
Spring Buildmaster 30eb937a83 Next Development Version 7 years ago
Andy Wilkinson 7a87c69dd0 Normalize spec when creating jar URL by removing /../ and /./
Previously when Handler was creating a URL from a context URL and a
spec, any occurrances of /../ or /./ in the spec would be left as-is.
This differed from the JDK's Handler implementation which normalizes
the URL by modifying the path to remove any occurrences of /../ or
/./

This commit updates our Handler implementation to align it with the
JDK's. Tests have been added to assert that, given the same inputs,
the two Handler classes produce the same output.

Closes gh-9917
7 years ago
Andy Wilkinson b7ac5f2eb2 Polish "Make JarURLConnection return entry's last modified time"
Closes gh-9893
7 years ago
rostislav.dudka 7c7259beec Make JarURLConnection return entry's last modified time
See gh-9893
7 years ago
Spring Buildmaster 17a5bb0be4 Next development version 7 years ago
Spring Buildmaster 41c5c0e7c9 Next development version 7 years ago
Phillip Webb 28dad44e2d Be defensive about JUL calls from JAR Handler
Update nested JAR support to only obtain JUL loggers when absolutely
necessary and to defensively deal with failures.

Prior to this commit it was not possible to override
`java.util.logging.manager` to use a nested JAR as the logger
implementation.

Fixes gh-9848
7 years ago
Phillip Webb aa57ca7e18 Polish 7 years ago
Andy Wilkinson 2d3bcae4e1 Make JarURLConnection return entry's length from getContentLengthLong()
Closes gh-9484
8 years ago
Spring Buildmaster 05d4d0281c Next Development Version 8 years ago
Andy Wilkinson 5c708ae712 Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson 5b4f9edc86 Restore original TCCL in PropertiesLauncherTests
Calling launch of PropertiesLauncherTests sets the thread context
class loader to an instance of LaunchedURLClassLoader. To avoid this
class loader being used beyond the scope of the test and launcher
that created it, this commit updates PropertiesLauncherTests to
capture the TCCL before each test and restore it after each test.

Closes gh-9378
8 years ago
Andy Wilkinson c22230a418 Try making FilePool static to fix the Mockito problem on Bamboo 8 years ago
Andy Wilkinson e11b7aff08 Ensure that file is released back to pool when seek fails
Closes gh-9370
8 years ago
Andy Wilkinson f7127e5522 Ensure that closing a JarFile closes all underlying resources
Closes gh-8871
8 years ago
Stephane Nicoll f8e1345b75 Unify versions used in integration tests
This commit makes sure the integration tests use the same versions as
the one managed by `spring-boot-dependencies` (including Maven plugins).

Closes gh-8947
8 years ago
Spring Buildmaster 9768b0a8c2 Next Development Version 8 years ago
Spring Buildmaster d719d2cbbc Next Development Version 8 years ago
Dave Syer 14638e67bc Extended PropertiesLauncher class location logic
Update `PropertiesLauncher` so that classes can be loaded outside of
`BOOT-INF/classes`. You can use a subdirectory, or the root directory
of an external jar (but not the parent archive to avoid issues
with agents and awkward delegation models).

Fixes gh-8480
Closes gh-8486
8 years ago
Phillip Webb ad38776de3 Polish 8 years ago
Phillip Webb ddcb5ee328 Polish 8 years ago
Andy Wilkinson c55bfb00b1 Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson 456327260b Fail fast when a Zip64 jar is encountered
Previously, jars (either top-level or nested) in Zip64 format were
treated as normal jar files. This would lead to a failure later on
when an attempt was made to read an entry from the file.

This commit updates the loader to fail fast when it encounters a
Zip64 jar file. Such files are identified by the number of entries
in the central directory end record being 0xFFFF.

Closes gh-8735
8 years ago
Stephane Nicoll d8e90af3bf Merge branch '1.4.x' into 1.5.x 8 years ago
dreis 1266642aba Fix test assertions
Closes gh-8660
8 years ago
Andy Wilkinson e6cfb4e5fb Improve diagnostics when reading a nested jar throws a runtime exception
Previously, only IOExceptions were caught and wrapped in a new
IOException that included the name of the nested entry that was
being read.

Following this commit, any Exception is caught and wrapped so that the
problematic entry can be identified in more failure scenarios.

Closes gh-8711
8 years ago
Spring Buildmaster d23fa24340 Next Development Version 8 years ago
Spring Buildmaster 2a83e80a9b Next Development Version 8 years ago
Andy Wilkinson 6673d8eebc Polish "Allow loader.path to refer to nested jars"
Closes gh-8334
Closes gh-8465
8 years ago
Dave Syer 3701cce88f Allow loader.path to refer to nested jars
Previously, each entry in loader.path could only refer to a standard
jar file. Refering to such a jar would add all of the classes in
the root of the jar to the class path.

This commit adds support for referencing a directory within a jar file
that contains one or more nested jars. For example:

$ java -jar -Dloader.path='jar:file:./lib.jar/!BOOT-INF/lib' my.jar

This will add all of the classes in all of that jars in the
BOOT-INF/lib directory of lib.jar to the class path.

See gh-8334
8 years ago
Andy Wilkinson b36c8a7c24 Polish "Tighten up PropertiesLauncher's contract"
See gh-8346
Closes gh-7221
8 years ago