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

JsonTokenizer fails in production mode with specific dependencies since 14.4.9 #10893

Closed
OlliTietavainenVaadin opened this issue May 4, 2021 · 14 comments · Fixed by #10975
Closed

Comments

@OlliTietavainenVaadin
Copy link
Member

Description of the bug / feature

There's a combination of add-ons (clipboardhelper and vcf-handsontable-flow) that have been working until 14.4.9 and broken since. Brokenness shows by crashing navigation when trying to navigate to a view with an instance of a ClipboardHelper component.

Minimal reproducible example

Multi-module project with only the necessary add-ons and a UI module included:
https://drive.google.com/file/d/19roS85CbTv0FIyilOWCnkZLfBdFEb1wN/view?usp=sharing
Steps to reproduce given above project:

  1. run mvn install on the clipboardhelper and vcf-handsontable-flow modules
  2. for ui-bootstrap, first run mvn spring-boot:run to run the application in development mode
  3. open localhost:8080/clipboard; this should work normally
  4. shut down the server and rerun in production mode with mvn spring-boot:run -Pproduction
  5. open localhost:8080/clipboard

Expected behavior

The view with ClipboardHelper should open as in development mode

Actual behavior

Navigation to /clipboard fails with the following exception:

2021-05-04 18:33:27.870 ERROR 726 --- [nio-8080-exec-9] c.v.flow.router.InternalServerError      : There was an exception while trying to navigate to 'clipboard'

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.vaadin.spring.tutorial.ClipboardTestView': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.vaadin.spring.tutorial.ClipboardTestView]: Constructor threw exception; nested exception is elemental.json.JsonException:
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1318) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1213) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:307) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at com.vaadin.flow.spring.SpringInstantiator.getOrCreate(SpringInstantiator.java:117) ~[vaadin-spring-12.3.3.jar:na]
        at com.vaadin.flow.di.Instantiator.createRouteTarget(Instantiator.java:160) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.lambda$getRouteTarget$1(AbstractNavigationStateRenderer.java:137) ~[flow-server-2.5.3.jar:2.5.3]
        at java.base/java.util.Optional.orElseGet(Optional.java:369) ~[na:na]
        at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.getRouteTarget(AbstractNavigationStateRenderer.java:136) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.sendBeforeEnterEventAndPopulateChain(AbstractNavigationStateRenderer.java:525) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.createChainIfEmptyAndExecuteBeforeEnterNavigation(AbstractNavigationStateRenderer.java:505) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:222) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.router.Router.handleNavigation(Router.java:249) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.router.Router.navigate(Router.java:220) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.router.Router.lambda$initializeUI$caa7783a$1(Router.java:90) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.server.communication.rpc.NavigationRpcHandler.handle(NavigationRpcHandler.java:66) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocationData(ServerRpcHandler.java:410) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.server.communication.ServerRpcHandler.lambda$handleInvocations$1(ServerRpcHandler.java:391) ~[flow-server-2.5.3.jar:2.5.3]
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) ~[na:na]
        at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:391) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:318) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1547) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:247) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:111) ~[vaadin-spring-12.3.3.jar:na]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.37.jar:4.0.FR]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:352) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:141) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:652) ~[tomcat-embed-core-9.0.37.jar:4.0.FR]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.37.jar:4.0.FR]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.37.jar:9.0.37]
        at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.vaadin.spring.tutorial.ClipboardTestView]: Constructor threw exception; nested exception is elemental.json.JsonException:
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:217) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1310) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        ... 76 common frames omitted
Caused by: elemental.json.JsonException:
        at elemental.json.impl.JsonTokenizer.nextString(JsonTokenizer.java:112) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:171) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JsonTokenizer.parseObject(JsonTokenizer.java:231) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:173) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JsonTokenizer.parseArray(JsonTokenizer.java:192) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:175) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JsonTokenizer.parseObject(JsonTokenizer.java:231) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:173) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JsonTokenizer.parseArray(JsonTokenizer.java:192) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:175) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JsonTokenizer.parseObject(JsonTokenizer.java:231) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:173) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.impl.JreJsonFactory.parse(JreJsonFactory.java:64) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at elemental.json.Json.parse(Json.java:53) ~[gwt-elemental-2.8.2.vaadin2.jar:2.8.2.vaadin2]
        at com.vaadin.flow.component.polymertemplate.BundleParser.parseJsonStatistics(BundleParser.java:121) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.component.polymertemplate.NpmTemplateParser.resetCache(NpmTemplateParser.java:249) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.component.polymertemplate.NpmTemplateParser.getSourcesFromStats(NpmTemplateParser.java:198) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.component.polymertemplate.NpmTemplateParser.getTemplateContent(NpmTemplateParser.java:111) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.component.polymertemplate.TemplateDataAnalyzer.parseTemplate(TemplateDataAnalyzer.java:221) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.component.polymertemplate.TemplateInitializer.lambda$null$23ee5b4f$1(TemplateInitializer.java:89) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.internal.ReflectionCache.lambda$wrapValueProvider$d0062d93$1(ReflectionCache.java:91) ~[flow-server-2.5.3.jar:2.5.3]
        at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) ~[na:na]
        at com.vaadin.flow.internal.ReflectionCache.get(ReflectionCache.java:108) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.component.polymertemplate.TemplateInitializer.<init>(TemplateInitializer.java:90) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.component.polymertemplate.PolymerTemplate.<init>(PolymerTemplate.java:91) ~[flow-server-2.5.3.jar:2.5.3]
        at com.vaadin.flow.component.polymertemplate.PolymerTemplate.<init>(PolymerTemplate.java:106) ~[flow-server-2.5.3.jar:2.5.3]
        at org.vaadin.olli.ClipboardHelper.<init>(ClipboardHelper.java:31) ~[clipboardhelper-1.1.3-SNAPSHOT.jar:1.1.3-SNAPSHOT]
        at org.vaadin.spring.tutorial.ClipboardTestView.<init>(ClipboardTestView.java:31) ~[classes/:na]
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[na:na]
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:204) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]

