You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2021/11/15 07:30:30 UTC

[wicket] branch master updated: Simplify the test for Strings#stripJSessionId()

This is an automated email from the ASF dual-hosted git repository.

mgrigorov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git


The following commit(s) were added to refs/heads/master by this push:
     new 128125f  Simplify the test for Strings#stripJSessionId()
128125f is described below

commit 128125f25c33a4d886386291f24ffe2d195007ac
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
AuthorDate: Mon Nov 15 09:29:28 2021 +0200

    Simplify the test for Strings#stripJSessionId()
    
    Since
    
    commit 191de985e22b9e0801d5783fbcfa151a25d29ec8 (HEAD -> master, origin/master)
    Author: Martin Grigorov <mg...@apache.org>
    Date:   Sun Nov 14 21:56:30 2021 +0200
    
        Remove 'final' modifier from a static field
    
        Because it is not possible to modify it in JDK 18 b23.
        The OpenJDK team is informed.
        They will probably fix the regression. Or document it that it is not possible anymore to do such hacks.
    
        https://github.com/openjdk/jdk/pull/5027#issuecomment-968177213
    
    org.apache.wicket.util.string.Strings#SESSION_ID_PARAM is no more 'final' so there is no need to change the modifiers
---
 .../org/apache/wicket/util/string/StringsTest.java | 33 ----------------------
 1 file changed, 33 deletions(-)

diff --git a/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java b/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java
index 10bb526..0a4adc3 100644
--- a/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java
+++ b/wicket-util/src/test/java/org/apache/wicket/util/string/StringsTest.java
@@ -55,50 +55,17 @@ class StringsTest
 		// WICKET-6858
 		final Field sessionIdParamField = Strings.class.getDeclaredField("SESSION_ID_PARAM");
 		sessionIdParamField.setAccessible(true);
-		Field modifiersField = getModifiersField();
-		modifiersField.setAccessible(true);
 		try {
 			final String customSessionIdParam = ";Custom seSsion - ид=";
-			modifiersField.setInt(sessionIdParamField, sessionIdParamField.getModifiers() & ~Modifier.FINAL );
 			sessionIdParamField.set(null, customSessionIdParam);
 			assertEquals(url + ";a=b;c=d?param=a;b",
 			             Strings.stripJSessionId(url + ";a=b;c=d" + customSessionIdParam + "12345?param=a;b"));
 		} finally {
 			sessionIdParamField.set(null, "jsessionid");
-			modifiersField.setInt(sessionIdParamField, sessionIdParamField.getModifiers() & Modifier.FINAL );
-			modifiersField.setAccessible(false);
 			sessionIdParamField.setAccessible(false);
 		}
 	}
 
-	private Field getModifiersField() throws NoSuchFieldException
-	{
-		try
-		{
-			return Field.class.getDeclaredField("modifiers");
-		}
-		catch (NoSuchFieldException e) {
-			try
-			{
-				Method getDeclaredFields0 = Class.class.getDeclaredMethod("getDeclaredFields0", boolean.class);
-				getDeclaredFields0.setAccessible(true);
-				Field[] fields = (Field[]) getDeclaredFields0.invoke(Field.class, false);
-				for (Field field : fields)
-				{
-					if ("modifiers".equals(field.getName()))
-					{
-						return field;
-					}
-				}
-			}
-			catch (ReflectiveOperationException ex)
-			{
-				e.addSuppressed(ex);
-			}
-			throw e;
-		}
-	}
-
 	@Test
 	void test()
 	{