Hello All, 

I have a created a special Build Job. Jenkins > New job > Build Special 
project > Ok. This creates few other child projects as FreeStyleProject.

I have a  main.jelly file in the 
src/main/resources/com/myproject/SpecialMainProject . I would like to list 
down all child projects in the Special Project Page (similar to upstream or 
downstream list). 

I created xmlns:local="local" namespace using upstream-downstream.jelly 
file as reference. 

When I create my special project, I could see all my child projects as 
below:



The problem now is , when I restart Jenkins, all child jobs looks like show 
below and I get the below exception:



*Exception:*


Apr 22, 2015 1:24:28 PM hudson.ExpressionFactory2$JexlExpression evaluate
WARNING: Caught exception evaluating: job.buildStatusUrl in 
/jenkins/job/Special/. Reason: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor208.invoke(Unknown Source)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at 
org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
    at 
org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
    at 
org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
    at 
org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
    at 
org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
    at 
org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
    at 
org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
    at 
org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
    at 
hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)
    at 
org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61)
    at 
org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsString(ExpressionSupport.java:46)
    at 
org.apache.commons.jelly.expression.CompositeExpression.evaluateAsString(CompositeExpression.java:256)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.buildAttributes(ReallyStaticTagLibrary.java:111)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:95)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
    at 
org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:81)
    at 
org.apache.commons.jelly.impl.StaticTagScript.run(StaticTagScript.java:124)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
    at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
    at 
org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
    at 
org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
    at 
org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
    at 
org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
    at 
org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
    at 
org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:674)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:239)
    at 
org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:685)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:587)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:218)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1074)
    at 
hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at 
hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
    at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
    at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
    at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146)
    at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at org.mortbay.jetty.Server.handle(Server.java:285)
    at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
    at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
    at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
    at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)



*Caused by: java.lang.NullPointerException    at 
hudson.model.AbstractProject.getLastBuild(AbstractProject.java:1089)    at 
hudson.model.AbstractProject.getLastBuild(AbstractProject.java:152)    at 
hudson.model.Job.getIconColor(Job.java:989)*
    at hudson.model.AbstractProject.getIconColor(AbstractProject.java:735)
    at hudson.model.Job.getBuildStatusUrl(Job.java:1210)
    ... 106 more

Apr 22, 2015 1:24:28 PM hudson.ExpressionFactory2$JexlExpression evaluate
WARNING: Caught exception evaluating: h.getRelativeLinkTo(job) in 
/jenkins/job/Special/. Reason: java.lang.NullPointerException
java.lang.NullPointerException
    at hudson.model.AbstractItem.getShortUrl(AbstractItem.java:405)
    at hudson.Functions.getRelativeLinkTo(Functions.java:1014)
    at sun.reflect.GeneratedMethodAccessor63.invoke(Unknown Source)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at 
org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258)
    at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:104)
    at 
org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
    at 
org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
    at 
org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
    at 
org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
    at 
hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)
    at 
org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61)
    at 
org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsString(ExpressionSupport.java:46)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.buildAttributes(ReallyStaticTagLibrary.java:111)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:95)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
    at 
org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:81)
    at 
org.apache.commons.jelly.impl.StaticTagScript.run(StaticTagScript.java:124)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
    at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
    at 
org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
    at 
org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
    at 
org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
    at 
org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
    at 
org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
    at 
org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:674)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:239)
    at 
org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:685)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:587)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:218)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1074)
    at 
hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at 
hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
    at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
    at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
    at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146)
    at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at org.mortbay.jetty.Server.handle(Server.java:285)
    at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
    at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
    at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
    at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

Apr 22, 2015 1:24:28 PM hudson.ExpressionFactory2$JexlExpression evaluate
WARNING: Caught exception evaluating: job.fullDisplayName in 
/jenkins/job/Special/. Reason: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor209.invoke(Unknown Source)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at 
org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
    at 
org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
    at 
