Issue : Hung threads seen. Looking at the log, it was hung when the application tried to call TridionLinkResolver.resolveLink method.

I don't have any such dynamic Components; therefore I am wondering in what scenario will this synchronize method be called.

private synchronized String resolveLink(LinkStrategy linkStrategy, int publicationId, int itemId, String uri)
{
    Link link = linkStrategy.getLink(publicationId, itemId, uri);
    return link.isResolved() ? link.getURL() : "";
}

Error seen :

0000002e ThreadMonitor W   WSVR0605W: Thread "WebContainer : 15" (000000cc) has been active for 662692 milliseconds and may be hung.  There is/are 24 thread(s) in total in the server that may be hung.
at com.sdl.webapp.tridion.TridionLinkResolver.resolveLink(TridionLinkResolver.java:106)
at com.sdl.webapp.tridion.TridionLinkResolver.resolveLink(TridionLinkResolver.java:92)
at com.sdl.webapp.tridion.TridionLinkResolver.resolveLink(TridionLinkResolver.java:50)
at com.sdl.webapp.tridion.TridionLinkResolver.resolveLink(TridionLinkResolver.java:44)
at com.sdl.webapp.tridion.fieldconverters.ComponentLinkFieldConverter.createComponentLink(ComponentLinkFieldConverter.java:77)
at com.sdl.webapp.tridion.fieldconverters.ComponentLinkFieldConverter.getFieldValues(ComponentLinkFieldConverter.java:45)
at com.sdl.webapp.tridion.fieldconverters.AbstractFieldConverter.getFieldValue(AbstractFieldConverter.java:16)
at com.sdl.webapp.tridion.SemanticFieldDataProviderImpl.getFieldData(SemanticFieldDataProviderImpl.java:95)
at com.sdl.webapp.common.impl.mapping.SemanticMapperImpl$1.doWith(SemanticMapperImpl.java:72)
at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:603)
at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:583)
at com.sdl.webapp.common.impl.mapping.SemanticMapperImpl.createEntity(SemanticMapperImpl.java:51)
at com.sdl.webapp.tridion.fieldconverters.EmbeddedFieldConverter.getFieldValue(EmbeddedFieldConverter.java:67)
at com.sdl.webapp.tridion.fieldconverters.EmbeddedFieldConverter.getFieldValue(EmbeddedFieldConverter.java:46)
at com.sdl.webapp.tridion.SemanticFieldDataProviderImpl.getFieldData(SemanticFieldDataProviderImpl.java:95)
at com.sdl.webapp.common.impl.mapping.SemanticMapperImpl$1.doWith(SemanticMapperImpl.java:72)
at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:603)
at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:583)
at com.sdl.webapp.common.impl.mapping.SemanticMapperImpl.createEntity(SemanticMapperImpl.java:51)
at com.sdl.webapp.tridion.EntityBuilderImpl.createEntity(EntityBuilderImpl.java:105)
at com.sdl.webapp.tridion.ModelBuilderPipeline.createEntityModel(ModelBuilderPipeline.java:39)
  • Since you’re using an “ancient” version of DXA, I assume you have been running it for quite a while without issues? Can you provide more context of when the problem occurs? Have you tried if the problem still occurs with a newer version of DXA (there have been significant refactorings in particularly DXA Java; version 1.2 was the first public release of DXA Java). – Rick Pannekoek Aug 8 at 15:19

Link resolver doesn't mean you have dynamic components, simply checks the relations between componentes and the pages they are used in and published to.

If you have a component included in one page, then checks the (linked) pages where other componentes linked to that principal component may be used and published. To

So check "circular" references in component to other components, that may be causing that endless linkresolver.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.