Very long startup delay

I’m somewhat new to Vaadin and everything is going great so far except my application start time. I’m running Vaadin 7.3.9 on the Google App Engine dev server on my PC. When the app starts there is a ~9s delay here in the startup log:

INFO: Atmosphere is using org.atmosphere.cpr.DefaultAnnotationProcessor for processing annotation
Jan 28, 2015 12:12:37 AM org.atmosphere.cpr.DefaultAnnotationProcessor configure
INFO: AnnotationProcessor class org.atmosphere.cpr.DefaultAnnotationProcessor$BytecodeBasedAnnotationProcessor being used
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework autoDetectWebSocketHandler
INFO: Auto detecting WebSocketHandler in /WEB-INF/classes/
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework initWebSocket

From what little I have been able to find on the web this doesn’t seem normal. Plus when I deploy to GAE this delay becomes unacceptably long.

Can anyone shed some light on this? When I run the Quicktickets Dashboard demo I don’t see anything related to the Atmosphere Framework int the log and I can’t figure out what the difference is between that project and mine. I have scoured the web and remain perplexed.

The full log is as follows:
Jan 28, 2015 12:12:28 AM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO: Successfully processed C:\Dev\workspace\Servcd\war\WEB-INF/appengine-web.xml
Jan 28, 2015 12:12:28 AM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO: Successfully processed C:\Dev\workspace\Servcd\war\WEB-INF/web.xml
Jan 28, 2015 12:12:28 AM com.google.appengine.tools.development.SystemPropertiesManager setSystemProperties
INFO: Overwriting system property key ‘java.util.logging.config.file’, value ‘C:\Dev\eclipse\plugins\com.google.appengine.eclipse.sdkbundle_1.9.15\appengine-java-sdk-1.9.15\config\sdk\logging.properties’ with value ‘WEB-INF/logging.properties’ from ‘C:\Dev\workspace\Servcd\war\WEB-INF\appengine-web.xml’
Jan 28, 2015 12:12:29 AM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
Jan 28, 2015 12:12:29 AM com.google.apphosting.utils.jetty.JettyLogger info
INFO: jetty-6.1.x
Jan 28, 2015 12:12:31 AM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Started SelectChannelConnector@127.0.0.1:8888
Jan 28, 2015 12:12:31 AM com.google.appengine.tools.development.AbstractModule startup
INFO: Module instance default is running at http://localhost:8888/
Jan 28, 2015 12:12:31 AM com.google.appengine.tools.development.AbstractModule startup
INFO: The admin console is running at http://localhost:8888/_ah/admin
Jan 28, 2015 12:12:31 AM com.google.appengine.tools.development.DevAppServerImpl doStart
INFO: Dev App Server is now running
Jan 28, 2015 12:12:37 AM com.vaadin.server.DefaultDeploymentConfiguration checkProductionMode
WARNING:

Vaadin is running in DEBUG MODE.
Add productionMode=true to web.xml to disable debug features.
To show debug window, add ?debug to your application URL.

Jan 28, 2015 12:12:37 AM org.atmosphere.cpr.AtmosphereFramework addAtmosphereHandler
INFO: Installed AtmosphereHandler com.vaadin.server.communication.PushHandler$1 mapped to context-path: /*
Jan 28, 2015 12:12:37 AM org.atmosphere.cpr.AtmosphereFramework addAtmosphereHandler
INFO: Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.server.communication.PushHandler$1
Jan 28, 2015 12:12:37 AM org.atmosphere.cpr.AtmosphereFramework doInitParams
WARNING: SessionSupport error. Make sure you define org.atmosphere.cpr.SessionSupport as a listener in web.xml instead
Jan 28, 2015 12:12:37 AM org.atmosphere.cpr.AtmosphereFramework autoConfigureService
INFO: Atmosphere is using org.atmosphere.cpr.DefaultAnnotationProcessor for processing annotation
Jan 28, 2015 12:12:37 AM org.atmosphere.cpr.DefaultAnnotationProcessor configure
INFO: AnnotationProcessor class org.atmosphere.cpr.DefaultAnnotationProcessor$BytecodeBasedAnnotationProcessor being used
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework autoDetectWebSocketHandler
INFO: Auto detecting WebSocketHandler in /WEB-INF/classes/
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework initWebSocket
INFO: Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework configureAtmosphereInterceptor
INFO: Installing Default AtmosphereInterceptor
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework newAInterceptor
INFO: org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework newAInterceptor
INFO: org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response’s Headers Interceptor
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework newAInterceptor
INFO: org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework newAInterceptor
INFO: org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework newAInterceptor
INFO: org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework newAInterceptor
INFO: org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework newAInterceptor
INFO: org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework newAInterceptor
INFO: org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework newAInterceptor
INFO: org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework newAInterceptor
INFO: org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework newAInterceptor
INFO: org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework configureAtmosphereInterceptor
INFO: Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them.
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Broadcaster Polling Wait Time 100
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Shared ExecutorService supported: true
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Messaging Thread Pool Size: Unlimited
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Async I/O Thread Pool Size: 200
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: HttpSession supported: true
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Atmosphere is using DefaultAtmosphereObjectFactory for dependency injection and object creation
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Atmosphere is using async support: org.atmosphere.container.JettyAsyncSupportWithWebSocket running under container: Google App Engine Development/1.9.15 with WebSocket enabled.
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework info
INFO: Atmosphere Framework 2.1.2.vaadin6 started.
Jan 28, 2015 12:12:46 AM org.atmosphere.cpr.AtmosphereFramework interceptor
INFO: Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT
Jan 28, 2015 12:12:46 AM com.google.appengine.api.datastore.dev.LocalDatastoreService init
INFO: Local Datastore initialized:
Type: High Replication
Storage: C:\Dev\workspace\Servcd\war\WEB-INF\appengine-generated\local_db.bin
Jan 28, 2015 12:12:46 AM com.google.appengine.api.datastore.dev.LocalDatastoreService load
INFO: Time to load datastore: 48 ms
Jan 28, 2015 12:12:48 AM org.hibernate.validator.internal.util.Version
INFO: HV000001: Hibernate Validator 4.3.2.Final

Hi Mark,

Yes, the delay is a bug. The Atmosphere library we use to implement push communications tries to scan the classpatch searching for certain annotations; we don’t use those annotations so the whole search is useless. AFAIK this should be fixed in Vaadin 7.4.0, sorry about the inconvenience.

Thanks, at least now I can stop banging my head against the wall.

If I don’t need push how can I disable it and stop if from loading?

N/m I figured it out pretty quickly, just needed to remove the push dependency.