org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
    at 
org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
    at 
org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
    at 
org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
    at 
org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
    at 
org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
    at 
hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:58)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
    at 
org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:81)
    at 
org.apache.commons.jelly.impl.StaticTagScript.run(StaticTagScript.java:124)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
    at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
    at 
org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
    at 
org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
    at 
org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
    at 
org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
    at 
org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
    at 
org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:674)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:239)
    at 
org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:685)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:587)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:218)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1074)
    at 
hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at 
hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
    at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
    at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
    at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146)
    at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at org.mortbay.jetty.Server.handle(Server.java:285)
    at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
    at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
    at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
    at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

*Caused by: java.lang.NullPointerException    at 
hudson.model.AbstractItem.getFullDisplayName(AbstractItem.java:324)*
    ... 103 more

Apr 22, 2015 1:24:28 PM hudson.ExpressionFactory2$JexlExpression evaluate



*WARNING: Caught exception evaluating:     
h.breakableString(h.escape(value)) in /jenkins/job/Special/. Reason: 
java.lang.NullPointerExceptionjava.lang.NullPointerException*
    at hudson.Functions.breakableString(Functions.java:1831)
    at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at 
org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258)
    at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:104)
    at 
org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
    at 
org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
    at 
org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
    at 
org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
    at 
hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)
    at 
org.apache.commons.jelly.impl.ExpressionScript.run(ExpressionScript.java:66)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
    at 
org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:81)
    at 
org.apache.commons.jelly.impl.StaticTagScript.run(StaticTagScript.java:124)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
    at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
    at 
org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
    at 
org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
    at 
org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    at 
org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
    at 
org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
    at 
org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
    at 
org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
    at 
org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:674)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:239)
    at 
org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:685)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:587)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:218)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1074)
    at 
hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at 
hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
    at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
    at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
    at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146)
    at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at org.mortbay.jetty.Server.handle(Server.java:285)
    at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
    at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
    at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
    at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)




*main.jelly*
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" 
xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" 
xmlns:f="/lib/form" xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project" * 
xmlns:local="local"* >
 














*<d:taglib uri="local"> <d:tag name="list">       <j:if 
test="${!empty(items)}">        <h2>${title}</h2>        <ul 
style="list-style-type: none;">          <j:forEach var="item" 
items="${items}">          <j:if 
test="${h.hasPermission(item,item.READ)}">            <li>              
<t:jobLink job="${item}"/>                          </li>            
</j:if>          </j:forEach>        </ul>      </j:if>    </d:tag>  
</d:taglib>*
  <j:if test="${it.supportsMakeDisabled()}">
    <st:include page="makeDisabled.jelly" />
  </j:if>

  <p:projectActionFloatingBox />

  <table style="margin-top: 1em; margin-left:1em;">

    <j:forEach var="act" items="${it.prominentActions}">
      <t:summary icon="${act.iconFileName}" href="${act.urlName}">
        ${act.displayName}
      </t:summary>
    </j:forEach>
    <t:summary icon="folder.png" href="ws/" permission="${it.WORKSPACE}">
      ${%Workspace}
    </t:summary>
    
    <t:summary 
icon="${rootURL}/plugin/sdom-connect/images/48x48/folder-downloads.png" 
href="downloadTestArtifacts/" permission="${it.WORKSPACE}" >
      ${%Download Test Artifacts}
    </t:summary>
       
     <t:summary icon="folder.png" href="codeCoverage/" 
permission="${it.WORKSPACE}">
      ${%Code Coverage}
    </t:summary>
   
    <t:artifactList caption="${%Last Successful Artifacts}"
        build="${it.lastSuccessfulBuild}" baseURL="lastSuccessfulBuild/"
        permission="${it.lastSuccessfulBuild.ARTIFACTS}"/>

    <t:summary icon="notepad.png" href="changes">
      ${%Recent Changes}
    </t:summary>

    <j:set var="tr" value="${it.lastCompletedBuild.testResultAction}"/>
    <j:if test="${tr!=null}">
      <j:if test="${tr.class.name != 