Versions:

- Vaadin / Flow version: Vaadin 14.5.3 (brokenness starts with 14.4.10, 14.4.9 works)
- Java version: 11
- OS version: Windows
- Browser version (if applicable): latest Chrome
- Application Server (if applicable): Spring Boot
- IDE (if applicable): n/a
@pleku pleku added the BFP Bugfix priority, also known as Warranty label May 6, 2021
@pleku pleku added this to Needs triage in OLD Vaadin Flow bugs & maintenance (Vaadin 10+) via automation May 6, 2021
@miguelatvaadin
Copy link
Contributor

There are strange characters in @vaadin/flow-frontend/handsontable/dist/handsontable.full.min.js which invalidate the json containing the jsonStats. Perhaps a encoding issue

@javier-godoy
Copy link
Contributor

The same exception happens when including a dependency with @json-editor/json-editor": "^2.5.4"

@gianluca-valentini
Copy link

I follow this issue as it is creating problem in our development enviromnent

@pleku pleku added the bug label May 11, 2021
@caalador caalador self-assigned this May 11, 2021
@project-bot project-bot bot moved this from P1 - High priority to WIP in OLD Vaadin Flow bugs & maintenance (Vaadin 10+) May 11, 2021
@caalador
Copy link
Contributor

caalador commented May 11, 2021

I see that the sources have a strange character ​�᠎ which would seem by copy pasting to pobably be (Ascii hex 85 or utf8 c2 85 U+0085 which would be a character) for handsontable when building with 14.4.10+

As for the reason where this comes from I don't yet know as in npm dependencies nor on the flow side there is nothing special that should lead to this.

What IDEA sees is

U+200B	​	e2 80 8b	ZERO WIDTH SPACE
U+0085	 	c2 85	<control> NEXT LINE (NEL)*
U+180E	᠎	e1 a0 8e  MONGOLIAN VOWEL SEPARATOR

Which would match with what I see in the string when running copying the fileContents string will when pasted contain 3 lines (with new lines on the U+200B position) for the handsontable sources when in the stats json there is 1 line.

caalador added a commit that referenced this issue May 12, 2021
Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893
caalador added a commit that referenced this issue May 12, 2021
Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893
caalador added a commit that referenced this issue May 12, 2021
Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893
caalador added a commit that referenced this issue May 12, 2021
Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893
OLD Vaadin Flow bugs & maintenance (Vaadin 10+) automation moved this from WIP to Closed May 12, 2021
denis-anisimov pushed a commit that referenced this issue May 12, 2021
* fix: Use IOUtils toStream and toString

Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893
denis-anisimov pushed a commit that referenced this issue May 12, 2021
* fix: Use IOUtils toStream and toString

Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893
vaadin-bot pushed a commit that referenced this issue May 12, 2021
* fix: Use IOUtils toStream and toString

Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893
vaadin-bot pushed a commit that referenced this issue May 12, 2021
* fix: Use IOUtils toStream and toString

Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893
vaadin-bot pushed a commit that referenced this issue May 12, 2021
* fix: Use IOUtils toStream and toString

Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893
vaadin-bot added a commit that referenced this issue May 12, 2021
* fix: Use IOUtils toStream and toString

Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893

Co-authored-by: caalador <mikael.grankvist@vaadin.com>
vaadin-bot added a commit that referenced this issue May 12, 2021
* fix: Use IOUtils toStream and toString

Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893

Co-authored-by: caalador <mikael.grankvist@vaadin.com>
vaadin-bot added a commit that referenced this issue May 12, 2021
* fix: Use IOUtils toStream and toString

Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893

Co-authored-by: caalador <mikael.grankvist@vaadin.com>
@vaadin-bot
Copy link
Collaborator

This ticket/PR has been released with platform 14.6.1. For prerelease versions, it will be included in its final version.

@gianluca-valentini
Copy link

So if I'm using the 14.4.* version I have to wait the 14.4. update or I have to force the migration to 14.6? I need the LTS version update. When it will be released?

@OlliTietavainenVaadin
Copy link
Member Author

14.6.1 is a LTS version. 15.x, 16.x,17.x etc. are non-LTS versions.

@gianluca-valentini
Copy link

Thanks @OlliTietavainenVaadin

Artur- pushed a commit that referenced this issue May 18, 2021
* fix: Use IOUtils toStream and toString

Use IOUtils toString and toInputStream
to not change any characters in the file content.

fixes #10893
@mvdberge
Copy link

14.6.1 is a LTS version. 15.x, 16.x,17.x etc. are non-LTS versions.

So when will this bug be fixed in the non-LTS versions? We are using vaadin 19 and are experiencing this bug in production mode.

@caalador
Copy link
Contributor

@mvdberge yes the fix is in v19 and will land in 19.0.8 I think.

@mvdberge
Copy link

Great, thanks for the clarification

@vaadin-bot
Copy link
Collaborator

This ticket/PR has been released with platform 19.0.8. For prerelease versions, it will be included in its final version.

@vaadin-bot
Copy link
Collaborator

This ticket/PR has been released with platform 20.0.0.beta2. For prerelease versions, it will be included in its final version.

@vaadin-bot
Copy link
Collaborator

This ticket/PR has been released with platform 21.0.0.alpha2. For prerelease versions, it will be included in its final version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment