Community
Participate
Working Groups
Created attachment 282710 [details] test servlet source project Starting in the 4.8 release, two methods of HttpServletRequest stopped doing URL-decoding of their return values, in violation of the JEE Servlet specification. According to https://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html, both getPathInfo() and getServletPath() should return URL-decoded values, but they don't (they did in the 4.7.3 release). I am attaching a project archive for a simple servlet plug-in that illustrates the bad behavior. I deployed it in an embedded Equinox application according to https://www.eclipse.org/equinox/server/http_in_container.php (in an IBM WebSphere Liberty profile) as an application named "reqtest48". It registers a servlet at "/echo test". When invoked with a URL like http://localhost:9080/reqtest48/echo%20test/foo%20bar the getPathInfo() method returns "/foo%20bar" when it should be "/foo bar", and getServletPath() returns "/echo%20test" when it should be "/echo test". This is a blocker for us. Our product puts user-defined names in URLs, which often have spaces or other URL-invalid characters (e.g. "My Project Area"). We are currently based on the 4.4.2 release and am starting to work on upgrading to a much more recent release. This bug will break URL resolution behavior in many areas. Without a fix, we will only be able to upgrade to 4.7.3. I can also attach my test application WAR file that is ready to deploy in a JEE servlet container, if that is desired. Note: I suspect this was caused by the changes for https://bugs.eclipse.org/bugs/show_bug.cgi?id=497510
By the way, I tried the 4.15 release as well, and it's still broken.
New Gerrit change created: https://git.eclipse.org/r/162083
(In reply to Eclipse Genie from comment #2) > New Gerrit change created: https://git.eclipse.org/r/162083 This only adds a new testcase. Need to figure out next steps to fixing this.
New Gerrit change created: https://git.eclipse.org/r/162088
New Gerrit change created: https://git.eclipse.org/r/162093
Gerrit change https://git.eclipse.org/r/162093 was merged to [master]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=0db7ceaf4e4d0cbbfe1481069fa7af78203f1836
Gerrit change https://git.eclipse.org/r/162088 was merged to [master]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=9a0d95dd4a5d08977564f4ca5930b5570bccdc8d
This seems to have broken 2 of the ua tests: https://download.eclipse.org/eclipse/downloads/drops4/I20200509-1800/testresults/html/org.eclipse.ua.tests_ep416I-unit-cen64-gtk3-java11_linux.gtk.x86_64_11.html
(In reply to Alexander Kurtakov from comment #8) > This seems to have broken 2 of the ua tests: > https://download.eclipse.org/eclipse/downloads/drops4/I20200509-1800/ > testresults/html/org.eclipse.ua.tests_ep416I-unit-cen64-gtk3-java11_linux. > gtk.x86_64_11.html Looking into this now.
New Gerrit change created: https://git.eclipse.org/r/162830
New Gerrit change created: https://git.eclipse.org/r/162833
New Gerrit change created: https://git.eclipse.org/r/162835
Gerrit change https://git.eclipse.org/r/162830 was merged to [master]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=b0229b70ed4d823a36c4ecaf5eb2cbfc344ac538
Gerrit change https://git.eclipse.org/r/162835 was merged to [master]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=7dada08bc8358093b5e09b58cbfc4573513e1798
(In reply to Alexander Kurtakov from comment #8) > This seems to have broken 2 of the ua tests: > https://download.eclipse.org/eclipse/downloads/drops4/I20200509-1800/ > testresults/html/org.eclipse.ua.tests_ep416I-unit-cen64-gtk3-java11_linux. > gtk.x86_64_11.html There are two issues here. 1) At one point in bug 535106 UA removed the code that handled a servletPath that needed to be encoded when making a request. This was really covering up a bug that got introduced in Equinox where the servletPath was remaining unencoded. The fix in bug 535106 needs to therefore be reverted (but not the tests, they should remain). But the tests do have an issue in that they expect the response to have uncoded servletPath elements in them but this info is coming from the getServletPath() method which must not be encoded. This fix is in the gerrit: https://git.eclipse.org/r/#/c/162833/ 2) Equinox has a separate issue where it is attempting to double decode the servlet path. This is now fixed and tested with gerrits: https://git.eclipse.org/r/162830 and https://git.eclipse.org/r/162835
Gerrit change https://git.eclipse.org/r/162833 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.ua.git/commit/?id=adaf915cedba8ee423ec82f85554bb250775a834
This should be fixed now. Will verify with tonight's build.
Verified in I20200511-1800
New Gerrit change created: https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/168595
New Gerrit change created: https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/168596
New Gerrit change created: https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/168597
New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.ua/+/168599
Gerrit change https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/168596 was merged to [R4_15_maintenance]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=42470136d7ef1d4c999a752fb332572c32fad44d
Gerrit change https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/168597 was merged to [R4_15_maintenance]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=653cf1c49ad6860707508eb54840a41d985f8756
Gerrit change https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/168595 was merged to [R4_15_maintenance]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=42505e736f0e64a526e278c0bd49de55a6e5045f
Gerrit change https://git.eclipse.org/r/c/platform/eclipse.platform.ua/+/168599 was merged to [R4_15_maintenance]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.ua.git/commit/?id=b462d3482b89612be377cb15beb21f3659735869
New Gerrit change created: https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/171308
New Gerrit change created: https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/171312
New Gerrit change created: https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/171313
New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.ua/+/171317
Gerrit change https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/171312 was merged to [R4_8_maintenance]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=2da9e325b54539dc7ffa8dc8fba9e29bbe4d5138
Gerrit change https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/171313 was merged to [R4_8_maintenance]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=5d43ff0c0e46a95bfdd9b6119c1e6116e533e396
Gerrit change https://git.eclipse.org/r/c/equinox/rt.equinox.bundles/+/171308 was merged to [R4_8_maintenance]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=29c0103bdea2a25dbaaed67919147fa83cb4ace7
Gerrit change https://git.eclipse.org/r/c/platform/eclipse.platform.ua/+/171317 was merged to [R4_8_maintenance]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.ua.git/commit/?id=498a6815305fb23277ce336a215867edbdf293f3