Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 349415 - [TextSizeDetermination] Occasional IllegalStateException in TextSizeStorageUtil
Summary: [TextSizeDetermination] Occasional IllegalStateException in TextSizeStorageUtil
Status: RESOLVED FIXED
Alias: None
Product: RAP
Classification: RT
Component: RWT (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 1.5   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-15 06:35 EDT by Rüdiger Herrmann CLA
Modified: 2012-10-03 06:25 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rüdiger Herrmann CLA 2011-06-15 06:35:46 EDT
During load tests, the exception shown below occured two times (with the same font). The setup did simulate 500 concurrent users working on a simplistic RWT application served by Jetty.

--- Stacktrace ---
Exception in thread "qtp158311540-17" java.lang.IllegalStateException: Font not probed yet: 1|Verdana, "Lucida Sans", Arial, Helvetica, sans-serif|12|0|
	at org.eclipse.rwt.internal.textsize.TextSizeStorageUtil.checkFontExists(TextSizeStorageUtil.java:56)
	at org.eclipse.rwt.internal.textsize.TextSizeStorageUtil.store(TextSizeStorageUtil.java:33)
	at org.eclipse.rwt.internal.textsize.MeasurementOperator.storeTextMeasurement(MeasurementOperator.java:165)
	at org.eclipse.rwt.internal.textsize.MeasurementOperator.readMeasuredTextSizes(MeasurementOperator.java:134)
	at org.eclipse.rwt.internal.textsize.MeasurementOperator.handleMeasurementResults(MeasurementOperator.java:52)
	at org.eclipse.rwt.internal.textsize.MeasurementListener.handleMeasurementResults(MeasurementListener.java:62)
	at org.eclipse.rwt.internal.textsize.MeasurementListener.afterPhase(MeasurementListener.java:35)
	at org.eclipse.rwt.internal.lifecycle.PhaseListenerManager.notifyAfterPhase(PhaseListenerManager.java:87)
	at org.eclipse.rwt.internal.lifecycle.PhaseExecutor.execute(PhaseExecutor.java:35)
	at org.eclipse.rwt.internal.lifecycle.SimpleLifeCycle.execute(SimpleLifeCycle.java:87)
	at org.eclipse.rwt.internal.service.LifeCycleServiceHandler.runLifeCycle(LifeCycleServiceHandler.java:79)
	at org.eclipse.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:58)
	at org.eclipse.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:47)
	at org.eclipse.rwt.internal.service.ServiceManager$HandlerDispatcher.service(ServiceManager.java:35)
	at org.eclipse.rwt.internal.engine.RWTDelegate.doPost(RWTDelegate.java:46)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:538)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1352)
	at org.eclipse.rwt.internal.engine.RWTClusterSupport.doFilter(RWTClusterSupport.java:32)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:474)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:934)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:404)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:869)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114)
	at org.eclipse.jetty.server.Server.handle(Server.java:341)
	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589)
	at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1065)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:823)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220)
	at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:515)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)
	at java.lang.Thread.run(Unknown Source)
Comment 1 Ivan Furnadjiev CLA 2012-10-03 06:25:29 EDT
The MeasurementListener#handleMeasurementResults has been moved from afterPhase to beforePhase in bug 353053. Another bug that could affect the problem is bug 372960. I believe that with both bugs fixed the issue is gone. Please reopen if you get the exception again.