StringResourceModel.getString() calls MessageFormat.format(). Unfortunately,
NumberFormat.getInstance(), which is called indirectly, uses a Hashtable
resulting in lots of contention. Not sure why NumberFormat isnt using a
ConcurrentMap instead... but any ideas on how to get around this?

If there isn't a way around this, is StringResourceModel only used when
explicitly init'd by client app, or is wicket using it internally as well?
In our app we do use StringResourceModel quite a bit (it's nicely done), but
not with numbers...

thanks

-nikita



Stacks at 19:12


http-8080-19 [BLOCKED] CPU time: 0:23
java.util.Hashtable.get(Object)
java.text.NumberFormat.getInstance(Locale, int)
java.text.NumberFormat.getInstance(Locale)
java.text.MessageFormat.subformat(Object[], StringBuffer, FieldPosition,
List)
java.text.MessageFormat.format(Object, StringBuffer, FieldPosition)
java.text.Format.format(Object)
org.apache.wicket.model.StringResourceModel.getString()
org.apache.wicket.model.StringResourceModel.load()
org.apache.wicket.model.StringResourceModel.load()
org.apache.wicket.model.LoadableDetachableModel.getObject()
org.apache.wicket.model.StringResourceModel$AssignmentWrapper.getObject()
org.apache.wicket.model.StringResourceModel$AssignmentWrapper.getObject()
org.apache.wicket.Component.getDefaultModelObject()
org.apache.wicket.Component.getDefaultModelObjectAsString()
org.apache.wicket.markup.html.basic.Label.onComponentTagBody(MarkupStream,
ComponentTag)
org.apache.wicket.Component.renderComponent(MarkupStream)
org.apache.wicket.markup.html.WebComponent.onRender(MarkupStream)
org.apache.wicket.Component.render(MarkupStream)
org.apache.wicket.MarkupContainer.renderNext(MarkupStream)
org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupStream,
ComponentTag)
org.apache.wicket.MarkupContainer.renderAssociatedMarkup(String, String)
org.apache.wicket.markup.html.panel.Panel.onComponentTagBody(MarkupStream,
ComponentTag)
org.apache.wicket.Component.renderComponent(MarkupStream)
org.apache.wicket.MarkupContainer.onRender(MarkupStream)
org.apache.wicket.Component.render(MarkupStream)
org.apache.wicket.MarkupContainer.renderNext(MarkupStream)
org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupStream,
ComponentTag)
org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupStream,
ComponentTag)
org.apache.wicket.Component.renderComponent(MarkupStream)
org.apache.wicket.MarkupContainer.onRender(MarkupStream)
org.apache.wicket.Component.render(MarkupStream)
org.apache.wicket.markup.repeater.AbstractRepeater.renderChild(Component)
org.apache.wicket.markup.repeater.AbstractRepeater.onRender(MarkupStream)
org.apache.wicket.Component.render(MarkupStream)
org.apache.wicket.MarkupContainer.renderNext(MarkupStream)
org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupStream,
ComponentTag)
org.apache.wicket.MarkupContainer.renderAssociatedMarkup(String, String)
org.apache.wicket.markup.html.panel.Panel.onComponentTagBody(MarkupStream,
ComponentTag)
org.apache.wicket.Component.renderComponent(MarkupStream)
org.apache.wicket.MarkupContainer.onRender(MarkupStream)
org.apache.wicket.Component.render(MarkupStream)
org.apache.wicket.MarkupContainer.renderNext(MarkupStream)
org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupStream,
ComponentTag)
org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupStream,
ComponentTag)
org.apache.wicket.Component.renderComponent(MarkupStream)
org.apache.wicket.MarkupContainer.onRender(MarkupStream)
org.apache.wicket.Component.render(MarkupStream)
org.apache.wicket.MarkupContainer.autoAdd(Component, MarkupStream)
org.apache.wicket.markup.resolver.MarkupInheritanceResolver.resolve(MarkupContainer,
MarkupStream, ComponentTag)
org.apache.wicket.markup.resolver.ComponentResolvers.resolve(Application,
MarkupContainer, MarkupStream, ComponentTag)
org.apache.wicket.MarkupContainer.renderNext(MarkupStream)
org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupStream,
ComponentTag)
org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupStream,
ComponentTag)
org.apache.wicket.Component.renderComponent(MarkupStream)
org.apache.wicket.MarkupContainer.onRender(MarkupStream)
org.apache.wicket.Component.render(MarkupStream)
org.apache.wicket.MarkupContainer.autoAdd(Component, MarkupStream)
org.apache.wicket.markup.resolver.MarkupInheritanceResolver.resolve(MarkupContainer,
MarkupStream, ComponentTag)
org.apache.wicket.markup.resolver.ComponentResolvers.resolve(Application,
MarkupContainer, MarkupStream, ComponentTag)
org.apache.wicket.MarkupContainer.renderNext(MarkupStream)
org.apache.wicket.MarkupContainer.renderAll(MarkupStream)
org.apache.wicket.Page.onRender(MarkupStream)
org.apache.wicket.Component.render(MarkupStream)
org.apache.wicket.Page.renderPage()
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.respond(RequestCycle)
org.apache.wicket.request.target.coding.HybridUrlCodingStrategy$HybridBookmarkablePageRequestTarget.respond(RequestCycle)
org.apache.wicket.request.AbstractRequestCycleProcessor.respond(RequestCycle)
org.apache.wicket.RequestCycle.processEventsAndRespond()
org.apache.wicket.RequestCycle.step()
org.apache.wicket.RequestCycle.steps()
org.apache.wicket.RequestCycle.request()
org.apache.wicket.protocol.http.WicketFilter.doGet(HttpServletRequest,
HttpServletResponse)
org.apache.wicket.protocol.http.WicketFilter.doFilter(ServletRequest,
ServletResponse, FilterChain)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ServletRequest,
ServletResponse)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ServletRequest,
ServletResponse)
org.apache.catalina.core.StandardWrapperValve.invoke(Request, Response)
org.apache.catalina.core.StandardContextValve.invoke(Request, Response)
org.apache.catalina.core.StandardHostValve.invoke(Request, Response)
org.apache.catalina.valves.ErrorReportValve.invoke(Request, Response)
org.apache.catalina.valves.AccessLogValve.invoke(Request, Response)
org.apache.catalina.core.StandardEngineValve.invoke(Request, Response)
org.apache.catalina.connector.CoyoteAdapter.service(Request, Response)
org.apache.coyote.http11.Http11Processor.process(Socket)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Socket)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run()
java.lang.Thread.run()



-- 
---------------------------------------------------
Nikita Tovstoles
cell: +1-650-996-8173
---------------------------------------------------

Reply via email to