[ 
https://issues.apache.org/jira/browse/SHINDIG-1893?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13651649#comment-13651649
 ] 

Abhinav Singhvi commented on SHINDIG-1893:
------------------------------------------

Once this exception comes sometime default template processor stuck in some 
sort of infinite loop : 

                at 
java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryAcquireShared(ReentrantReadWriteLock.java:486)
                at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1281)
                at 
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:731)
                at 
net.sf.ehcache.store.chm.SelectableConcurrentHashMap$Segment.get(SelectableConcurrentHashMap.java:871)
                at 
net.sf.ehcache.store.chm.SelectableConcurrentHashMap.get(SelectableConcurrentHashMap.java:360)
                at net.sf.ehcache.store.MemoryStore.get(MemoryStore.java:300)
                at 
net.sf.ehcache.store.MemoryOnlyStore.get(MemoryOnlyStore.java:106)
                at 
net.sf.ehcache.Cache.searchInStoreWithoutStats(Cache.java:2071)
                at net.sf.ehcache.Cache.get(Cache.java:1589)
                at 
org.apache.shindig.common.cache.ehcache.EhConfiguredCache.getElement(EhConfiguredCache.java:54)
                at 
org.apache.shindig.expressions.juel.JuelProvider$1.get(JuelProvider.java:68)
                at de.odysseus.el.tree.TreeStore.get(TreeStore.java:59)
                at 
de.odysseus.el.TreeValueExpression.<init>(TreeValueExpression.java:69)
                at 
de.odysseus.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:314)
                at 
de.odysseus.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:81)
                at 
org.apache.shindig.expressions.Expressions.parse(Expressions.java:115)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.evaluate(DefaultTemplateProcessor.java:484)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processAttributes(DefaultTemplateProcessor.java:417)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElementInner(DefaultTemplateProcessor.java:354)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElement(DefaultTemplateProcessor.java:245)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processNode(DefaultTemplateProcessor.java:153)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processChildNodes(DefaultTemplateProcessor.java:130)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElementInner(DefaultTemplateProcessor.java:356)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElement(DefaultTemplateProcessor.java:245)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processNode(DefaultTemplateProcessor.java:153)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processChildNodes(DefaultTemplateProcessor.java:130)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElementInner(DefaultTemplateProcessor.java:356)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElement(DefaultTemplateProcessor.java:245)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processNode(DefaultTemplateProcessor.java:153)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processChildNodes(DefaultTemplateProcessor.java:130)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElementInner(DefaultTemplateProcessor.java:356)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElement(DefaultTemplateProcessor.java:245)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processNode(DefaultTemplateProcessor.java:153)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processChildNodes(DefaultTemplateProcessor.java:130)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElementInner(DefaultTemplateProcessor.java:356)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElement(DefaultTemplateProcessor.java:245)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processNode(DefaultTemplateProcessor.java:153)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processChildNodes(DefaultTemplateProcessor.java:130)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElementInner(DefaultTemplateProcessor.java:356)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElement(DefaultTemplateProcessor.java:245)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processNode(DefaultTemplateProcessor.java:153)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processChildNodes(DefaultTemplateProcessor.java:130)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElementInner(DefaultTemplateProcessor.java:356)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElement(DefaultTemplateProcessor.java:245)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processNode(DefaultTemplateProcessor.java:153)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processChildNodes(DefaultTemplateProcessor.java:130)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElementInner(DefaultTemplateProcessor.java:356)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElement(DefaultTemplateProcessor.java:245)
                at 
org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processNode(DefaultTemplateProcessor.java:153)

                
> Null pointer exception in gadget template processing
> ----------------------------------------------------
>
>                 Key: SHINDIG-1893
>                 URL: https://issues.apache.org/jira/browse/SHINDIG-1893
>             Project: Shindig
>          Issue Type: Bug
>          Components: Java
>    Affects Versions: 2.5.0-beta5
>            Reporter: Marshall Shi
>         Attachments: template.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> During our gadget development, several gadgets are referring to the same 
> gadget template. The rendering of those gadgets is problematic sometimes.
> When the problem occur, the Java stack trace look like this:
> Stack Dump = java.lang.NullPointerException 
>        at org.apache.xerces.dom.ParentNode.nodeListItem(Unknown Source) 
>        at org.apache.xerces.dom.ParentNode.item(Unknown Source) 
>        at 
> org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processChildNodes(DefaultTemplateProcessor.java:134)
>  
>        at 
> org.apache.shindig.gadgets.templates.tags.TemplateBasedTagHandler.processTemplate(TemplateBasedTagHandler.java:68)
>  
>        at 
> org.apache.shindig.gadgets.templates.tags.TemplateBasedTagHandler.process(TemplateBasedTagHandler.java:58)
>  
>        at 
> org.apache.shindig.gadgets.templates.XmlTemplateLibrary$LibraryTagHandler.process(XmlTemplateLibrary.java:305)
>  
>        at 
> org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElementInner(DefaultTemplateProcessor.java:341)
>  
>        at 
> org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processElement(DefaultTemplateProcessor.java:246)
>  
>        at 
> org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processNode(DefaultTemplateProcessor.java:154)
>  
>        at 
> org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processChildNodes(DefaultTemplateProcessor.java:134)
>  
>        at 
> org.apache.shindig.gadgets.templates.DefaultTemplateProcessor.processTemplate(DefaultTemplateProcessor.java:126)
>  
>        at 
> org.apache.shindig.gadgets.rewrite.TemplateRewriter.executeTemplates(TemplateRewriter.java:357)
>  
>        at 
> org.apache.shindig.gadgets.rewrite.TemplateRewriter.rewriteImpl(TemplateRewriter.java:177)
>  
>        at 
> org.apache.shindig.gadgets.rewrite.TemplateRewriter.rewrite(TemplateRewriter.java:129)
>  
>        at 
> org.apache.shindig.gadgets.render.HtmlRenderer.render(HtmlRenderer.java:88) 
>        at 
> org.apache.shindig.gadgets.render.Renderer.render(Renderer.java:101) 
>        at 
> org.apache.shindig.gadgets.servlet.GadgetRenderingServlet.render(GadgetRenderingServlet.java:112)
>  
>        at 
> org.apache.shindig.gadgets.servlet.GadgetRenderingServlet.doGet(GadgetRenderingServlet.java:90)
>  
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:575) 
> It should be a concurrent issue of xerces API when parsing the template. 
> Proposed fix is to add synchronized to the key XML element.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to