Mantis - Quercus
Viewing Issue Advanced Details
2666 major always 05-14-08 01:03 05-30-08 15:20
falko  
ferg  
normal  
closed 3.1.5  
fixed  
none    
none 3.2.0  
0002666: SilverStripe 2.2.1 installer does not work with Quercus
When trying the installer of SilverStripe 2.2.1 on Quercus 3.1.5 running inside Apache Tomcat 6.0.16 it stops with the following exception message in the log file:

com.caucho.quercus.QuercusModuleException: com.caucho.quercus.parser.QuercusParseException: /home/***/servers/apache-tomcat/webapps/quercus-3.1.5/silverstripe-v2.2.1/sapphire/core/Requirements.php:117: expected identifier at '{'. in
Requirements.php:116: foreach(array('javascript','css', 'customScript', 'customCSS') as $type) {
Requirements.php:117: if(Requirements::${$type}[$fileOrID]) {
Requirements.php:118: Requirements::$disabled[$type][$fileOrID] = Requirements::${$type}[$fileOrID];
        at com.caucho.quercus.env.Env.include(Env.java:3614)
        at com.caucho.quercus.env.Env.includeOnce(Env.java:3562)
        at com.caucho.quercus.expr.IncludeOnceExpr.eval(IncludeOnceExpr.java:88)
        at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
        at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
        at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
        at com.caucho.quercus.program.ForeachStatement.execute(ForeachStatement.java:91)
        at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
        at com.caucho.quercus.program.Function.callImpl(Function.java:354)
        at com.caucho.quercus.program.Function.call(Function.java:294)
        at com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309)
        at com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:557)
        at com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:828)
        at com.caucho.quercus.expr.StaticMethodExpr.eval(StaticMethodExpr.java:148)
        at com.caucho.quercus.expr.Expr.evalCopy(Expr.java:398)
        at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86)
        at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
        at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
        at com.caucho.quercus.program.Function.callImpl(Function.java:354)
        at com.caucho.quercus.program.Function.call(Function.java:294)
        at com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309)
        at com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:557)
        at com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:828)
        at com.caucho.quercus.expr.StaticMethodExpr.eval(StaticMethodExpr.java:148)
        at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
        at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
        at com.caucho.quercus.program.Function.callImpl(Function.java:354)
        at com.caucho.quercus.program.Function.call(Function.java:294)
        at com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309)
        at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602)
        at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104)
        at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
        at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
        at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:78)
        at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
        at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
        at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:239)
        at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:70)
        at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119)
        at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:163)
        at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:353)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)


We patched this with the following code:
    if(Requirements::$javascript[$fileOrID]) {
        Requirements::$disabled[javascript][$fileOrID] = Requirements::$javascript[$fileOrID];
        unset(Requirements::$javascript[$fileOrID]);
    }
    if(Requirements::$css[$fileOrID]) {
        Requirements::$disabled[css][$fileOrID] = Requirements::$css[$fileOrID];
        unset(Requirements::$css[$fileOrID]);
    }
    if(Requirements::$customScript[$fileOrID]) {
        Requirements::$disabled[customScript][$fileOrID] = Requirements::$customScript[$fileOrID];
        unset(Requirements::$customScript[$fileOrID]);
    }
    if(Requirements::$customCSS[$fileOrID]) {
        Requirements::$disabled[customCSS][$fileOrID] = Requirements::$customCSS[$fileOrID];
        unset(Requirements::$customCSS[$fileOrID]);
    }

Then these message showed up in the browser:
/home/falko/servers/apache-tomcat/webapps/quercus-3.1.5/silverstripe-v2.2.1/sapphire/parsers/BBCodeParser.php:6: Warning: java.io.FileNotFoundException: /home/falko/servers/apache-tomcat/webapps/quercus-3.1.5/silverstripe-v2.2.1/sapphire/BBCodeParser.ini (No such file or directory) [parse_ini_file]
/home/falko/servers/apache-tomcat/webapps/quercus-3.1.5/silverstripe-v2.2.1/sapphire/core/ClassInfo.php:49: Warning: ClassInfo::dataClassesFor() no parents for Member
/home/falko/servers/apache-tomcat/webapps/quercus-3.1.5/silverstripe-v2.2.1/sapphire/core/model/DataObject.php:1334: Fatal Error: DataObject::buildSQL: Can't find data classes (classes linked to tables) for Member

Notes
(0003124)
ferg   
05-30-08 15:20   
php/096v