'hudson.tasks.test.AggregatedTestResultPublisher$TestResultAction'}">
        <t:summary icon="clipboard.png">
          <a href="lastCompletedBuild/${tr.urlName}/" class="model-link 
inside">${%Latest Test Result}</a>
          <t:test-result it="${tr}" />
        </t:summary>
      </j:if>
    </j:if>

    <j:forEach var="atr" items="${it.lastCompletedBuild.allActions}">
      <j:if test="${atr!=null}">
        <j:if test="${atr.class.name == 
'hudson.tasks.test.AggregatedTestResultPublisher$TestResultAction'}">
          <t:summary icon="clipboard.png">
            <a href="lastCompletedBuild/${atr.urlName}/" class="model-link 
inside">${%Latest Aggregated Test Result}</a>
            <t:test-result it="${atr}" />
          </t:summary>
        </j:if>
      </j:if>
    </j:forEach>
    
  </table>
 
* <local:list title="${%Special Child Projects}" items="${it.children}" />*
  <!-- up="true" -->
 <!--  <j:forEach var="child" items="${it.children}">
    <t:summary icon="folder.png" href="codeCoverage/" 
permission="${it.WORKSPACE}">
      ${child}
    </t:summary>
  </j:forEach> -->
  
  <!-- merge fragments from the actions -->
  <j:forEach var="a" items="${it.allActions}">
    <st:include page="jobMain.jelly" it="${a}" optional="true" />
  </j:forEach>

  <p:upstream-downstream />
  

</j:jelly>





*SpecialMainProject.java:*package com.myproject;

public class SpecialMainProject extends Project<SpecialMainProject, 
SpecialMainBuild>
        implements TopLevelItem, SCMedItem, CommonConstants {
    private String componentName;
    private String componentVariant;
    private String componentRevision;
    private final String className = "special";
    private List<FreeStyleProject> children = new 
ArrayList<FreeStyleProject>();

    private ListView currentView;

    private static final Logger LOGGER = 
Logger.getLogger(SpecialMainProject.class
            .getName());

    public SpecialMainProject(String name) {
        this(Jenkins.getInstance(), name);
    }

    protected SpecialMainProject(ItemGroup parent, String name) {
        super(parent, name);
    }

    @Override
    public DescriptorImpl getDescriptor() {
        return DESCRIPTOR;
    }

    @Extension(ordinal = 1000)
    public static final DescriptorImpl DESCRIPTOR = new DescriptorImpl();

    @Override
    protected Class<SpecialMainBuild> getBuildClass() {
        return SpecialMainBuild.class;
    }

    @Override
    public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp)
            throws IOException, ServletException, FormException {

        JSONObject submittedForm = req.getSubmittedForm();
        JSONObject scmValues = new JSONObject();
        JSONObject hudsonModel = new JSONObject();

        hudsonModel.accumulate("hudson-model-ParametersDefinitionProperty",
                new JSONObject());
        hudsonModel.accumulate("stapler-class-bag", "true");
        submittedForm.accumulate("properties", hudsonModel);

        this.componentName = submittedForm.getString("componentName");
        this.componentVariant = submittedForm.getString("componentVariant");
        this.componentRevision = 
submittedForm.getString("componentRevision");

        super.doConfigSubmit(req, rsp);
        updateTransientActions();
        
    }

    public static final class DescriptorImpl extends 
