396 Commits

Author SHA1 Message Date
Andy Wilkinson
2a342ef416 Merge branch '2.5.x'
Closes gh-28662
2021-11-12 23:40:35 +00:00
Andy Wilkinson
5e4a502b2d Merge branch '2.4.x' into 2.5.x
Closes gh-28661
2021-11-12 20:31:25 +00:00
Andy Wilkinson
2cec3971d7 Prohibit unwanted dependencies in all modules not just starters
Closes gh-28658
2021-11-12 20:04:35 +00:00
Phillip Webb
bcef8ee4c9 Merge branch '2.5.x'
Closes gh-28357
2021-10-14 21:49:06 -07:00
Phillip Webb
a93304c973 Merge branch '2.4.x' into 2.5.x
Closes gh-28356
2021-10-14 21:48:53 -07:00
Phillip Webb
7388f2b60b Attempt to reduce JarFileWrapper heap consumption
Update `JarURLConnection` to use a single shared wrapper per
jar file rather than creating a new one each time. This update
should help to reduce GC pressure.

Fixes gh-28042
2021-10-14 21:48:01 -07:00
Leo Li
1770f065a5 Polish
See gh-28239
2021-10-13 09:07:33 +02:00
Andy Wilkinson
1931104d13 Merge branch '2.4.x' into 2.5.x
Closes gh-28206
2021-10-06 09:57:19 +01:00
Andy Wilkinson
9c9fbf400e Upgrade to Spring Java Format 0.0.29
Closes gh-28205
2021-10-06 09:52:45 +01:00
Phillip Webb
40d65a74dc Merge branch '2.4.x' into 2.5.x 2021-09-21 14:43:38 -07:00
Phillip Webb
ec12d51f30 Polish 2021-09-21 14:00:28 -07:00
Phillip Webb
5ba69634c9 Merge branch '2.4.x' into 2.5.x 2021-09-21 11:17:55 -07:00
Phillip Webb
cfeafee826 Polish 2021-09-21 11:16:46 -07:00
Andy Wilkinson
37240bda3f Merge branch '2.4.x' into 2.5.x
Closes gh-27900
2021-09-09 10:13:40 +01:00
Andy Wilkinson
47163af9b6 Fix handling of Zip64 jar files larger than 4,294,967,295 bytes
Previously, a Zip64 jar file was identified by the number of entries
in the central directory being 0xFFFF. This value indicates that
there the number of entries is too big for the 2-byte field. However,
a jar may be in Zip64 format due to it exceeding the Zip format's
maximum size rather than its maximum number of entries so this field
cannot be used as a reliable indicator. The Zip specification doesn't
require any of the fields of the end of central directory record to
have a value of 0xFFFF (2-byte fields) or 0xFFFFFFFF (4-byte fields)
when using Zip64 format so we need to take a different approach.

Additionally, a number of places in the code assumed that an entry's
offset would always be available from the central directory file
header directly. This assumption did not hold true when the jar was
a Zip64 archive due to its size as the offset's value would be
0xFFFFFFF indicating that it should be read from the Zip64 extended
information field within the header's extra field instead.

This commit updates the Zip64 detection to look for the Zip64 end of
central directory locator instead. If present, it begins 20 bytes
before the beginning of the end of central directory record. Its
first four bytes are always 0x07064b50. The code that reads the
local header offset has also been updated to refer to the Zip64
extended information field when the offset is too large to fit in
the 4-byte field in the central directory file header. To allow
greater-than-4-byte offsets to be handled, a number of fields,
method parameters, and local variables have had their type changed
from an int to a long.

Fixes gh-27822
2021-09-09 09:17:48 +01:00
dreis2211
dacfe27350 Fix tests for multi-release JARs on JDK 17
See gh-27229
2021-07-10 17:38:16 +02:00
dreis2211
00d3330c9a Avoid illegal reflective access on ZipEntry.xdostime
See gh-27100
2021-07-08 18:05:16 +01:00
Phillip Webb
02494d63d2 Merge branch '2.4.x'
Closes gh-26744
2021-06-02 17:26:05 -07:00
Phillip Webb
1cda557d03 Merge branch '2.3.x' into 2.4.x
Closes gh-26743
2021-06-02 17:25:51 -07:00
Phillip Webb
1beee5700c Don't close early when SecurityManager present
Update `JarFile` and `JarFileWrapper` classes so that they no longer
close the `JarFile` early if a `SecurityManager` is in use.

Prior to this commit, the closed `JarFile` would cause (an ultimately
swallowed) NPE in `ZipFile` which manifested itself as a
`ClassNotFoundException` when starting the app.

