vaadin / bakery-app-starter-flow-spring Goto Github PK
View Code? Open in Web Editor NEWInternal repository for Bakery App Starter for Flow and Spring
License: The Unlicense
Internal repository for Bakery App Starter for Flow and Spring
License: The Unlicense
there are two models, one in StorefrontView and one in OrderDetail. The one in detail is used when opening from dashboard, the other when opening from storefront. It was super confusing to figure out why my added value was added only in certain situations.
Actual: a confirmation dialog is shown
Expected: the popup is closed
If you add an order but do not select a pickup location, you get a notification that something is wrong but no indication what is wrong
It doesn’t seem to be possible to enter edit mode for storefront item using the keyboard. I can focus a row, and view the details by pressing Space, but I can’t focus the Cancel or Edit buttons.
Expected: Can't go to review because no product is selected
Actual: Review page is shown with "Strawberry Bun" as product
Edit dialog is shown, not sure if it's another popup or the same
The dialog is closed, an order status dialog is shown without any content. The empty order dialog is then closed
Dirty checking doesn't happen.
Since all the text-fields on the crud forms are not using debouncing, but sending value-change event only on blur, dialog stays not dirty (related issue #622)
Load testing with Gatling. When the concurrent user count reaches 5-10 users the exception below starts appearing.
Test scenario
Exception is got quite randomly from different places of the above scenario, e.g. after 3. or when inputing user's name etc.
java.util.ConcurrentModificationException: null
at java.util.ArrayList.forEach(ArrayList.java:1252) ~[na:1.8.0_45]
at com.vaadin.server.communication.rpc.MapSyncRpcHandler.flushPendingChangeEvents(MapSyncRpcHandler.java:81) ~[flow-server-1.0.0.alpha13.jar!/:na]
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:346) ~[flow-server-1.0.0.alpha13.jar!/:na]
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:286) ~[flow-server-1.0.0.alpha13.jar!/:na]
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:88) ~[flow-server-1.0.0.alpha13.jar!/:na]
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) ~[flow-server-1.0.0.alpha13.jar!/:na]
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1517) ~[flow-server-1.0.0.alpha13.jar!/:na]
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:351) [flow-server-1.0.0.alpha13.jar!/:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api-3.1.0.jar!/:3.1.0]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:467) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:351) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:141) [spring-webmvc-5.0.2.RELEASE.jar!/:5.0.2.RELEASE]
Flow 1.0.0.alpha18 contains fix for #3293
Most Vaadin projects use spaces instead of tabs to avoid ending with mixed space-tabs in files causing confusion when reading code in other editors like vim in command line, or using diff utilities.
Good coding practices recommend the usage of spaces. I don't see a good reason to use tabs just because it's the default in Eclipse, since in most editors is spaces. Having to reconfigure your IDE each time you open this project is not a good DX
Open any order to edit.
Remove any product by clicking button X
.
Check the total sum, which is wrong.
More over, when the last product is removed some brackets appear.
Proper sum is recalculated only if a new product is added. Otherwise it's always stays wrong while editing.
At this point, you are still on the login screen
Now you are logged in again
I did some changes to my bakery and forgot to add a converter for a textfield. when navigating to the view, it throws an exception, but i get NO STACK TRACE or any logging of any kind. The UI tells me
There was an exception while trying to navigate to 'storefront/5809' with the exception message 'java.lang.Integer cannot be cast to java.lang.String'
That's not good enough.
On Android Chrome, you can scroll the address bar away, but that leads dead white area below navigation bar. Also software itself is easy to crash, but that's totally different issue, so ignore the error dialog (this issue happen also without it).
Easy way to reproduce this is to open user view, and scroll up on users list. This will hide address bar, and break layout.
From https://developers.google.com/web/fundamentals/app-install-banners/
Caution: Beginning in Chrome 68 (May 2018), Chrome will not automatically show the Add to Home Screen prompt, instead, you must trigger it by using the beforeinstallprompt event.
The production packaging mvn clean package -Pproduction
doesn't work anymore:
[ERROR] Failed to execute goal com.vaadin:vaadin-maven-plugin:10.0.1:package-for-production (default) on project bakery-app-starter-flow-spring: Execution default of goal com.vaadin:vaadin-maven-plugin:10.0.1:package-for-production failed: The fragment file path 'src/views/login/login-view.html' was resolved to '/Users/jotatu/dev/idea/bakery-app-starter-flow-spring/target/frontend/src/views/login/login-view.html', which either does not exist or not a file. -> [Help 1]
It looks like the reason is this commit: 9758aa7
Tried the starter at /start and running mvn install jetty:run caused:
Exception in thread "main" java.util.ServiceConfigurationError: com.vaadin.server.VaadinServiceInitListener: Provider com.vaadin.starter.bakery.CustomVaadinServiceInitListener not found
at java.util.ServiceLoader.fail(ServiceLoader.java:239)
at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:372)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at com.vaadin.server.VaadinService.init(VaadinService.java:219)
at com.vaadin.hummingbird.ext.spring.SpringAwareVaadinService.init(SpringAwareVaadinService.java:29)
at com.vaadin.johannes.BakeryServlet.createServletService(BakeryServlet.java:48)
at com.vaadin.server.VaadinServlet.init(VaadinServlet.java:105)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:640)
at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:419)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:875)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:350)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1379)
at org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp(JettyWebAppContext.java:323)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1341)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:772)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:263)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:517)
at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:398)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start(Server.java:405)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart(Server.java:372)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:460)
at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:328)
at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:170)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[WARNING]
java.lang.NoClassDefFoundError: org/eclipse/jetty/io/ManagedSelector$Accept
at org.eclipse.jetty.io.SelectorManager.accept(SelectorManager.java:215)
at org.eclipse.jetty.io.SelectorManager.accept(SelectorManager.java:199)
at org.eclipse.jetty.server.ServerConnector.accepted(ServerConnector.java:392)
at org.eclipse.jetty.server.ServerConnector.accept(ServerConnector.java:383)
at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:564)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.io.ManagedSelector$Accept
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
... 8 more
[WARNING]
java.lang.NoClassDefFoundError: org/eclipse/jetty/io/ManagedSelector$Accept
at org.eclipse.jetty.io.SelectorManager.accept(SelectorManager.java:215)
at org.eclipse.jetty.io.SelectorManager.accept(SelectorManager.java:199)
at org.eclipse.jetty.server.ServerConnector.accepted(ServerConnector.java:392)
at org.eclipse.jetty.server.ServerConnector.accept(ServerConnector.java:383)
at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:564)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
at java.lang.Thread.run(Thread.java:745)```
The user hasn’t made any changes, so “cancel” doesn’t really make much sense. “Close” would be more appropriate, as the button simply closes the detail view.
Expectation: Product is saved
Reality: "Save" is still disabled when clicked an nothing happens
In the install
phase in updateCache()
, the version number is used to lookup the cache instance to use. In the fetch
part however, matching is done against the whole caches
object which can (and will) return an older version of the cached asset once you have upgraded the service worker and used a new version number.
Both caches.match
calls should most likely be caches.open('static' + version).then(function(cache) { ...
.
This is also what the generated service worker for Expense Manager does in https://expensemanager.demo.vaadin.com/es6-bundled/service-worker.js:
event.respondWith(
caches.open(cacheName).then(function(cache) {
return cache.match(urlsToCacheKeys.get(url)).then(function(response) {
Today pom.xml contains large number of dependencies. Instead we should either depend on vaadin platform version (as soon as we have it available).
After login the displayed URL still has /login
part.
So after the page reload you will see login page again.
If you have <jvmArguments>
on the spring boot plugin, it will fork a new JVM when launching Spring Boot. If you run inside Eclipse, this means that when you terminate the mvn spring-boot:run
process, you actually only terminate the Maven process and Spring Boot keeps running in the background.
I just cloned the latest version of Bakery to test how it works with different browsers and noticed that you can't even login with IE11, it just loads blank page. If I just do maven import and spring-boot:run, is it skipping ES6 -> ES5 part? Edge, Firefox and Chrome worked ok.
Right now https://github.com/vaadin/bakery-app-starter-flow-spring/blob/master/src/main/java/com/vaadin/starter/bakery/backend/data/entity/User.java looks like we are storing passwords in plain text. This is not the case, as we are hashing the password and storing that. Storing plain passwords is a big red flag for many, so we should make it more explicit that we are actually storing hashes. Rename "password" to "passwordHash" to make this more clear.
Got exception when trying to run(mvn spring-boot:run) the application with Java 9.
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.9.RELEASE:run (default-cli) on project bakery-app-starter-flow-spring: An exception occurred while running. null: InvocationTargetException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException: javax.xml.bind.JAXBException -> [Help 1]
Click a user. Close the dialog. Click the same user again. => Dialog does not open. Click another user and the dialog opens fine. Happens with IE11.
Bakery can be installed to iPhone home screen and starts up correctly. After entering login credentials and pressing login button it opens up Safari instead of continuing to orders list view.
This happens at least in newest master, in production mode when using Chrome (OsX).
Ignoring model update for header. For security reasons, the property must have a two-way binding in the template, be annotated with @AllowClientUpdates in the model, or be defined as synchronized.
Seems to be fixed when adding @AllowClientUpdates(ClientUpdateMode.ALLOW)
above OrderCard's Model's void setHeader(OrderCardHeader header);
Expected: Either nothing happens or the action is the same as clicking "discard", i.e. the popup remains open and an "are you sure?" dialog is shown
Actual: The popup disappears and an "are you sure?" dialog is shown
This style override needs to be removed: https://github.com/vaadin/bakery-app-starter-flow-spring/blob/master/src/main/webapp/frontend/src/styles/shared-styles.html#L180-L183
There are very few exceptions when you need to do any customization to the visual styles of Vaadin elements. This is not one of them 😃
If doing mvn spring-boot:run
with an empty local Maven cache (reproducible my removing (or temporarily renaming) your ~/.m2
folder), then Maven fetches 578 different pom.xml
files. Each of those are looked up from each of the 7 maven repositories that are active for the project: vaadin-prereleases
, webjars-bintray
, vaadin-addons
, spring-milestone
, spring-snapshot
, rabbit-milestone
, and central
. The impact of this is up 4046 separate HTTP requests just to figure out which dependencies to actually download. Depending on the latency of the network connection, this can easily consume more time than actually downloading the dependencies.
The mobile view seems really crowded atm and the overflowing text in the cards make it seem unfinished. Suggested fixes:
I cloned the repo
Started with mvn clean install
used Safari for localhost:8080
user / password -> ok
Exception
2018-02-15 06:08:24.535 INFO 2124 --- [nio-8080-exec-2] c.vaadin.flow.spring.SpringInstantiator : The number of beans implementing 'I18NProvider' is 0. Cannot use Spring beans for I18N, falling back to the default behavior
2018-02-15 06:08:24.718 WARN 2124 --- [nio-8080-exec-2] c.v.flow.component.internal.UIInternals : No @Theme defined for com.vaadin.starter.bakery.ui.views.errors.NotFoundView. See 'trace' level logs for exact components missing theming.
2018-02-15 06:08:33.634 WARN 2124 --- [nio-8080-exec-4] c.v.flow.component.internal.UIInternals : No @Theme defined for com.vaadin.starter.bakery.ui.views.errors.NotFoundView. See 'trace' level logs for exact components missing theming.
2018-02-15 06:09:01.575 WARN 2124 --- [nio-8080-exec-6] c.v.flow.component.internal.UIInternals : No @Theme defined for com.vaadin.starter.bakery.ui.views.errors.NotFoundView. See 'trace' level logs for exact components missing theming.
2018-02-15 06:09:31.178 INFO 2124 --- [nio-8080-exec-6] c.vaadin.flow.spring.SpringInstantiator : The number of beans implementing 'I18NProvider' is 0. Cannot use Spring beans for I18N, falling back to the default behavior
2018-02-15 06:09:52.839 INFO 2124 --- [nio-8080-exec-7] o.h.v.i.engine.ValidatorFactoryImpl : HV000238: Temporal validation tolerance set to 0.
2018-02-15 06:09:52.884 INFO 2124 --- [nio-8080-exec-7] o.h.v.i.engine.ValidatorFactoryImpl : HV000238: Temporal validation tolerance set to 0.
2018-02-15 06:09:53.174 ERROR 2124 --- [nio-8080-exec-7] c.v.flow.router.InternalServerError : There was an exception while trying to navigate to 'vendor.bundle.js'
java.lang.NumberFormatException: For input string: "vendor.bundle.js"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0-internal]
at java.lang.Long.parseLong(Long.java:589) ~[na:1.8.0-internal]
at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0-internal]
at com.vaadin.flow.router.ParameterDeserializer.deserializeParameter(ParameterDeserializer.java:67) ~[flow-server-1.0.0.alpha20.jar:na]
at com.vaadin.flow.router.ParameterDeserializer.deserializeUrlParameters(ParameterDeserializer.java:100) ~[flow-server-1.0.0.alpha20.jar:na]
at com.vaadin.flow.router.internal.NavigationStateRenderer.lambda$handle$2(NavigationStateRenderer.java:153) ~[flow-server-1.0.0.alpha20.jar:na]
at java.util.Optional.ifPresent(Optional.java:159) ~[na:1.8.0-internal]
at com.vaadin.flow.router.internal.NavigationStateRenderer.handle(NavigationStateRenderer.java:150) ~[flow-server-1.0.0.alpha20.jar:na]
at com.vaadin.flow.router.Router.navigate(Router.java:154) [flow-server-1.0.0.alpha20.jar:na]
at com.vaadin.flow.router.Router.initializeUI(Router.java:87) [flow-server-1.0.0.alpha20.jar:na]
at com.vaadin.flow.component.UI.doInit(UI.java:195) [flow-server-1.0.0.alpha20.jar:na]
at com.vaadin.flow.server.BootstrapHandler.createAndInitUI(BootstrapHandler.java:947) [flow-server-1.0.0.alpha20.jar:na]
at com.vaadin.flow.server.BootstrapHandler.synchronizedHandleRequest(BootstrapHandler.java:329) [flow-server-1.0.0.alpha20.jar:na]
at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) [flow-server-1.0.0.alpha20.jar:na]
at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1512) [flow-server-1.0.0.alpha20.jar:na]
at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:343) [flow-server-1.0.0.alpha20.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api-3.1.0.jar:3.1.0]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:467) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:351) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:141) [spring-webmvc-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) [spring-webmvc-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52) [spring-webmvc-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) [spring-webmvc-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) [spring-webmvc-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978) [spring-webmvc-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:870) [spring-webmvc-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [javax.servlet-api-3.1.0.jar:3.1.0]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855) [spring-webmvc-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api-3.1.0.jar:3.1.0]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat-embed-websocket-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) [spring-security-web-5.0.0.RELEASE.jar:5.0.0.RELEASE]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.2.RELEASE.jar:5.0.2.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.23.jar:8.5.23]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0-internal]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0-internal]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.23.jar:8.5.23]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0-internal]
2018-02-15 06:09:53.175 WARN 2124 --- [nio-8080-exec-7] c.v.flow.component.internal.UIInternals : No @Theme defined for com.vaadin.flow.router.InternalServerError. See 'trace' level logs for exact components missing theming.
On https://bakery-flow.demo.vaadin.com/storefront , scrolling down the page on Edge is really choppy and bad.
I'm not sure if the issue is caused by Grid or Flow or some Bakery implementation detail, but the poor performance is easily demonstrable there and needs to be fixed.
To reproduce:
/error
is added by ErrorMvcAutoConfiguration
easy workaround from so
@SpringBootApplication(exclude = ErrorMvcAutoConfiguration.class)
The “new order” dialog can’t be opened again if you close it by clicking outside the dialog or by pressing Esc.
StoreFrontViewIT.editOrder() and ProductsViewIT.editProduct() fail when trying to run mvn verify -Pit
Tried to add Thread.sleep(1000) after save button is clicked, which made the tests green. So seems that it just needs to wait for a while after clicking the save button.
Disclaimer: I hope this is right repository and issue makes sense. I am sorry if it's something is barely understandable. Also, discussion in slack: https://vaadin.slack.com/archives/C6X43FE8M/p1527158187000135
Product: Vaadin 10 Beta (Java) - Full Stack App with spring from https://vaadin.com/start .
If the products or user table have many entries (e.g. 200) and you scroll down the following error happens in the browser
Version : Updated to version 10.0.0.beta10 and now it throws a proper java stacktrace.
Stacktrace:
java.lang.IllegalStateException: The number of items returned by the data provider exceeds the limit specified by the query (50). at com.vaadin.flow.data.provider.DataCommunicator$SizeVerifier.accept(DataCommunicator.java:118) ~[flow-data-1.0.0.beta10.jar:na] at java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:372) ~[na:1.8.0_172] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) ~[na:1.8.0_172] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_172] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_172] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[na:1.8.0_172] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[na:1.8.0_172] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_172] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[na:1.8.0_172] at com.vaadin.flow.data.provider.DataCommunicator.activate(DataCommunicator.java:612) ~[flow-data-1.0.0.beta10.jar:na] at com.vaadin.flow.data.provider.DataCommunicator.collectKeysToFlush(DataCommunicator.java:565) ~[flow-data-1.0.0.beta10.jar:na] at com.vaadin.flow.data.provider.DataCommunicator.flush(DataCommunicator.java:444) ~[flow-data-1.0.0.beta10.jar:na] at com.vaadin.flow.data.provider.DataCommunicator.lambda$requestFlush$2f364bb9$1(DataCommunicator.java:409) ~[flow-data-1.0.0.beta10.jar:na] at com.vaadin.flow.internal.StateTree.lambda$runExecutionsBeforeClientResponse$1(StateTree.java:340) ~[flow-server-1.0.0.beta10.jar:na] at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_172] ...
Also customer wrote: it's reproducible in the starter app products view. Increase DataGenerator#createProducts to 200 and load the view.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.