Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Properly encoded URIs use %20 #8271

Merged
merged 7 commits into from May 18, 2020
Merged

Properly encoded URIs use %20 #8271

merged 7 commits into from May 18, 2020

Conversation

ajgassner
Copy link
Contributor

@ajgassner ajgassner commented May 7, 2020

should fix #5360

see https://stackoverflow.com/a/31612226/1296333


This change is Reviewable

@CLAassistant
Copy link

CLAassistant commented May 7, 2020

CLA assistant check
All committers have signed the CLA.

@ajgassner ajgassner changed the title fixes #5360 Properly encoded URIs use %20 May 7, 2020
@mehdi-vaadin mehdi-vaadin self-requested a review May 8, 2020 10:22
Copy link
Contributor

@caalador caalador left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 1 unresolved discussion, 0 of 1 LGTMs obtained (waiting on @ajgassner and @mehdi-vaadin)


flow-server/src/test/java/com/vaadin/flow/server/StreamResourceRegistryTest.java, line 145 at r2 (raw file):

        URI url = registration.getResourceUri();
        String suffix = URLEncoder.encode(resource.getName(),

This test is now wrong as the result should by specification be a%3Fb%3Dc+d%26e as its a query parameter a new test would be required that would have the resource "my file.png" which should become "my%20file.png".

This does raise the question that should a StreamResource accept query parameters in the name.

Copy link
Contributor Author

@ajgassner ajgassner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 1 unresolved discussion, 0 of 1 LGTMs obtained (waiting on @caalador and @mehdi-vaadin)


flow-server/src/test/java/com/vaadin/flow/server/StreamResourceRegistryTest.java, line 145 at r2 (raw file):

Previously, caalador wrote…

This test is now wrong as the result should by specification be a%3Fb%3Dc+d%26e as its a query parameter a new test would be required that would have the resource "my file.png" which should become "my%20file.png".

This does raise the question that should a StreamResource accept query parameters in the name.

StreamResource doesn't accept/allow query parameters in the moment as the whole resource name gets URL encoded. Also the question mark gets url encoded, so it's not a marker for query params.

So IMHO this test is correct. "a?b=c d&e" represents a resource name, not an URL part. Imagine you have a file with filename "abc? test123.png". This should become "abc%3F%20test123.png".

Copy link
Contributor

@caalador caalador left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 1 unresolved discussion, 0 of 1 LGTMs obtained (waiting on @ajgassner and @mehdi-vaadin)


flow-server/src/test/java/com/vaadin/flow/server/StreamResourceRegistryTest.java, line 145 at r2 (raw file):

Previously, ajgassner (Alex Gassner) wrote…

StreamResource doesn't accept/allow query parameters in the moment as the whole resource name gets URL encoded. Also the question mark gets url encoded, so it's not a marker for query params.

So IMHO this test is correct. "a?b=c d&e" represents a resource name, not an URL part. Imagine you have a file with filename "abc? test123.png". This should become "abc%3F%20test123.png".

Windows for instance doesn't accept ? in a file name so it's a bit hard to accept.
It would be nice to have another name there instead.

But a test would be needed that checks that the original file containing + and image++.svg works.
Shouldn't really have anything to do with this as + should be encoded to %2B by URLEncoder and
image++.svg should become something like VAADIN/dynamic/resource/1/9bf0b824-3851-47a1-b16a-f68b8053ac94/image%2B%2B.svg

To actually fix the issue with I would expect a change also to StreamRequestHandler::getPathUri

@mehdi-vaadin mehdi-vaadin removed their request for review May 14, 2020 12:30
Copy link
Contributor Author

@ajgassner ajgassner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 of 1 files at r1, 1 of 1 files at r2.
Reviewable status: 1 unresolved discussion, 0 of 1 LGTMs obtained (waiting on @ajgassner and @caalador)


flow-server/src/test/java/com/vaadin/flow/server/StreamResourceRegistryTest.java, line 145 at r2 (raw file):

Previously, caalador wrote…

Windows for instance doesn't accept ? in a file name so it's a bit hard to accept.
It would be nice to have another name there instead.

But a test would be needed that checks that the original file containing + and image++.svg works.
Shouldn't really have anything to do with this as + should be encoded to %2B by URLEncoder and
image++.svg should become something like VAADIN/dynamic/resource/1/9bf0b824-3851-47a1-b16a-f68b8053ac94/image%2B%2B.svg

To actually fix the issue with I would expect a change also to StreamRequestHandler::getPathUri

Done.

Copy link
Contributor

@caalador caalador left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 2 of 2 files at r3.
Reviewable status: 2 unresolved discussions, 0 of 1 LGTMs obtained (waiting on @ajgassner)

a discussion (no related file):
Could you add a download for a filename with + and or ++ in it to StreamResourceView and add a download test for it to StreamResourceIT

Also if possible a verification to StreamResourceHandlerTest would be good to have.



flow-server/src/main/java/com/vaadin/flow/server/communication/StreamRequestHandler.java, line 170 at r3 (raw file):

name = name.replace('+', ' ');

This seems like it might mess up a name with + in it.

Copy link
Contributor Author

@ajgassner ajgassner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 2 unresolved discussions, 0 of 1 LGTMs obtained (waiting on @caalador)

a discussion (no related file):

Previously, caalador wrote…

Could you add a download for a filename with + and or ++ in it to StreamResourceView and add a download test for it to StreamResourceIT

Also if possible a verification to StreamResourceHandlerTest would be good to have.

I have implemented the IT. But I'm unable to run it locally. Are there docs how to get the UI tests up and running with IntelliJ?



flow-server/src/main/java/com/vaadin/flow/server/communication/StreamRequestHandler.java, line 170 at r3 (raw file):

Previously, caalador wrote…
name = name.replace('+', ' ');

This seems like it might mess up a name with + in it.

I don't get why. Example input "a+b" becomes "a b". Then the URLEncoder produces "a+b" again, because of the space. Then the + gets replaced, results in "a%20b".

Copy link
Contributor Author

@ajgassner ajgassner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 2 unresolved discussions, 0 of 1 LGTMs obtained (waiting on @caalador)

a discussion (no related file):

Previously, ajgassner (Alex Gassner) wrote…

I have implemented the IT. But I'm unable to run it locally. Are there docs how to get the UI tests up and running with IntelliJ?

Ah I see, I need a ro license...


Copy link
Contributor Author

@ajgassner ajgassner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 2 unresolved discussions, 0 of 1 LGTMs obtained (waiting on @caalador)

a discussion (no related file):

Previously, ajgassner (Alex Gassner) wrote…

Ah I see, I need a ro license...

@caalador The test is failing, can you please fix it? I'm unable to run them locally. That's why it's pretty hard for me to find the cause. It's annoying to wait for TeamCity after each change. I think the problem is somewhere in the test code itself. Selenium decodes the url or something like that.


Copy link
Contributor

@caalador caalador left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 2 unresolved discussions, 0 of 1 LGTMs obtained (waiting on @ajgassner and @caalador)

a discussion (no related file):

Previously, ajgassner (Alex Gassner) wrote…

@caalador The test is failing, can you please fix it? I'm unable to run them locally. That's why it's pretty hard for me to find the cause. It's annoying to wait for TeamCity after each change. I think the problem is somewhere in the test code itself. Selenium decodes the url or something like that.

@ajgassner I'll have a look.


Added test for StreamResourceHandler
Added IT test for special character download.
@caalador
Copy link
Contributor

This patch should fix the PR I couldn't push so I need to as if you could put in the patch.
0001-Do-not-change-resource-name.patch.txt

Copy link
Contributor

@caalador caalador left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 2 unresolved discussions, 0 of 1 LGTMs obtained (waiting on @ajgassner)


flow-server/src/main/java/com/vaadin/flow/server/communication/StreamRequestHandler.java, line 170 at r3 (raw file):

Previously, ajgassner (Alex Gassner) wrote…

I don't get why. Example input "a+b" becomes "a b". Then the URLEncoder produces "a+b" again, because of the space. Then the + gets replaced, results in "a%20b".

It's because now you specifically encode the spaces as %20 and the actual plus that has been encoded as %2B will be decoded at this time making us replace the + that was not a space with and thus loosing the actual + as it is now suddenly handled as a space.

@ajgassner
Copy link
Contributor Author

@caalador you are now contributor of git@github.com:ajgassner/flow.git Please push your changes to master.

@mehdi-vaadin
Copy link
Contributor

@ajgassner thanks for your PR. Is the proposed change supposed to fix the following piece of code too?

Anchor downloadAnchor = new Anchor(new StreamResource("a+b.txt", (stream, session) -> {
    stream.write("Something".getBytes());
}), "download");

add(downloadAnchor);

I tried it and got this error:
HTTP ERROR 404 Resource is not found for path=VAADIN/dynamic/resource/2/50719cd4-6a52-4240-a9f9-dbcae9618f49/a+b.txt

@ajgassner
Copy link
Contributor Author

ajgassner commented May 15, 2020

@mehdi-vaadin Yes it is. Mhm the generated URI should end with a%20b.txt

@mehdi-vaadin
Copy link
Contributor

The whole error page:
image

@caalador
Copy link
Contributor

@mehdi did you test with my patch in?

@caalador caalador dismissed their stale review May 15, 2020 08:42

Made changes myself

@mehdi-vaadin
Copy link
Contributor

Yes, I got your patch.

Copy link
Contributor

@mehdi-vaadin mehdi-vaadin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 of 2 files at r3, 3 of 4 files at r5.
Reviewable status: 3 unresolved discussions, 0 of 1 LGTMs obtained (waiting on @ajgassner and @mehdi-vaadin)


flow-server/src/test/java/com/vaadin/flow/server/StreamResourceRegistryTest.java, line 158 at r6 (raw file):

        URI uri = registration.getResourceUri();
        Assert.assertTrue("Resource URI is not properly encoded", uri.toString().endsWith(suffix));

Trivial: this file needs reformatting based on Floe conventions.


flow-server/src/test/java/com/vaadin/flow/server/communication/StreamRequestHandlerTest.java, line 34 at r6 (raw file):

StreamRequestHandlerTest

Trivial: the formatting of this class is not based on Flow conventions.


flow-server/src/test/java/com/vaadin/flow/server/communication/StreamRequestHandlerTest.java, line 73 at r6 (raw file):

Plusses

Typo: Pluses
Same in other places in this file.

Copy link
Contributor

@caalador caalador left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 3 unresolved discussions, 0 of 1 LGTMs obtained (waiting on @ajgassner and @mehdi-vaadin)


flow-server/src/test/java/com/vaadin/flow/server/communication/StreamRequestHandlerTest.java, line 34 at r6 (raw file):

Previously, mehdi-vaadin (Mehdi Javan) wrote…
StreamRequestHandlerTest

Trivial: the formatting of this class is not based on Flow conventions.

It's exactly the same as I use for all other PRs in flow. Only difference I can see after mvn formatter:format are a couple different line breaks.


flow-server/src/test/java/com/vaadin/flow/server/communication/StreamRequestHandlerTest.java, line 73 at r6 (raw file):

Previously, mehdi-vaadin (Mehdi Javan) wrote…
Plusses

Typo: Pluses
Same in other places in this file.

done

Copy link
Contributor

@caalador caalador left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 3 unresolved discussions, 0 of 1 LGTMs obtained (waiting on @caalador and @mehdi-vaadin)


flow-server/src/test/java/com/vaadin/flow/server/StreamResourceRegistryTest.java, line 158 at r6 (raw file):

Previously, mehdi-vaadin (Mehdi Javan) wrote…

Trivial: this file needs reformatting based on Floe conventions.

done

Copy link
Contributor

@mehdi-vaadin mehdi-vaadin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

Reviewed 2 of 2 files at r7.
Reviewable status: :shipit: complete! all discussions resolved, 1 of 1 LGTMs obtained


flow-server/src/test/java/com/vaadin/flow/server/communication/StreamRequestHandlerTest.java, line 34 at r6 (raw file):

Previously, caalador wrote…

It's exactly the same as I use for all other PRs in flow. Only difference I can see after mvn formatter:format are a couple different line breaks.

You're right. Sorry. My bad. :)

@caalador caalador added +0.0.1 and removed +1.0.0 labels May 15, 2020
@vaadin-bot vaadin-bot added +1.0.0 and removed +0.0.1 labels May 15, 2020
@caalador caalador added +0.0.1 and removed +1.0.0 labels May 18, 2020
@caalador caalador merged commit 96926f1 into vaadin:master May 18, 2020
OLD Vaadin Flow ongoing work (Vaadin 10+) automation moved this from Iteration Reviews to Done - pending release May 18, 2020
pleku pushed a commit that referenced this pull request May 20, 2020
denis-anisimov pushed a commit that referenced this pull request May 28, 2020
* 'master' of github.com:vaadin/flow: (191 commits)
  Fix regression in @Push when running in client bootstrapping (#8435)
  Don't override initial value of hidden HTML Element attribute. (#8419)
  Cherry pick from 2.2 to master and fix postpone and forward with CCDM
(#8342) (#8359)
  Moved init parameters to new class
com.vaadin.flow.server.InitParameters (#8409)
  Update chrome version to 83 (#8417)
  Listen detach events on "listenOn" components in shortcut registration
(#8391)
  Correct Javadocs for adding JS and Stylesheets programatically.
(#8392)
  Close client app on change location (#8334)
  Close UI after refreshing the page in PreserveOnRefresh case and mark
it (#8365)
  remove unused import
  fix: custom connect client breaks endpoints mapping
  Wait for intermediate page to load completely in @PreserveOnRefresh IT
(#8338)
  Properly encoded URIs use %20 (#8271)
  Removed unnecessary private method (#8357)
  Extract live reload ITs into separate test module (#8324)
  fix: check for TypeVariable in the ExplicitNullableTypeChecker (#8316)
  Live reload show message on error (#8206) (#8304)
  Clarify message about blocking with the session locked (#8312)
  Url parameter template support. (#7608)
  Store vaadin hash to node_modules (#8282)
  ...

# Conflicts:
#	.gitignore
#	flow-client/src/main/java/com/vaadin/client/ApplicationConnection.java
#	flow-client/src/main/resources/META-INF/resources/frontend/Flow.ts
#	flow-client/src/test/frontend/FlowTests.ts
#	flow-maven-plugin/src/main/java/com/vaadin/flow/plugin/maven/BuildFrontendMojo.java
#	flow-maven-plugin/src/main/java/com/vaadin/flow/plugin/maven/FlowModeAbstractMojo.java
#	flow-maven-plugin/src/main/java/com/vaadin/flow/plugin/maven/PrepareFrontendMojo.java
#	flow-maven-plugin/src/test/java/com/vaadin/flow/plugin/maven/BuildFrontendMojoTest.java
#	flow-maven-plugin/src/test/java/com/vaadin/flow/plugin/maven/PrepareFrontendMojoTest.java
#	flow-server/src/main/java/com/vaadin/flow/function/DeploymentConfiguration.java
#	flow-server/src/main/java/com/vaadin/flow/server/Constants.java
#	flow-server/src/main/java/com/vaadin/flow/server/DefaultDeploymentConfiguration.java
#	flow-server/src/main/java/com/vaadin/flow/server/DeploymentConfigurationFactory.java
#	flow-server/src/main/java/com/vaadin/flow/server/DevModeHandler.java
#	flow-server/src/main/java/com/vaadin/flow/server/connect/VaadinConnectController.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/FrontendUtils.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/NodeTasks.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/NodeUpdater.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/TaskGenerateTsConfig.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/TaskRunNpmInstall.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/VersionsJsonConverter.java
#	flow-server/src/main/java/com/vaadin/flow/server/startup/AbstractRouteRegistryInitializer.java
#	flow-server/src/main/java/com/vaadin/flow/server/startup/DevModeInitializer.java
#	flow-server/src/main/java/com/vaadin/flow/server/startup/ServletDeployer.java
#	flow-server/src/main/java/com/vaadin/flow/server/startup/VaadinAppShellInitializer.java
#	flow-server/src/main/java/com/vaadin/flow/shared/ApplicationConstants.java
#	flow-server/src/main/resources/pnpmfile.js
#	flow-server/src/main/resources/webpack.generated.js
#	flow-server/src/test/java/com/vaadin/flow/server/DefaultDeploymentConfigurationTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/DeploymentConfigurationFactoryTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/communication/WebComponentBootstrapHandlerTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/connect/VaadinConnectControllerTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/connect/rest/EndpointWithRestControllerTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/frontend/FrontendUtilsTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/frontend/TaskRunNpmInstallTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/frontend/TaskRunPnpmInstallTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/frontend/VersionsJsonConverterTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/startup/AbstractRouteRegistryInitializerTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTestBase.java
#	flow-server/src/test/java/com/vaadin/flow/server/startup/VaadinAppShellInitializerTest.java
#	flow-server/src/test/resources/versions/no_vaadin_package.json
#	flow-server/src/test/resources/versions/package.json
#	flow-server/src/test/resources/versions/user_package.json
#	flow-server/src/test/resources/versions/user_versions.json
#	flow-server/src/test/resources/versions/versions.json
#	flow-test-util/src/main/java/com/vaadin/flow/testutil/AbstractTestBenchTest.java
#	flow-tests/pom.xml
#	flow-tests/test-npm-only-features/test-npm-performance-regression/src/test/java/com/vaadin/flow/testnpmonlyfeatures/performanceregression/StartupPerformanceIT.java
#	flow-tests/test-root-context/src/main/java/com/vaadin/flow/uitest/ui/PushWithPreserveOnRefreshView.java
#	flow-tests/test-root-context/src/main/java/com/vaadin/flow/uitest/ui/StreamResourceView.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/VerifyBrowserVersionIT.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/NavigationTriggerIT.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/PushWithPreserveOnRefreshIT.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/RequestParametersIT.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/RouterSessionExpirationIT.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/StreamResourceIT.java
#	flow-tests/test-root-ui-context/src/main/java/com/vaadin/flow/uitest/servlet/ApplicationRunnerServlet.java
#	flow-tests/test-root-ui-context/src/test/java/com/vaadin/flow/uitest/ui/push/ReconnectLongPollingIT.java
#	flow-tests/test-router-custom-context/src/test/java/com/vaadin/flow/contexttest/ui/PushIT.java
caalador pushed a commit that referenced this pull request May 28, 2020
pleku pushed a commit that referenced this pull request May 28, 2020
* 'master' of github.com:vaadin/flow: (191 commits)
  Fix regression in @Push when running in client bootstrapping (#8435)
  Don't override initial value of hidden HTML Element attribute. (#8419)
  Cherry pick from 2.2 to master and fix postpone and forward with CCDM
(#8342) (#8359)
  Moved init parameters to new class
com.vaadin.flow.server.InitParameters (#8409)
  Update chrome version to 83 (#8417)
  Listen detach events on "listenOn" components in shortcut registration
(#8391)
  Correct Javadocs for adding JS and Stylesheets programatically.
(#8392)
  Close client app on change location (#8334)
  Close UI after refreshing the page in PreserveOnRefresh case and mark
it (#8365)
  remove unused import
  fix: custom connect client breaks endpoints mapping
  Wait for intermediate page to load completely in @PreserveOnRefresh IT
(#8338)
  Properly encoded URIs use %20 (#8271)
  Removed unnecessary private method (#8357)
  Extract live reload ITs into separate test module (#8324)
  fix: check for TypeVariable in the ExplicitNullableTypeChecker (#8316)
  Live reload show message on error (#8206) (#8304)
  Clarify message about blocking with the session locked (#8312)
  Url parameter template support. (#7608)
  Store vaadin hash to node_modules (#8282)
  ...

# Conflicts:
#	.gitignore
#	flow-client/src/main/java/com/vaadin/client/ApplicationConnection.java
#	flow-client/src/main/resources/META-INF/resources/frontend/Flow.ts
#	flow-client/src/test/frontend/FlowTests.ts
#	flow-maven-plugin/src/main/java/com/vaadin/flow/plugin/maven/BuildFrontendMojo.java
#	flow-maven-plugin/src/main/java/com/vaadin/flow/plugin/maven/FlowModeAbstractMojo.java
#	flow-maven-plugin/src/main/java/com/vaadin/flow/plugin/maven/PrepareFrontendMojo.java
#	flow-maven-plugin/src/test/java/com/vaadin/flow/plugin/maven/BuildFrontendMojoTest.java
#	flow-maven-plugin/src/test/java/com/vaadin/flow/plugin/maven/PrepareFrontendMojoTest.java
#	flow-server/src/main/java/com/vaadin/flow/function/DeploymentConfiguration.java
#	flow-server/src/main/java/com/vaadin/flow/server/Constants.java
#	flow-server/src/main/java/com/vaadin/flow/server/DefaultDeploymentConfiguration.java
#	flow-server/src/main/java/com/vaadin/flow/server/DeploymentConfigurationFactory.java
#	flow-server/src/main/java/com/vaadin/flow/server/DevModeHandler.java
#	flow-server/src/main/java/com/vaadin/flow/server/connect/VaadinConnectController.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/FrontendUtils.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/NodeTasks.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/NodeUpdater.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/TaskGenerateTsConfig.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/TaskRunNpmInstall.java
#	flow-server/src/main/java/com/vaadin/flow/server/frontend/VersionsJsonConverter.java
#	flow-server/src/main/java/com/vaadin/flow/server/startup/AbstractRouteRegistryInitializer.java
#	flow-server/src/main/java/com/vaadin/flow/server/startup/DevModeInitializer.java
#	flow-server/src/main/java/com/vaadin/flow/server/startup/ServletDeployer.java
#	flow-server/src/main/java/com/vaadin/flow/server/startup/VaadinAppShellInitializer.java
#	flow-server/src/main/java/com/vaadin/flow/shared/ApplicationConstants.java
#	flow-server/src/main/resources/pnpmfile.js
#	flow-server/src/main/resources/webpack.generated.js
#	flow-server/src/test/java/com/vaadin/flow/server/DefaultDeploymentConfigurationTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/DeploymentConfigurationFactoryTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/communication/WebComponentBootstrapHandlerTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/connect/VaadinConnectControllerTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/connect/rest/EndpointWithRestControllerTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/frontend/FrontendUtilsTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/frontend/TaskRunNpmInstallTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/frontend/TaskRunPnpmInstallTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/frontend/VersionsJsonConverterTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/startup/AbstractRouteRegistryInitializerTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTest.java
#	flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTestBase.java
#	flow-server/src/test/java/com/vaadin/flow/server/startup/VaadinAppShellInitializerTest.java
#	flow-server/src/test/resources/versions/no_vaadin_package.json
#	flow-server/src/test/resources/versions/package.json
#	flow-server/src/test/resources/versions/user_package.json
#	flow-server/src/test/resources/versions/user_versions.json
#	flow-server/src/test/resources/versions/versions.json
#	flow-test-util/src/main/java/com/vaadin/flow/testutil/AbstractTestBenchTest.java
#	flow-tests/pom.xml
#	flow-tests/test-npm-only-features/test-npm-performance-regression/src/test/java/com/vaadin/flow/testnpmonlyfeatures/performanceregression/StartupPerformanceIT.java
#	flow-tests/test-root-context/src/main/java/com/vaadin/flow/uitest/ui/PushWithPreserveOnRefreshView.java
#	flow-tests/test-root-context/src/main/java/com/vaadin/flow/uitest/ui/StreamResourceView.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/VerifyBrowserVersionIT.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/NavigationTriggerIT.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/PushWithPreserveOnRefreshIT.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/RequestParametersIT.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/RouterSessionExpirationIT.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/StreamResourceIT.java
#	flow-tests/test-root-ui-context/src/main/java/com/vaadin/flow/uitest/servlet/ApplicationRunnerServlet.java
#	flow-tests/test-root-ui-context/src/test/java/com/vaadin/flow/uitest/ui/push/ReconnectLongPollingIT.java
#	flow-tests/test-router-custom-context/src/test/java/com/vaadin/flow/contexttest/ui/PushIT.java
pleku pushed a commit that referenced this pull request May 28, 2020
caalador pushed a commit that referenced this pull request Jun 12, 2020
fixes #5360
# Conflicts:
#	flow-tests/test-root-context/src/main/java/com/vaadin/flow/uitest/ui/StreamResourceView.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/StreamResourceIT.java
caalador pushed a commit that referenced this pull request Jun 12, 2020
fixes #5360
# Conflicts:
#	flow-tests/test-root-context/src/main/java/com/vaadin/flow/uitest/ui/StreamResourceView.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/StreamResourceIT.java
caalador pushed a commit that referenced this pull request Jun 12, 2020
fixes #5360
# Conflicts:
#	flow-tests/test-root-context/src/main/java/com/vaadin/flow/uitest/ui/StreamResourceView.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/StreamResourceIT.java
pleku pushed a commit that referenced this pull request Jun 17, 2020
fixes #5360
# Conflicts:
#	flow-tests/test-root-context/src/main/java/com/vaadin/flow/uitest/ui/StreamResourceView.java
#	flow-tests/test-root-context/src/test/java/com/vaadin/flow/uitest/ui/StreamResourceIT.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
OLD Vaadin Flow ongoing work (Vaadin ...
  
Done - pending release
Development

Successfully merging this pull request may close these issues.

Vaadin downloader (via StreamResource) replaces spaces ' ' with '+'
6 participants