Hi Violeta

Hi,

2015-03-16 15:07 GMT+02:00 Thusitha Thilina Dayaratne <thusit...@wso2.com>:
>
> >>> ERROR {org.apache.catalina.core.ApplicationDispatcher} -
> >>> Servlet.service() for servlet bridgeservlet threw exception
> >>> java.lang.NullPointerException
> >>> at
> >>>
> >
>
org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536)
> >>> at
> > org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
> >>> at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
> >>> at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
> >>> at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
> >
> > <snip/>
> >
> >>>> I can't figure out the reason to get this NullPointerException.
> >>>> Can someone help me out?
> >
> >>> If we knew which version of Tomcat 8 you were using, someone could
look
> >>> at the relevant source code to try to figure out what was going on.
> > I'm using tomcat version *8.0.20*
>
> >>Browse to the sourcecode of v8.0.20 of tomcat here:
>
> >>     public TldResourcePath getTldResourcePath(String uri) {
> >>     return getOptions().getTldCache().getTldResourcePath(uri);
> >>     }
> Thanks for the quick response
>
> >> Obviously either getOptions() or getTldCache() is returning null.
>
> I debug the code as you suggest and found that getTldCache() is null.
> In the code As I understand there are 2 point which set the *tldCache*
>  variable
> one is the setTldCache() method and other is
> public static TldCache getInstance(ServletContext servletContext) {
>
>     if (servletContext == null) {
>         throw new IllegalArgumentException(Localizer.getMessage(
>
"org.apache.jasper.compiler.TldCache.servletContextNull"));
>     }
>     return (TldCache)
> servletContext.getAttribute(SERVLET_CONTEXT_ATTRIBUTE_NAME);
> }



>>If you can attach a debugger try to see whether the code below is invoked:

>>org.apache.jasper.servlet.JasperInitializer.onStartup(Set<Class<?>>,
>>ServletContext) {
>>.....
>>        context.setAttribute(TldCache.SERVLET_CONTEXT_ATTRIBUTE_NAME,
>>                new TldCache(context, scanner.getUriTldResourcePathMap(),
>>                        scanner.getTldResourcePathTaglibXmlMap()));
>>
>>}
I have checked that as well. But that method didn't get hot when I'm
debugging the source.
what could be the reason?

Thanks
Regards
Thusitha


On Mon, Mar 16, 2015 at 6:59 PM, Violeta Georgieva <miles...@gmail.com>
wrote:

> Hi,
>
> 2015-03-16 15:07 GMT+02:00 Thusitha Thilina Dayaratne <thusit...@wso2.com
> >:
> >
> > >>> ERROR {org.apache.catalina.core.ApplicationDispatcher} -
> > >>> Servlet.service() for servlet bridgeservlet threw exception
> > >>> java.lang.NullPointerException
> > >>> at
> > >>>
> > >
> >
>
> org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536)
> > >>> at
> > > org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
> > >>> at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
> > >>> at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
> > >>> at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
> > >
> > > <snip/>
> > >
> > >>>> I can't figure out the reason to get this NullPointerException.
> > >>>> Can someone help me out?
> > >
> > >>> If we knew which version of Tomcat 8 you were using, someone could
> look
> > >>> at the relevant source code to try to figure out what was going on.
> > > I'm using tomcat version *8.0.20*
> >
> > >>Browse to the sourcecode of v8.0.20 of tomcat here:
> >
> > >>     public TldResourcePath getTldResourcePath(String uri) {
> > >>     return getOptions().getTldCache().getTldResourcePath(uri);
> > >>     }
> > Thanks for the quick response
> >
> > >> Obviously either getOptions() or getTldCache() is returning null.
> >
> > I debug the code as you suggest and found that getTldCache() is null.
> > In the code As I understand there are 2 point which set the *tldCache*
> >  variable
> > one is the setTldCache() method and other is
> > public static TldCache getInstance(ServletContext servletContext) {
> >
> >     if (servletContext == null) {
> >         throw new IllegalArgumentException(Localizer.getMessage(
> >
> "org.apache.jasper.compiler.TldCache.servletContextNull"));
> >     }
> >     return (TldCache)
> > servletContext.getAttribute(SERVLET_CONTEXT_ATTRIBUTE_NAME);
> > }
>
>
>
> If you can attach a debugger try to see whether the code below is invoked:
>
> org.apache.jasper.servlet.JasperInitializer.onStartup(Set<Class<?>>,
> ServletContext) {
> .....
>         context.setAttribute(TldCache.SERVLET_CONTEXT_ATTRIBUTE_NAME,
>                 new TldCache(context, scanner.getUriTldResourcePathMap(),
>                         scanner.getTldResourcePathTaglibXmlMap()));
>
> }
>
>
> Regards,
> Violeta
>
> >
> >  from this 2 methods I couldn't find any point that setTldCache() is been
> > used. So I think getInstance() is the method that is been used.
> >
> > Should I manually set the value o tldCache?
> >
> > Thanks
> > Regards
> > /Thusitha
>



-- 
Thusitha Dayaratne
Software Engineer
WSO2 Inc. - lean . enterprise . middleware |  wso2.com

Mobile  +94712756809
Blog      alokayasoya.blogspot.com
About    http://about.me/thusithathilina

Reply via email to