Skip to content

Commit bd316aa

Browse files
authored
Merge branch 'master' into feature/JENKINS-75675
2 parents b0aa4a3 + ef42f3c commit bd316aa

File tree

7 files changed

+107
-105
lines changed

7 files changed

+107
-105
lines changed

bom/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ THE SOFTWARE.
6363
<dependency>
6464
<groupId>org.springframework</groupId>
6565
<artifactId>spring-framework-bom</artifactId>
66-
<version>6.2.9</version>
66+
<version>6.2.10</version>
6767
<type>pom</type>
6868
<scope>import</scope>
6969
</dependency>

core/src/main/java/hudson/PluginManager.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,14 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
220220
*/
221221
/* private final */ static int CHECK_UPDATE_ATTEMPTS;
222222

223+
/**
224+
* Class name prefixes to skip in the class loading
225+
*/
226+
private static final String[] CLASS_PREFIXES_TO_SKIP = {
227+
"SimpleTemplateScript", // cf. groovy.text.SimpleTemplateEngine
228+
"groovy.tmp.templates.GStringTemplateScript", // Leaks on classLoader in some cases, see JENKINS-75879
229+
};
230+
223231
static {
224232
try {
225233
// Secure initialization
@@ -2407,8 +2415,10 @@ public UberClassLoader(List<PluginWrapper> activePlugins) {
24072415

24082416
@Override
24092417
protected Class<?> findClass(String name) throws ClassNotFoundException {
2410-
if (name.startsWith("SimpleTemplateScript")) { // cf. groovy.text.SimpleTemplateEngine
2411-
throw new ClassNotFoundException("ignoring " + name);
2418+
for (String namePrefixToSkip : CLASS_PREFIXES_TO_SKIP) {
2419+
if (name.startsWith(namePrefixToSkip)) {
2420+
throw new ClassNotFoundException("ignoring " + name);
2421+
}
24122422
}
24132423
return loaded.computeIfAbsent(name, this::computeValue).orElseThrow(() -> new ClassNotFoundException(name));
24142424
}

core/src/main/resources/lib/form/helpLink.jelly

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ THE SOFTWARE.
2929
a spacer if none is available.
3030
3131
The help link is rendered as a table cell with an (?) icon.
32-
If the user clicks it, the content of the HTML fragment at the given URL
32+
If the user clicks it, the content of the HTML fragment at the given URL
3333
is rendered in the area designated as <f:helpArea> by the caller,
3434
usually in a row beneath the item with help.
35-
35+
3636
The alternative spacer is just an empty table cell.
37-
37+
3838
This tag was introduced to ensure that the space reserved for help items
3939
is consistent over the UI whether or not help exists.
4040
@@ -49,14 +49,14 @@ THE SOFTWARE.
4949
]]>
5050
</st:attribute>
5151
<st:attribute name="featureName">
52-
Name of the feature described by the help text, used for constructing the
52+
Name of the feature described by the help text, used for constructing the
5353
icon's alt attribute. Optional.
5454
</st:attribute>
5555
</st:documentation>
5656
<j:choose>
5757
<j:when test="${attrs.url!=null}">
5858
<j:set var="altText" value="${attrs.featureName != null ? '%Help for feature:' + ' ' + attrs.featureName : '%Help'}" />
59-
<a href="#" class="jenkins-help-button" tooltip="${altText}" helpURL="${rootURL}${attrs.url}">
59+
<a href="#" class="jenkins-help-button" aria-label="${altText}" helpURL="${rootURL}${attrs.url}">
6060
<!-- .jenkins-help-button span element is required as it's restyled in CSS -->
6161
<span>?</span>
6262
</a>

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
"lint": "yarn lint:js && yarn lint:css"
2424
},
2525
"devDependencies": {
26-
"@babel/cli": "7.28.0",
27-
"@babel/core": "7.28.0",
28-
"@babel/preset-env": "7.28.0",
26+
"@babel/cli": "7.28.3",
27+
"@babel/core": "7.28.3",
28+
"@babel/preset-env": "7.28.3",
2929
"@eslint/js": "9.33.0",
3030
"babel-loader": "10.0.0",
3131
"clean-webpack-plugin": "4.0.0",

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ THE SOFTWARE.
9898
<spotless.check.skip>false</spotless.check.skip>
9999
<!-- Make sure to keep the jetty-ee9-maven-plugin version in war/pom.xml in sync with the Jetty release in Winstone: -->
100100
<winstone.version>8.13</winstone.version>
101-
<node.version>24.5.0</node.version>
101+
<node.version>24.6.0</node.version>
102102
</properties>
103103

104104
<!--

test/src/test/java/jenkins/security/Security2779Test.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,11 @@ void setUp(JenkinsRule rule) {
2828
j = rule;
2929
}
3030

31-
@Test
32-
void noXssInHelpLinkPanel() throws Exception {
33-
noCrossSiteScriptingInHelp("#link-panel a");
34-
}
35-
3631
@Test
3732
void noXssInHelpIconPanel() throws Exception {
38-
noCrossSiteScriptingInHelp("#icon-panel svg");
39-
}
40-
41-
private void noCrossSiteScriptingInHelp(String selector) throws Exception {
42-
final AtomicInteger alerts = new AtomicInteger();
43-
final JenkinsRule.WebClient webClient = j.createWebClient();
33+
var selector = "#icon-panel svg";
34+
var alerts = new AtomicInteger();
35+
var webClient = j.createWebClient();
4436
webClient.setAlertHandler((AlertHandler) (p, s) -> alerts.addAndGet(1));
4537
final HtmlPage page = webClient.goTo(URL_NAME);
4638
page.executeJavaScript("document.querySelector('" + selector + "')._tippy.show()");

0 commit comments

Comments
 (0)