Mantis - Quercus
Viewing Issue Advanced Details
1714 crash always 04-27-07 01:59 04-27-07 11:32
salishev  
nam  
normal  
closed 3.1.1  
fixed  
none    
none 3.1.1  
0001714: preg_grep("//", NULL) throws unexpected NullPointerException
I've checked with latest available resin-3.1.s070425

preg_grep("//", NULL) throws unexpected NullPointerException.
The behavior differs from the php 5.1.6 behavior which just returns NULL.
The problems makes impossible using dokuwiki-2006-11-06 (dokuwiki.org) over Resin.

500 Servlet Exception
java.lang.NullPointerException
    at com.caucho.quercus.lib.RegexpModule.preg_grep(RegexpModule.java:1164)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:589)
    at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:105)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:614)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:487)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:473)
    at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
    at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:125)
    at com.caucho.quercus.expr.EqExpr.evalBoolean(EqExpr.java:64)
    at com.caucho.quercus.expr.AndExpr.evalBoolean(AndExpr.java:83)
    at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:74)
    at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:239)
    at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:61)
    at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:115)
    at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:125)
    at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:341)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:263)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:477)
    at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:600)
    at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:522)
    at java.lang.Thread.run(Thread.java:620)

The minimal test case is attached.
 C:\\resin-3.1.s070425\\webapps\\ROOT\\test_preg_grep.php [^] (115 bytes) 04-27-07 01:59

Notes
(0001866)
salishev   
04-27-07 08:25   
The problem is the () inside character class [] means not the capturing group but a pair of bracket chars.
(0001867)
salishev   
04-27-07 08:30   
The problem is a regression from resin-3.1.s070319
(0001871)
nam   
04-27-07 11:32   
php/151b