AbstractProjectDescriptor {
        private final String SPECIAL_RADIO_BUTTON_NAME = "Build a Special 
Project";

        /**
         * gets the display name
         */
        public String getDisplayName() {
            return SPECIAL_RADIO_BUTTON_NAME;
        }

        /**
         * returns the new instance of SpecialMainProject
         * 
         * @param parent
         *            parent object
         * @param name
         *            job name
         */
        public SpecialMainProject newInstance(ItemGroup parent, String 
name) {
            return new SpecialMainProject(parent, name);
        }

    }

    @Override
    public synchronized void save() throws IOException {












































*        super.save();        final String newName = 
componentName+"_"+componentVariant;        // Create as many as Free Style 
Projects.        if (componentName != null && componentVariant != null && 
componentRevision != null && Jenkins.getInstance().getItem(newName) == null 
&& Jenkins.getInstance().getItem(newName+"_1") == null) {                
        FreeStyleProject childProject = 
Jenkins.getInstance().createProject(FreeStyleProject.class,newName);        
    FreeStyleProject childProject1 = 
Jenkins.getInstance().createProject(FreeStyleProject.class,newName+"_1");    
        Collection<View> views = Jenkins.getInstance().getViews();        
                for (View view : views) {                if 
(view.contains(this) && !view.getDisplayName().equalsIgnoreCase("All")){    
                System.out.println("This view has Special project : "+ 
view.getDisplayName());                    if(view instanceof ListView)    
                {                        currentView = (ListView) view;    
                }                }            }                          
                                try{                TimerTrigger trigger = 
new TimerTrigger(TRIGGER_NIGHTLY);                TimerTrigger trigger1 = 
new TimerTrigger(TRIGGER_NIGHTLY);                                    
childProject.addTrigger(trigger);                
childProject1.addTrigger(trigger1);                                    } 
catch (ANTLRException e) {                LOGGER.log(Level.SEVERE,        
                "Exception during adding trigger" + 
e.getLocalizedMessage());            }                                    
if(currentView != null){                currentView.add(childProject);    
            currentView.add(childProject1);            }                    
    childProject.save();            childProject1.save();                
        children.add(childProject);            
children.add(childProject1);        }*
        
        
    }

    public List<FreeStyleProject> getChildren() {
        return children;
    }

    public String getComponentName() {
        return componentName;
    }

    public void setComponentName(String componentName) {
        this.componentName = componentName;
    }

    public String getComponentVariant() {
        return componentVariant;
    }

    public void setComponentVariant(String componentVariant) {
        this.componentVariant = componentVariant;
    }
    
    public void setChildren(List<FreeStyleProject> children) {
        this.children = children;
    }

    @Override
    public synchronized void delete() throws IOException, 
InterruptedException {
        super.delete();
        
        for (FreeStyleProject kid : children) {
            kid.delete();
        }
        children.clear();
    }
}



*Steps that I took to solve the exception: (but nothing worked) :*1.In 
main.jelly file, added a new name space as : *xmlns:local1="/lib/myproject" 
*

2. Changed the d:taglib as  *<d:taglib uri="/lib/myproject">* and  updated 
*<local1:list 
title="${%Special Child Projects}" items="${it.children}" />*

3. In src/main/resources , created *lib* and *lib/myproject* folders and *one 
empty taglib text file* 

4. Created* MyprojectTagLib *Interface (extends TypedTagLibrary) in 
*src/main/java/lib/myproject* and* MyprojectTagLib.gdsl*

similar to these: lib.jenkins.ProjectTagLib.java and 
lib.jenkins.ProjectTagLib.gdsl

5. Added maven dependency :

<dependency>
    <groupId>org.kohsuke.stapler</groupId>
    <artifactId>stapler-jelly</artifactId>
    <version>1.231</version>
</dependency>
<dependency>
    <groupId>org.kohsuke.stapler</groupId>
    <artifactId>stapler</artifactId>
    <version>1.231</version>
</dependency>

While debugging, at AbstractItem.java:324, I got to see that the* parent *was 
null (after Jenkins restart). 

I am not sure what is wrong  and what I am missing.

Could anyone help me with this issue? 

Thank you in advance!

P.S. Jenkins  version: <version>1.532</version>

Regards
Vinodhini

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/a1e268bf-ec5a-4f86-adee-bab43098cccb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to