Mantis - Quercus
Viewing Issue Advanced Details
4561 block always 05-17-11 08:25 05-20-11 04:08
andrew_miah  
domdorn  
normal  
resolved  
no change required  
none    
none  
0004561: NullPointerException in compile Quercus Page
In Resin Pro 4.0.18. A null pointer exception occurs when processing a PHP page, the exception does not occur when using uncompiled pages.
500 Servlet Exception

[show] java.lang.NullPointerException

java.lang.NullPointerException
    at com.caucho.quercus.env.ProSymbolMap$SymbolEnvVar.set(ProSymbolMap.java:131)
    at _quercus._php._store._prepend__php.execute(home/amiah/java/resin/webapps/store-customer/php/store/prepend.php:21)
    at com.caucho.quercus.env.Env.executePage(Env.java:3940)
    at com.caucho.quercus.env.Env.include(Env.java:5421)
    at _quercus._php._includes._common__php$fun_splitCats_28.call(home/amiah/java/resin/webapps/store-customer/php/includes/common.php:599)
    at com.caucho.quercus.function.LazyFunction.call(LazyFunction.java:128)
    at _quercus._php._store._cells__php$fun_getSeeAlsoBlock_9.call(home/amiah/java/resin/webapps/store-customer/php/store/cells.php:465)
    at com.caucho.quercus.function.LazyFunction.call(LazyFunction.java:128)
    at _quercus._php._store._product__php.execute(home/amiah/java/resin/webapps/store-customer/php/store/product.php:87)
    at com.caucho.quercus.env.Env.executePageTop(Env.java:3949)
    at com.caucho.quercus.env.Env.executeTop(Env.java:3892)
    at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:188)
    at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:594)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:96)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109)
    at com.tcm.appstore.server.web.session.customer.CustomerLoginFilter.doFilter(CustomerLoginFilter.java:116)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89)
    at com.tcm.appstore.server.web.session.UrlSecurityFilter.doFilter(UrlSecurityFilter.java:74)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89)
    at com.tcm.appstore.server.web.security.BasicAuthFilter.doFilter(BasicAuthFilter.java:39)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89)
    at com.caucho.server.webapp.WebAppListenerFilterChain.doFilter(WebAppListenerFilterChain.java:114)
    at com.caucho.server.cache.ProxyCacheFilterChain.doRequestCacheable(ProxyCacheFilterChain.java:245)
    at com.caucho.server.cache.ProxyCacheFilterChain.doFilter(ProxyCacheFilterChain.java:188)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:156)
    at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:95)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:287)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:792)
    at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:730)
    at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:689)
    at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:669)
    at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:617)
    at com.caucho.network.listen.KeepaliveRequestTask.doTask(KeepaliveRequestTask.java:73)
    at com.caucho.network.listen.ConnectionReadTask.runThread(ConnectionReadTask.java:98)
    at com.caucho.network.listen.ConnectionReadTask.run(ConnectionReadTask.java:81)
    at com.caucho.network.listen.KeepaliveRequestTask.run(KeepaliveRequestTask.java:60)
    at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164)
    at com.caucho.env.thread.ResinThread.run(ResinThread.java:130)

Resin/4.0.18 Server: 'default'
 test.php [^] (248 bytes) 05-19-11 06:34

Notes
(0005250)
andrew_miah   
05-17-11 08:37   
Line 21 in prepend.php is the final line in this block:

$request = quercus_servlet_request();
$contextPath = $request->getContextPath();
$host = $_SERVER["SERVER_NAME"];
$port = $_SERVER["SERVER_PORT"];
$site_base_url = "http://$host:$port".$contextPath."/php/store"; [^]
(0005258)
domdorn   
05-19-11 06:33   
php/0c6g
(0005259)
domdorn   
05-19-11 06:38   
sorry, I couldn't reproduce this with resin pro 4.0.18 and the latest trunk.

Could you please verify this by using the attached test file?
Also please make sure, that the problem does not originate by
one of your filters by creating a empty web-application and trying it there.

You have at least 4 filters in your webapp that "could" mess with the HttpServletRequest. Please check them.

    at com.tcm.appstore.server.web.session.customer.CustomerLoginFilter.doFilter(CustomerLoginFilter.java:116)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at com.tcm.appstore.server.web.session.UrlSecurityFilter.doFilter(UrlSecurityFilter.java:74)
    at com.tcm.appstore.server.web.security.BasicAuthFilter.doFilter(BasicAuthFilter.java:39)
(0005269)
andrew_miah   
05-20-11 03:19   
Hello Dominic,
Since upgrading to 4.0.18 and adding pro.jar, this issue seems to be resolved. If it reappears I'll return to the issue.

Thanks,
Andrew.