Closes gh-25538
2021-06-02 17:24:05 -07:00
weixsun
8a2be288a3 Remove unnecessary throws declaration in tests
See gh-26441
2021-05-17 09:31:51 +02:00
Andy Wilkinson
f92510e39d Merge branch '2.4.x'
Closes gh-26451
2021-05-13 11:44:27 +01:00
Andy Wilkinson
970f933806 Merge branch '2.3.x' into 2.4.x
Closes gh-26450
2021-05-13 11:44:01 +01:00
Andy Wilkinson
2dd94b5554 Polish "Use try-with-resources statement"
See gh-26449
2021-05-13 11:37:10 +01:00
weixsun
5ba9db391f Use try-with-resources statements
See gh-26449
2021-05-13 11:36:14 +01:00
Phillip Webb
8c31d29acf Merge branch '2.4.x' 2021-03-30 09:29:59 -07:00
Phillip Webb
a28a3ae090 Merge branch '2.3.x' into 2.4.x 2021-03-30 09:25:46 -07:00
Phillip Webb
9c8a97809d Consistent use of @deprecated since
Restore the patch version number for consistency with `@since`
tags.

See gh-25808
2021-03-30 09:20:30 -07:00
Phillip Webb
44b1751bb4 Merge branch '2.4.x'
Closes gh-25826
2021-03-29 15:48:20 -07:00
Phillip Webb
363f5829d1 Merge branch '2.3.x' into 2.4.x
Closes gh-25825
2021-03-29 15:46:50 -07:00
Phillip Webb
26dd1b9a26 Update deprecations with for removal targets
Update all deprecation tags to include a removal target.

Closes gh-25808
2021-03-29 15:44:58 -07:00
Phillip Webb
deaff1a522 Merge branch '2.4.x'
Closes gh-25775
2021-03-23 17:08:18 -07:00
Phillip Webb
ca9fae6b47 Merge branch '2.3.x' into 2.4.x
Closes gh-25774
2021-03-23 17:07:44 -07:00
Phillip Webb
ec21202d54 Delete unpacked jars when the JVM exits
Update `JarFileArchive` so that any unpacked files are now deleted when
the JVM exits.

Closes gh-25773
2021-03-23 17:06:56 -07:00
Phillip Webb
05f61bccea Align unpack logic with Files.createTempDirectory
Update `JarFileArchive` to align the way that it creates temp files and
folders with the way that `Files.createTempDirectory` works.

Closes gh-25772
2021-03-23 17:06:56 -07:00
Phillip Webb
b8873578ca Add missing @Deprecated annotations 2021-03-23 17:06:53 -07:00
Andy Wilkinson
db781a0d84 Merge branch '2.4.x'
See gh-25077
2021-02-02 15:14:18 +00:00
Andy Wilkinson
788a42d694 Merge branch '2.3.x' into 2.4.x
See gh-25076
2021-02-02 15:12:27 +00:00
Andy Wilkinson
67479b6380 Add junit-platform-launcher dependency by convention
Closes gh-25074
2021-02-02 13:03:21 +00:00
Phillip Webb
d8b6960997 Merge branch '2.4.x'
Closes gh-25077
2021-02-01 16:08:57 -08:00
Phillip Webb
257608a3a3 Merge branch '2.3.x' into 2.4.x
Closes gh-25076
2021-02-01 16:03:43 -08:00
Phillip Webb
939b5dfc26 Add junit-platform-launcher dependency
Update `build.gradle` files to ensure that `junit-platform-launcher` is
a `testRuntimeOnly` dependency. This ensures that tests can be run from
Eclipse.

Closes gh-25074
2021-02-01 15:31:28 -08:00
Andy Wilkinson
45f298bc7a Merge branch '2.4.x'
Closes gh-24711
2021-01-08 17:08:52 +00:00
Andy Wilkinson
9e389c8376 Merge branch '2.3.x' into 2.4.x
Closes gh-24710
2021-01-08 17:07:45 +00:00
Andy Wilkinson
5ad4d627fd Fix classpath index so entries match those expected by the launcher
This reverts commit ad164269e9aa7d0f39362d78d946a146dac5fdee and adds
some additional tests.

Fixes gh-24192
2021-01-08 15:32:19 +00:00
Stephane Nicoll
c063c3434d Merge branch '2.4.x'
Closes gh-24581
2020-12-21 10:03:31 +01:00
Stephane Nicoll
09fa16c58c Merge branch '2.3.x' into 2.4.x 2020-12-21 09:59:33 +01:00
Stephane Nicoll
306b964ce3 Fix multi-release JAR test on JDK 16
See gh-24453
2020-12-21 09:59:01 +01:00
Phillip Webb
82791b4eda Improve performance of Tomcat 'jar:war:file' URLs
Update jar `Handler` fallback logic to directly support Tomcat
'jar:war:file' URLs. This commit allows contents to be accessed without
the JDK needing to extracted the nested jar to the temporary folder.

Closes gh-24553
2020-12-17 22:51:19 -08:00
Phillip Webb
0730949325 Merge branch '2.3.x' into 2.4.x
Closes gh-24554
2020-12-17 20:47:13 -08:00