Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 6054 [Resin] minor always 05-05-17 11:02 05-05-17 11:02 Reporter: wileysaw Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.47 Version: Resolution: open Projection: none ETA: none Summary: mod_caucho drops request parameters when used behind a SSL termination Description: Project that involves both Resin 4.x and WebSphere App Server 8.5.x In front of both servers we have an IBM HTTP server configured with IBM WebSphere Plug-in and mod_caucho. We have noticed that as long as mod_caucho is active, requests sent to WebSphere are stripped from parameters: That means that a system out on HttpServletRequest.getParameterNames() in the WebSphere application, would return "" as long as mod_caucho is loaded in the front-end HTTP server. mod_caucho would intefere in this scenario INTERNET->HTTPS:443->SSL OFFLOADER->DMZ1->HTTP:80->HTTP SEVER (+mod_caucho + was_plugin)->DMZ2->HTTP:9080->WEBSPHERE SERVER (receives HTTP request with HTTP missing parameters) mod_caucho would NOT intefere in this scenario: INTERNET->HTTPS:443->SSL OFFLOADER->DMZ1->HTTPS:443->HTTP SEVER (+mod_caucho + was_plugin)->DMZ2->HTTP:9443->WEBSPHERE SERVER (receives HTTP request with HTTP missing parameters) Steps To Reproduce: Additional Additionally, I have verified that removing the mod_caucho and replacing it with a standard Information: reverse proxy allowed me to correctly route request to both WebSphere and Resin Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 6053 [Resin] crash random 05-02-17 00:09 05-02-17 00:09 Reporter: direk Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product 4.0.51 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Resin database damage, cause the jvm-app-0.log very large, and then cause disk full Description: This is a random issue, Maybe One Week once. Our OS is Solaris SunOS 5.10 sparcv9, and JDK version is 1.8.0_121. When thing happen, the jvm-app-0.log is very large. The resin seems has infinite loop in read his database. The jvm-app-0.log is attached. Steps To Reproduce: Additional Information: Attached Files: jvm-app-0.log (21 KB) 05-02-17 00:09 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 6050 [Resin] minor always 04-18-17 13:35 04-18-17 13:35 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: deployment issue from console Description: (rep by Shinomiya Nobuaki) Uploading the WAR file from the management console (/ resin-admin) and deploying it A file like "php 1826770987.tmp" is generated under the context root. Class files etc are not generated. Resin 4.0.49 was able to deploy from the management console. Is it a defect of Resin? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 6048 [Resin] Reporter: gattu Assigned To: major always 03-31-17 03:31 04-12-17 23:41 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.50 Version: Resolution: open Projection: none ETA: none Summary: Session persistence and deserialization Description: I am trying to achieve fault tolerance using session persistence for my app. The setup is nginx -> resin(with 3 serveres). I login to my app and gets connected to one of the server, on successful login I bounce the app and just refresh the page.. and I see I am logged out with exception pasted in additional information below. In short it says : java.io.StreamCorruptedException: invalid type code: 00 Steps To Reproduce: Additional [14:38:25.536] {resin-port-dev:8081-93} java.io.StreamCorruptedException: invalid type code: 00 Information: at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1563) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422) at com.caucho.server.session.JavaSessionDeserializer.readObject(JavaSessionDeserializer.java:68) at com.caucho.server.session.SessionImpl.load(SessionImpl.java:810) at com.caucho.server.session.SessionImpl.load(SessionImpl.java:747) at com.caucho.server.session.SessionManager.createSession(SessionManager.java:1444) at com.caucho.server.http.AbstractCauchoRequest.createSession(AbstractCauchoRequest.java:720) at com.caucho.server.http.AbstractCauchoRequest.getSession(AbstractCauchoRequest.java:645) at com.caucho.server.http.AbstractCauchoRequest.getSession(AbstractCauchoRequest.java:620) at org.apache.struts.action.ActionServlet.processLocale(ActionServlet.java:1759) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1499) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:491) at javax.servlet.http.HttpServlet.service(HttpServlet.java:120) at javax.servlet.http.HttpServlet.service(HttpServlet.java:97) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) 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:290) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:838) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1353) at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1309) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1293) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1201) at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:997) at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117) at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169) at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3818 [Quercus] minor always 12-17-09 18:13 04-06-17 21:43 Reporter: nam Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: (boolean) is not assignable to ArrayValue [array_map] - Mediawiki 1.15.1 Description: (rep by rogargon) I'm trying to install MediaWiki 1.15.1 over Glassfish 2.1 using Quercus 4.0.2. The deployment of Quercus worked smoothly and I have been able to get the PHP is working page. Then, after unpacking MediaWiki, the MediaWiki config page told me that everything seemed OK: * PHP 5.2.0 installed * Found database drivers for: MySQL PostgreSQL * PHP server API is apache; ok, using pretty URLs (index.php/Page_Title) * Have XML / Latin1-UTF-8 conversion support. * Warning: A value for session.save_path has not been set in PHP.ini. If the default value causes problems with saving session data, set it to a valid path which is read/write/execute for the user your web server is running under. * PHP's memory_limit is 512M. * APC installed * Found GNU diff3: /usr/bin/diff3. * Found GD graphics library built-in, image thumbnailing will be enabled if you enable uploads. * Installation directory: /opt/glassfish/domains/domain1/applications/j2eemodules/php/mediawiki * Script URI path: /php/mediawiki * Installing MediaWiki with php file extensions * Environment checked. You can install MediaWiki. Though it also shows a warning that seems to be related to the problems that arise after submitting the config form: /opt/glassfish/domains/domain1/applications/j2eemodules/php/mediawiki/config/index.php:2152: Warning: '' (boolean) is not assignable to ArrayValue [array_map] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 6043 [Resin] minor always 03-20-17 12:12 03-20-17 12:12 Reporter: ferg Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: dynamic host issue with resin-admin Description: (rep by Shinomiya Nobuaki) [Environment] Resin Version : 4.0.49 We have a clustered environment which consist of 5 servers(triad and dynamic). APserver1&65288;app-0&65289; APserver2&65288;app-1&65289; APserver3&65288;app-2&65289; APserver4&65288;dyn-0&65289; APserver5&65288;dyn-1&65289; The following configurations are made on all servers. * remote_admin_enable : true * web_admin_external : true [Issue] When login to the resin-admin of app-0/app-1/app-2 and access from the drop-down menu at the upper left to refer to each server info, it shows all server info correctly. Whereas the resin-admin of dyn-0/dyn-1, the following issue occurs : * resin-admin site of dyn-0 cannot refer to dyn-1's server info with the message "Can not contact dyn-1" * resin-admin site of dyn-1 cannot refer to dyn-0's server info with the message "Can not contact dyn-0" Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 6040 [Resin] feature always 03-13-17 16:41 03-13-17 16:41 Reporter: wileysaw Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.51 Version: Product Build: Resolution: open Projection: none ETA: none Summary: RPM upgrade overwrites config and forces start of Resin server Description: Allow RPM to be supplied current config file & control over starting of server Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 6032 [Quercus] minor always Reporter: FranckSerot Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Date Submitted: 01-11-17 06:00 Last Update: 01-11-17 06:00 Projection: none ETA: none Summary: [quercus / dokuwiki] quercus doesn't support sprite used in a dokuwiki project Description: Hi, I try to test the project quercus with a dokuwiki project. Please follow the process to reproduce the problem : - clone the project from https://github.com/ieugen/quercus-sample. [^] - update the quercus version from 4.0.39 to 4.0.45 (refer to the latest version available on https://mvnrepository.com/artifact/com.caucho/quercus). [^] - start the project quercus-sample on a tomcat 8 - download the project dokuwiki with a microApache server from https://download.dokuwiki.org/. [^] - import the directory dokuwiki in the directory quercus-sample/src/main/webapp - restart the project quercus-sample on a tomcat 8 The dokuwiki starts correctly but the some images inside a sprite are not correctly used with the following import in the page /doku.php?id=wiki:welcome. <link rel="stylesheet" type="text/css" href="/quercussample/lib/exe/css.php?t=dokuwiki&tseed=7cc4ff12b304fe598f0b6ed669f8eb51"/> Actual result : #dokuwiki__pagetools ul li a.edit { background-position: right -90px * 1; => invalid property value } or #dokuwiki__pagetools ul li a.edit:before { margin-top: -90px * 12; => invalid property value } The first image of the sprite is always used on the final page. :-( Expected result : #dokuwiki__pagetools ul li a.edit { background-position: right -90px; } or #dokuwiki__pagetools ul li a.edit:before { margin-top: -1080px; } Best regards, Franck Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 6026 [Resin] major always 12-14-16 08:33 12-14-16 08:33 Reporter: paru Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.49 Version: Product Build: Resolution: open Projection: none ETA: none Summary: rpm installation issue on RHEL 7 Description: We're a resin professional customer. When installing resin on RHEL 7.2 via yum, it issues the following: warning: %post(resin-pro-4.0.49-1.x86_64) scriptlet failed, exit status 127 Non-fatal POSTIN scriptlet failure in rpm package resin-pro-4.0.49-1.x86_64 What are the consequences of this warning? We also noticed that all resin files got installed with root ownership. In the matter of separation we'd rather appreciate an own user/group. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 6018 [Quercus] minor always Reporter: mavens Assigned To: Date Submitted: 10-18-16 23:20 Last Update: 10-18-16 23:20 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: filter not implemented: FILTER_SANITIZE_NUMBER_INT (0)' has not been implemented Description: Getting below error while trying to use quercus for wordpress. This causing me not able to edit any article existing article and create new article in wordpress. Help me out of this issue. I have using recent version of quercus-4.0.39 and migrated my french blog recently. can be entered in the bugtracking system at http://bugs.caucho.com [^] type Exception report message `filter not implemented: FILTER_SANITIZE_NUMBER_INT (0)' has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtracking system at http://bugs.caucho.com [^] description The server encountered an internal error that prevented it from fulfilling this request. exception com.caucho.quercus.UnimplementedException: `filter not implemented: FILTER_SANITIZE_NUMBER_INT (0)' has not been implemented. Steps To Reproduce: Additional exception Information: com.caucho.quercus.UnimplementedException: `filter not implemented: FILTER_SANITIZE_NUMBER_INT (0)' has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtracking system at http://bugs.caucho.com [^] com.caucho.quercus.lib.filter.FilterModule.getFilter(FilterModule.java:226) com.caucho.quercus.lib.filter.FilterModule.filter_input(FilterModule.java:140) sun.reflect.GeneratedMethodAccessor298.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) com.caucho.quercus.expr.Expr.evalValue(Expr.java:484) com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:69) com.caucho.quercus.program.Function.callImpl(Function.java:420) com.caucho.quercus.program.Function.callMethod(Function.java:456) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) com.caucho.quercus.expr.ThisMethodExpr.evalImpl(ThisMethodExpr.java:131) com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:88) com.caucho.quercus.expr.AbstractMethodExpr.evalCopy(AbstractMethodExpr.java:57) com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:420) com.caucho.quercus.program.Function.callMethod(Function.java:456) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) com.caucho.quercus.expr.ThisMethodExpr.evalImpl(ThisMethodExpr.java:131) com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:88) com.caucho.quercus.expr.AbstractMethodExpr.evalCopy(AbstractMethodExpr.java:57) com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:420) com.caucho.quercus.program.Function.callMethod(Function.java:456) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) com.caucho.quercus.env.CallbackObjectMethod.call(CallbackObjectMethod.java:137) com.caucho.quercus.lib.FunctionModule.call_user_func_array(FunctionModule.java:111) sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:103) com.caucho.quercus.statement.DoStatement.execute(DoStatement.java:73) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:420) com.caucho.quercus.program.Function.call(Function.java:327) com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) com.caucho.quercus.env.Env.executePage(Env.java:4312) com.caucho.quercus.env.Env.include(Env.java:5920) com.caucho.quercus.env.Env.includeOnce(Env.java:5873) com.caucho.quercus.expr.FunIncludeOnceExpr.eval(FunIncludeOnceExpr.java:92) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) com.caucho.quercus.env.Env.executePage(Env.java:4312) com.caucho.quercus.env.Env.include(Env.java:5920) com.caucho.quercus.expr.FunIncludeExpr.eval(FunIncludeExpr.java:90) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.SwitchStatement.execute(SwitchStatement.java:99) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) com.caucho.quercus.env.Env.executePageTop(Env.java:4323) com.caucho.quercus.env.Env.executeTop(Env.java:4268) com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:212) com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:606) javax.servlet.http.HttpServlet.service(HttpServlet.java:847) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause com.caucho.quercus.QuercusExecutionException: com.caucho.quercus.UnimplementedException `filter not implemented: FILTER_SANITIZE_NUMBER_INT (0)' has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtracking system at http://bugs.caucho.com [^] com.caucho.quercus.lib.filter.FilterModule.getFilter(FilterModule.java:226) com.caucho.quercus.lib.filter.FilterModule.filter_input(FilterModule.java:140) sun.reflect.GeneratedMethodAccessor298.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) com.caucho.quercus.expr.Expr.evalValue(Expr.java:484) com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:69) com.caucho.quercus.program.Function.callImpl(Function.java:420) com.caucho.quercus.program.Function.callMethod(Function.java:456) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) com.caucho.quercus.expr.ThisMethodExpr.evalImpl(ThisMethodExpr.java:131) com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:88) com.caucho.quercus.expr.AbstractMethodExpr.evalCopy(AbstractMethodExpr.java:57) com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:420) com.caucho.quercus.program.Function.callMethod(Function.java:456) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) com.caucho.quercus.expr.ThisMethodExpr.evalImpl(ThisMethodExpr.java:131) com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:88) com.caucho.quercus.expr.AbstractMethodExpr.evalCopy(AbstractMethodExpr.java:57) com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:420) com.caucho.quercus.program.Function.callMethod(Function.java:456) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) com.caucho.quercus.env.CallbackObjectMethod.call(CallbackObjectMethod.java:137) com.caucho.quercus.lib.FunctionModule.call_user_func_array(FunctionModule.java:111) sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:103) com.caucho.quercus.statement.DoStatement.execute(DoStatement.java:73) .do_action(/home/centos/zilikoo/test/apache-tomcat-7.0.69/webapps/blog/wpincludes/plugin.php:521) .(/home/centos/zilikoo/test/apache-tomcat-7.0.69/webapps/blog/wp-admin/post.php:62) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.69 logs. Apache Tomcat/7.0.69 Attached quercus-issue1.png (88 KB) Files: 10-18-16 23:20 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 6016 [Quercus] major random Date Submitted: 09-12-16 07:01 Last Update: 09-12-16 07:01 Reporter: davet Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: RegexpModule$RegexpCacheItem.get(RegexpModule.java:2471) hangs Description: I am running some quercus scripts in parallel (with an Executor), and it intermittently hangs. Running a threaddump on the process shows a bunch of threads blocked: "pool-1-thread-36" 0000059 prio=5 os_prio=0 tid=0x0000000022e8b000 nid=0x3424 waiting for monitor entry [0x000000001e92e000] java.lang.Thread.State: BLOCKED (on object monitor) at com.caucho.quercus.lib.regexp.RegexpModule$RegexpCacheItem.get(RegexpModule.java:2471) - waiting to lock <0x0000000775f47fc8> (a com.caucho.quercus.lib.regexp.RegexpModule$RegexpCacheItem) at com.caucho.quercus.lib.regexp.RegexpModule.createRegexpImpl(RegexpModule.java:262) at com.caucho.quercus.lib.regexp.RegexpModule.createRegexp(RegexpModule.java:247) at com.caucho.quercus.lib.regexp.RegexpModule.createRegexpArray(RegexpModule.java:281) at com.caucho.quercus.marshal.RegexpArrayMarshal.marshal(RegexpArrayMarshal.java:56) Steps To Reproduce: Additional Information: Attached threaddump.local.txt (63 KB) Files: 09-12-16 07:01 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 6012 [Quercus] major always 06-16-16 11:11 06-16-16 11:11 Reporter: matthiasblaesing Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: [PATCH] Adjust mktime implementation to align with PHP implementation Description: The mktime implementation tries to implement the logic as defined by the reference implementation. This fails for some negative values + spills. The idea of my change: Use a GregorianCalendar from the JDK, in the lentient mode it mimiks mktime better than the current implementation. ------------------ Test.php -----------------<?php // Test correct mktime behaviour, it is asumed, that strftime and mktime both // work in "default" timezone print "========== Test Spill ========\n"; $tests = array( // Testdata: hours, minutes, seconds, month, day, year array(22, 21, 1, 4, 21, 2016, "2016-04-21 22:21:01"), // Simple case array(30, 0, 0, 4, 21, 2016, "2016-04-22 06:00:00"), // Rollover hour array(-1, 0, 0, 4, 21, 2016, "2016-04-20 23:00:00"), // Negative hour array(-25, 0, 0, 4, 21, 2016, "2016-04-19 23:00:00"), // Negative hour > 24 array(2, 67, 0, 4, 21, 2016, "2016-04-21 03:07:00"), // Rollover minute array(2, -5, 0, 4, 21, 2016, "2016-04-21 01:55:00"), // Negative minute array(2, -125, 0, 4, 21, 2016, "2016-04-20 23:55:00"), // Negative minute > 120 array(2, 0, 65, 4, 21, 2016, "2016-04-21 02:01:05"), // Rollover second array(2, 1, -30, 4, 21, 2016, "2016-04-21 02:00:30"), // Negative minute array(2, 1, -150, 4, 21, 2016, "2016-04-21 01:58:30"), // Negative minute > 120 array(2, 0, 0, 4, 31, 2016, "2016-05-01 02:00:00"), // Rollover day array(2, 0, 0, 4, -1, 2016, "2016-03-30 02:00:00"), // Negative day array(2, 0, 0, 4, -56, 2016, "2016-02-04 02:00:00"), // Negative day > 30 array(2, 0, 0, 13, 4, 2016, "2017-01-04 02:00:00"), // Rollover month array(2, 0, 0, -1, 4, 2016, "2015-11-04 02:00:00"), // Negative month array(2, 0, 0, -13, 4, 2016, "2014-11-04 02:00:00"), // Negative month > 12 ); foreach($tests as $test) { $mktime = mktime($test[0], $test[1], $test[2], $test[3], $test[4], $test[5]); $timeString = strftime("%Y-%m-%d %H:%M:%S", $mktime); printf("mktime(%d, %d, %d, %d, %d, %d)\t=> Should be: %s -- IS: %s (%s)\n", $test[0], $test[1], $test[2], $test[3], $test[4], $test[5], $test[6], $timeString, $timeString == $test[6] ? "OK" : "BROKEN" ); } // gmmktime needs to be tested seperatedly, as strftime can't be used print "\n========= Test gmmktime ========\n"; // This timestamp is the unixtimestamp for 2016-06-16T17:49:14+00:00: 1466099354 print (gmmktime(17, 49, 14, 6, 16, 2016) == 1466099354 ? 'WORKS' : 'FAILS'); print "\n\n"; ------------------ Output for php 7 -----------------========== Test Spill ======== mktime(22, 21, 1, 4, 21, 2016) => Should be: 2016-04-21 22:21:01 -- IS: 2016-04-21 22:21:01 (OK) mktime(30, 0, 0, 4, 21, 2016) => Should be: 2016-04-22 06:00:00 -- IS: 2016-04-22 06:00:00 (OK) mktime(-1, 0, 0, 4, 21, 2016) => Should be: 2016-04-20 23:00:00 -- IS: 2016-04-20 23:00:00 (OK) mktime(-25, 0, 0, 4, 21, 2016) => Should be: 2016-04-19 23:00:00 -- IS: 2016-04-19 23:00:00 (OK) mktime(2, 67, 0, 4, 21, 2016) => Should be: 2016-04-21 03:07:00 -- IS: 2016-04-21 03:07:00 (OK) mktime(2, -5, 0, 4, 21, 2016) => Should be: 2016-04-21 01:55:00 -- IS: 2016-04-21 01:55:00 (OK) mktime(2, -125, 0, 4, 21, 2016) => Should be: 2016-04-20 23:55:00 -- IS: 2016-04-20 23:55:00 (OK) mktime(2, 0, 65, 4, 21, 2016) => Should be: 2016-04-21 02:01:05 -- IS: 2016-04-21 02:01:05 (OK) mktime(2, 1, -30, 4, 21, 2016) => Should be: 2016-04-21 02:00:30 -- IS: 2016-04-21 02:00:30 (OK) mktime(2, 1, -150, 4, 21, 2016) => Should be: 2016-04-21 01:58:30 -- IS: 2016-04-21 01:58:30 (OK) mktime(2, 0, 0, 4, 31, 2016) => Should be: 2016-05-01 02:00:00 -- IS: 2016-05-01 02:00:00 (OK) mktime(2, 0, 0, (OK) mktime(2, 0, 0, 02:00:00 (OK) mktime(2, 0, 0, 02:00:00 (OK) mktime(2, 0, 0, (OK) mktime(2, 0, 0, 02:00:00 (OK) 4, -1, 2016) => Should be: 2016-03-30 02:00:00 -- IS: 2016-03-30 02:00:00 4, -56, 2016) => Should be: 2016-02-04 02:00:00 -- IS: 2016-02-04 13, 4, 2016) => Should be: 2017-01-04 02:00:00 -- IS: 2017-01-04 -1, 4, 2016) => Should be: 2015-11-04 02:00:00 -- IS: 2015-11-04 02:00:00 -13, 4, 2016) => Should be: 2014-11-04 02:00:00 -- IS: 2014-11-04 ========= Test gmmktime ======== WORKS ------------------ Output for quercus with patch -----------------========== Test Spill ======== mktime(22, 21, 1, 4, 21, 2016) => Should be: 2016-04-21 22:21:01 -- IS: 2016-04-21 22:21:01 (OK) mktime(30, 0, 0, 4, 21, 2016) => Should be: 2016-04-22 06:00:00 -- IS: 2016-04-22 06:00:00 (OK) mktime(-1, 0, 0, 4, 21, 2016) => Should be: 2016-04-20 23:00:00 -- IS: 2016-04-20 23:00:00 (OK) mktime(-25, 0, 0, 4, 21, 2016) => Should be: 2016-04-19 23:00:00 -- IS: 2016-04-19 23:00:00 (OK) mktime(2, 67, 0, 4, 21, 2016) => Should be: 2016-04-21 03:07:00 -- IS: 2016-04-21 03:07:00 (OK) mktime(2, -5, 0, 4, 21, 2016) => Should be: 2016-04-21 01:55:00 -- IS: 2016-04-21 01:55:00 (OK) mktime(2, -125, 0, 4, 21, 2016) => Should be: 2016-04-20 23:55:00 -- IS: 2016-04-20 23:55:00 (OK) mktime(2, 0, 65, 4, 21, 2016) => Should be: 2016-04-21 02:01:05 -- IS: 2016-04-21 02:01:05 (OK) mktime(2, 1, -30, 4, 21, 2016) => Should be: 2016-04-21 02:00:30 -- IS: 2016-04-21 02:00:30 (OK) mktime(2, 1, -150, 4, 21, 2016) => Should be: 2016-04-21 01:58:30 -- IS: 2016-04-21 01:58:30 (OK) mktime(2, 0, 0, 4, 31, 2016) => Should be: 2016-05-01 02:00:00 -- IS: 2016-05-01 02:00:00 (OK) mktime(2, 0, 0, 4, -1, 2016) => Should be: 2016-03-30 02:00:00 -- IS: 2016-03-30 02:00:00 (OK) mktime(2, 0, 0, 4, -56, 2016) => Should be: 2016-02-04 02:00:00 -- IS: 2016-02-04 02:00:00 (OK) mktime(2, 0, 0, 13, 4, 2016) => Should be: 2017-01-04 02:00:00 -- IS: 2017-01-04 02:00:00 (OK) mktime(2, 0, 0, -1, 4, 2016) => Should be: 2015-11-04 02:00:00 -- IS: 2015-11-04 02:00:00 (OK) mktime(2, 0, 0, -13, 4, 2016) => Should be: 2014-11-04 02:00:00 -- IS: 2014-11-04 02:00:00 (OK) ========= Test gmmktime ======== WORKS ------------------ Output for quercus without patch -----------------========== Test Spill ======== mktime(22, 21, 1, 4, 21, 2016) => Should be: 2016-04-21 22:21:01 -- IS: 2016-04-21 22:21:01 (OK) mktime(30, 0, 0, 4, 21, 2016) => Should be: 2016-04-22 06:00:00 -- IS: 2016-04-21 06:00:00 (BROKEN) mktime(-1, 0, 0, 4, 21, 2016) => Should be: 2016-04-20 23:00:00 -- IS: 2016-04-20 23:00:00 (OK) mktime(-25, 0, 0, 4, 21, 2016) => Should be: 2016-04-19 23:00:00 -- IS: 2016-04-19 23:00:00 (OK) mktime(2, 67, 0, 4, 21, 2016) => Should be: 2016-04-21 03:07:00 -- IS: 2016-04-21 02:07:00 (BROKEN) mktime(2, -5, 0, 4, 21, 2016) => Should be: 2016-04-21 01:55:00 -- IS: 2016-04-21 01:55:00 (OK) mktime(2, -125, 0, 4, 21, 2016) => Should be: 2016-04-20 23:55:00 -- IS: 2016-04-20 23:55:00 (OK) mktime(2, 0, 65, 4, 21, 2016) => Should be: 2016-04-21 02:01:05 -- IS: 2016-04-21 02:00:05 (BROKEN) mktime(2, 1, -30, 4, 21, 2016) => Should be: 2016-04-21 02:00:30 -- IS: 2016-04-21 02:00:30 (OK) mktime(2, 1, -150, 4, 21, 2016) => Should be: 2016-04-21 01:58:30 -- IS: 2016-04-21 01:58:30 (OK) mktime(2, 0, 0, 4, 31, 2016) => Should be: 2016-05-01 02:00:00 -- IS: 2016-04-01 02:00:00 (BROKEN) mktime(2, 0, 0, 4, -1, 2016) => Should be: 2016-03-30 02:00:00 -- IS: 2016-03-29 02:00:00 (BROKEN) mktime(2, 0, 0, 4, -56, 2016) => Should be: 2016-02-04 02:00:00 -- IS: 2016-02-04 02:00:00 (OK) mktime(2, 0, 0, 13, 4, 2016) => Should be: 2017-01-04 02:00:00 -- IS: 2016-06-04 02:00:00 (BROKEN) mktime(2, 0, 0, -1, 4, 2016) => Should be: 2015-11-04 02:00:00 -- IS: 2015-11-04 02:00:00 (OK) mktime(2, 0, 0, -13, 4, 2016) => Should be: 2014-11-04 02:00:00 -- IS: 2014-11-04 02:00:00 (OK) ========= Test gmmktime ======== WORKS ------------------ Patch -----------------diff --git a/modules/quercus/src/com/caucho/quercus/lib/date/DateModule.java b/modules/quercus/src/com/caucho/quercus/lib/date/DateModule.java index 21a7ccf..1a78bdf 100644 --- a/modules/quercus/src/com/caucho/quercus/lib/date/DateModule.java +++ b/modules/quercus/src/com/caucho/quercus/lib/date/DateModule.java @@ -38,6 +38,8 @@ import com.caucho.quercus.module.AbstractQuercusModule; import com.caucho.util.CharBuffer; import com.caucho.util.L10N; import com.caucho.util.QDate; +import java.util.Calendar; +import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Map; @@ -332,18 +334,11 @@ public class DateModule extends AbstractQuercusModule { @Optional() Value dayV, @Optional() Value yearV) { - QDate date = env.getGmtDate(); - long now = env.getCurrentTime(); - date.setLocalTime(now); - long gmtNow = date.getGMTTime(); + GregorianCalendar gc = new GregorianCalendar(TimeZone.getTimeZone("GMT")); - date.setGMTTime(gmtNow); + setMktime(gc, hourV, minuteV, secondV, monthV, dayV, yearV); - setMktime(date, hourV, minuteV, secondV, monthV, dayV, yearV); - return date.getGMTTime() / 1000L; + return gc.getTimeInMillis() / 1000L; } /** @@ -907,17 +902,14 @@ public class DateModule extends AbstractQuercusModule { if (isDST != -1) env.deprecatedArgument("isDST"); - long now = env.getCurrentTime(); - QDate date = env.getDate(); - date.setGMTTime(now); + GregorianCalendar gc = new GregorianCalendar(); - setMktime(date, hourV, minuteV, secondV, monthV, dayV, yearV); + setMktime(gc, hourV, minuteV, secondV, monthV, dayV, yearV); - return date.getGMTTime() / 1000L; + return gc.getTimeInMillis() / 1000L; } - private static void setMktime(QDate date, + private static void setMktime(Calendar date, Value hourV, Value minuteV, Value secondV, @@ -925,70 +917,8 @@ public class DateModule extends AbstractQuercusModule { Value dayV, Value yearV) { - int yearsToAdd = 0; - int monthsToAdd = 0; - int daysToAdd = 0; - int hoursToAdd = 0; - int minsToAdd = 0; - if (! secondV.isDefault()) { - int second = secondV.toInt(); - if (second < 0) { - minsToAdd = second / 60 - (second % 60 != 0 ? 1 : 0); - second = second % 60 + 60; -} - date.setSecond(second); -} - if (! minuteV.isDefault()) { - int minute = minuteV.toInt() + minsToAdd; - if (minute < 0) { - hoursToAdd = minute / 60 - (minute % 60 != 0 ? 1 : 0); - minute = minute % 60 + 60; -} - date.setMinute(minute); -} - if (! hourV.isDefault()) { - int hour = hourV.toInt() + hoursToAdd; - if (hour < 0) { - daysToAdd = hour / 24 - (hour % 24 != 0 ? 1 : 0); - hour = hour % 24 + 24; -} - date.setHour(hour); -} - if (! dayV.isDefault()) { - int day = dayV.toInt() + daysToAdd; - if (day <= 0) { monthsToAdd = day / 30 - 1; day = day % 30 + 30; } date.setDayOfMonth(day); } if (! monthV.isDefault()) { int month = monthV.toInt() + monthsToAdd; if (month <= 0) { yearsToAdd = month / 12 - 1; month = month % 12 + 12; } date.setMonth(month - 1); } if (! yearV.isDefault()) { - int year = yearV.toInt() + yearsToAdd; + int year = yearV.toInt(); if (year >= 1000) { } @@ -1002,8 +932,29 @@ public class DateModule extends AbstractQuercusModule { year = 1969; } - date.setYear(year); + date.set(Calendar.YEAR, year); +} + + if (! monthV.isDefault()) { + date.set(Calendar.MONTH, monthV.toInt() - 1); +} + + if (! dayV.isDefault()) { + date.set(Calendar.DAY_OF_MONTH, dayV.toInt()); +} + + if (! hourV.isDefault()) { + date.set(Calendar.HOUR_OF_DAY, hourV.toInt()); } + + if (! minuteV.isDefault()) { + date.set(Calendar.MINUTE, minuteV.toInt()); +} + + if (! secondV.isDefault()) { + date.set(Calendar.SECOND, secondV.toInt()); +} + } /** Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4626 [Quercus] minor always 06-19-11 19:55 06-02-16 12:12 Reporter: rickHigh Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: strftime does not work with %R Description: $startTime = mktime(23, 0, 0, 5, 29, 2011); $str = strftime ("%R", $startTime); According to: http://php.net/manual/en/function.strftime.php [^] It should work as follows: %R Same as "%H:%M" Example: 00:35 for 12:35 AM, 16:44 for 4:44 PM Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 6010 [Quercus] minor always 06-02-16 12:00 06-02-16 12:00 Reporter: matthiasblaesing Assigned To: Last Update: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: [PATCH] Implementation of try-finally Description: I noticed, that try-finally is not yet supported in quercus. I had a look at a parser structure and implemented the necessary changes. I'd appretiate it, if you could integrate it into the codebase. --------------------------------------------------------------------------- # This patch file was generated by NetBeans IDE # It uses platform neutral UTF-8 encoding and \n newlines. --- a/modules/quercus/src/com/caucho/quercus/statement/TryStatement.java +++ b/modules/quercus/src/com/caucho/quercus/statement/TryStatement.java @@ -49,6 +49,7 @@ public class TryStatement extends Statement { protected final Statement _block; protected final ArrayList<Catch> _catchList = new ArrayList<Catch>(); + protected Statement finallyBlock = null; public TryStatement(Location location, Statement block) { @@ -66,6 +67,13 @@ block.setParent(this); } + + + + + + + public void setFinally(Statement block) { finallyBlock = block; finallyBlock.setParent(this); } public Value execute(Env env) { try { @@ -145,8 +153,12 @@ throw (QuercusException) e; else throw new QuercusException(e); + } finally { + if(finallyBlock != null) { + finallyBlock.execute(env); } } +} public static class Catch { private final StringValue _id; # This patch file was generated by NetBeans IDE # It uses platform neutral UTF-8 encoding and \n newlines. --- a/modules/quercus/src/com/caucho/quercus/parser/QuercusParser.java +++ b/modules/quercus/src/com/caucho/quercus/parser/QuercusParser.java @@ -181,6 +181,8 @@ private final static int INSTEADOF = 579; private final static int EMPTY = 580; + private final static int FINALLY = 581; + private final static int LAST_IDENTIFIER_LEXEME = 1024; private final static IntMap _insensitiveReserved = new IntMap(); @@ -1728,6 +1730,15 @@ token = parseToken(); } + + + + + + + + if (token == FINALLY) { block = parseStatement(); stmt.setFinally(block); token = parseToken(); } + _peekToken = token; return stmt; @@ -6580,6 +6591,7 @@ _insensitiveReserved.put("throw", THROW); _insensitiveReserved.put("try", TRY); _insensitiveReserved.put("catch", CATCH); + _insensitiveReserved.put("finally", FINALLY); _insensitiveReserved.put("interface", INTERFACE); _insensitiveReserved.put("trait", TRAIT); _insensitiveReserved.put("insteadof", INSTEADOF); Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5996 [Quercus] major always 04-20-16 10:38 04-26-16 10:03 Reporter: ebo Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: Ajax UTF-8 garbled Description: When submitting UTF-8 data via Ajax, it gets garbled in the back-end. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5993 [Quercus] minor always 04-07-16 03:10 04-07-16 03:10 Reporter: ebo Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: php_info() showing wrong version Description: php_info() shows PHP as version 5.4 but I was told the current version of Quercus implements PHP 5.5 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5991 [Quercus] minor always 04-06-16 02:06 04-06-16 02:06 Reporter: ebo Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: apc_exists() function not implemented Description: The apc_exists($key) function is not implemented. A workaround is to call the apc_fetch($key,$success) function and return the value of $success. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5385 [Hessian] minor always 03-04-13 09:11 03-11-16 04:00 Reporter: Moritz Lapp Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product 4.0.7 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Hessian IdentityIntMap ArrayIndexOutOfBoundsException Description: This is a follow-up to 0005239, albeit from someone else... Basically, we ran into the same problem as described in 0005239 using hessian 4.0.7 as downloadable from http://hessian.caucho.com [^] and fixed it ourselves without knowing that a new version existed. However, in our fix, we not only modified com.caucho.hessian.util.IdentityIntMap#put(Object, int, boolean), but com.caucho.hessian.util.IdentityIntMap#get(Object) as well. Though we took a slightly different approach, a matching patch is attached and should serve you well. It's just that we're a bit afraid that the IdentityIntMap might not only be used for put only, but that the very same problem might arise for get as well, as both rely on the same System#identityHashCode behavior. Steps To Reproduce: Additional Information: Attached Files: hessian-IdentityIntMap.java.patch (1 KB) 03-04-13 09:11 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5982 [Resin] major sometimes Reporter: jfblachon Assigned To: Date Submitted: 02-28-16 21:15 Last Update: 02-28-16 21:33 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.43 Version: Resolution: open Projection: none ETA: none Summary: Static files very slow to be delivered (>1 min) Description: Some static files (css/js) are very slow to be delivered using the Pro version. We are facing this issues on Resin 4.0.41/43/45/47. We were able to get the same problem using Resin 4.0.48 as well. The cache is cleared (deleted). Majority of the static files are delivered in ms. Some sporadically are delivered in minutes and more. Here's the stack trace when trying to deliver those files below. even if we are clearing the cache, same thing. Can be using one cluster node or many. The stack trace is repeating many times before delivering the content of the file (normally in 1 or 2 min). Our CDN (Akamai) is not as well to deliver the files due to resin not able to send the content. Please investigate on this issue as it's blocking at least once a day. If we change the file name of the file (/livesource/scripts/jquery/jqueryui/1.8.16/jquery-ui1.8.16.custom.min.js to /livesource/scripts/jquery/jqueryui/1.8.16/jquery-ui.js) this is working. We had also the same issue with static files like /livesource/scripts/jquery/jquery.js Thanks. Steps To Reproduce: Additional Stack trace: Information: RESIN [00:05:14.765] Servlet[resin-file] active RESIN [00:05:14.766] Servlet[resin-file] active RESIN [00:05:14.774] Http[default, 1] HTTP/1.1 200 OK RESIN [00:05:14.774] Http[default, 1] ETag: "BaRdqKBiwPi" RESIN [00:05:14.774] Http[default, 1] Last-Modified: Sun, 20 Sep 48122 23:33:17 GMT RESIN [00:05:14.774] Http[default, 1] Accept-Ranges: bytes RESIN [00:05:14.774] Http[default, 1] Cache-Control: max-age=900 RESIN [00:05:14.774] Http[default, 1] Content-Type: application/x-javascript; charset=null RESIN [00:05:14.775] Http[default, 1] Content-Length: 236751 RESIN [00:05:14.775] ProxyCacheFilterChain[/livesource/scripts/jquery/jqueryui/1.8.16/jqueryui-1.8.16.custom.min.js?null, next=ServletFilterChain[resin-file]] tried to cache blank page RESIN [00:05:14.775] Http[default, 1] finish/keepalive RESIN [00:05:14.776] SessionImpl[aaaV3KcqBZ-OwfkcQQPmv,] session load-same valueHash=e3f779eee397135d RESIN [00:05:14.776] TcpSocketLink[id=1,default] keepalive (thread) RESIN [00:05:16.347] closing pool item from idle timeout:ManagedPoolItem[jdbc/spMFG,4,ManagedConnectionImpl] RESIN [00:05:16.347] connection pool destroy ManagedPoolItem[jdbc/spMFG,4,null] RESIN [00:05:16.347] destroy ManagedConnectionImpl[jdbc/spMFG.d0.1] RESIN [00:05:43.790] AllMethodScoreboard[13,[email protected],SimpleActorSender[QueryActorFilter[SkeletonActorFilter[[email protected],com.caucho.cloud.bam.ClusterRouteActor]]]] cannot contact BamFirstResultRouter[[email protected]] because not active RESIN [00:05:43.790] MultiworkerMailbox[[email protected]] enqueue(0) QueryResult[id=13,[email protected],[email protected]] RESIN [00:05:43.790] AllMethodScoreboard[14,[email protected],SimpleActorSender[QueryActorFilter[SkeletonActorFilter[[email protected],com.caucho.cloud.bam.ClusterRouteActor]]]] cannot contact CloudServerRemoteActorRef[TriadServer[default,0,127.0.0.1:6803]] because not active RESIN [00:05:43.790] AbstractReplyCallback[] onResult() -> null RESIN [00:05:43.790] MultiworkerMailbox[[email protected]] enqueue(0) QueryResult[id=14,[email protected],[email protected]] RESIN [00:05:43.790] AbstractReplyCallback[] onResult() -> null RESIN [00:05:43.790] AllMethodScoreboard[15,[email protected],SimpleActorSender[QueryActorFilter[SkeletonActorFilter[[email protected],com.caucho.cloud.bam.ClusterRouteActor]]]] cannot contact BamFirstResultRouter[[email protected]] because not active RESIN [00:05:43.790] MultiworkerMailbox[[email protected]] enqueue(0) QueryResult[id=15,[email protected],[email protected]] RESIN [00:05:43.790] AbstractReplyCallback[] onResult() -> null RESIN [00:05:43.790] AllMethodScoreboard[16,[email protected],SimpleActorSender[QueryActorFilter[SkeletonActorFilter[[email protected],com.caucho.cloud.bam.ClusterRouteActor]]]] cannot contact CloudServerRemoteActorRef[TriadServer[default,0,127.0.0.1:6803]] because not active RESIN [00:05:43.791] MultiworkerMailbox[[email protected]] enqueue(0) QueryResult[id=16,[email protected],[email protected]] RESIN [00:05:43.791] AbstractReplyCallback[] onResult() -> null RESIN [00:05:50.755] Block[Table[data:4,c:\dev\resin-pro-4.0.43\resin- data\default\distcache\data.db],4004,copy=false,load=true,dirty=true] allocate (1) RESIN [00:05:50.755] Block[Table[data:4,c:\dev\resin-pro-4.0.43\resindata\default\distcache\data.db],4004,copy=false,load=true,dirty=true] free (2) RESIN [00:05:50.755] /* defun com.caucho.server.repository.RepositoryRoot [_rootHash, _sequence] */ RESIN [00:05:50.755] object com.caucho.server.repository.RepositoryRoot (0) RESIN [00:05:50.755] /* defun com.caucho.server.repository.RepositoryRoot [_rootHash, _sequence] */ RESIN [00:05:50.755] object com.caucho.server.repository.RepositoryRoot (0000006) RESIN [00:05:50.755] _rootHash: "" RESIN [00:05:50.755] _rootHash: "" RESIN [00:05:50.755] _sequence: 0L RESIN [00:05:50.755] _sequence: 0L RESIN [00:05:50.756] CacheImpl[resin:global-cache:Resin:resin-system:] get resin/clustering/repository/tagHash/app-tier -> RepositoryRoot[, 0] RESIN [00:05:52.619] Block[Table[data:4,c:\dev\resin-pro-4.0.43\resindata\default\distcache\data.db],4004,copy=false,load=true,dirty=true] allocate (1) RESIN [00:05:52.619] Block[Table[data:4,c:\dev\resin-pro-4.0.43\resindata\default\distcache\data.db],4004,copy=false,load=true,dirty=true] free (2) RESIN [00:05:52.619] Block[Table[data:4,c:\dev\resin-pro-4.0.43\resindata\default\distcache\data.db],8004,copy=false,load=true,dirty=true] allocate (1) RESIN [00:05:52.619] Block[Table[data:4,c:\dev\resin-pro-4.0.43\resindata\default\distcache\data.db],8004,copy=false,load=true,dirty=true] free (2) RESIN [00:05:52.619] Block[Table[data:4,c:\dev\resin-pro-4.0.43\resindata\default\distcache\data.db],a004,copy=false,load=true,dirty=true] allocate (1) RESIN [00:05:52.619] Block[Table[data:4,c:\dev\resin-pro-4.0.43\resindata\default\distcache\data.db],a004,copy=false,load=true,dirty=true] free (2) RESIN [00:05:52.619] /* defun com.caucho.cloud.elastic.ScalingPod [clusterId, podId, version, servers] */ RESIN [00:05:52.619] object com.caucho.cloud.elastic.ScalingPod (0) RESIN [00:05:52.619] /* defun com.caucho.cloud.elastic.ScalingPod [clusterId, podId, version, servers] */ RESIN [00:05:52.620] object com.caucho.server.repository.RepositoryRoot (0000007) RESIN [00:05:52.620] clusterId: "app-tier" RESIN [00:05:52.620] _rootHash: "app-tier" RESIN [00:05:52.620] podId: "main" RESIN [00:05:52.620] _sequence: "main" RESIN [00:05:52.620] version: 1456721985688L RESIN [00:05:52.620] 1456721985688L RESIN [00:05:52.620] servers: list [com.caucho.cloud.elastic.ScalingServer (0000001) RESIN [00:05:52.620] list [com.caucho.cloud.elastic.ScalingServer (0000008) RESIN [00:05:52.620] 0: /* defun com.caucho.cloud.elastic.ScalingServer [id, displayId, index, address, port, state] */ RESIN [00:05:52.620] object com.caucho.cloud.elastic.ScalingServer (0000002) RESIN [00:05:52.620] 0: /* defun com.caucho.cloud.elastic.ScalingServer [id, displayId, index, address, port, state] */ RESIN [00:05:52.620] object com.caucho.server.repository.RepositoryRoot (0000009) RESIN [00:05:52.620] id: "default" RESIN [00:05:52.620] _rootHash: "default" RESIN [00:05:52.620] displayId: "default" RESIN [00:05:52.620] _sequence: "default" RESIN [00:05:52.620] index: 0 RESIN [00:05:52.620] 1: 0 RESIN [00:05:52.620] address: "127.0.0.1" RESIN [00:05:52.620] 2: "127.0.0.1" RESIN [00:05:52.620] port: 6803 RESIN [00:05:52.620] 3: 6803 RESIN [00:05:52.621] state: /* defun com.caucho.cloud.topology.CloudServerState [name] */ RESIN [00:05:52.621] object com.caucho.cloud.topology.CloudServerState (0000003) RESIN [00:05:52.621] 4: /* defun com.caucho.cloud.topology.CloudServerState [name] */ RESIN [00:05:52.621] object com.caucho.cloud.elastic.ScalingPod (0000010) RESIN [00:05:52.621] name: "ACTIVE" RESIN [00:05:52.621] clusterId: "ACTIVE" RESIN [00:05:52.621] 1: null RESIN [00:05:52.621] podId: null RESIN [00:05:52.621] 2: null RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN RESIN [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.621] [00:05:52.622] [00:05:52.622] [00:05:52.622] [00:05:52.622] [00:05:52.628] [00:05:52.628] [00:05:52.628] [00:05:52.628] [00:05:52.628] [00:05:52.628] [00:05:52.628] [00:05:52.628] [00:05:52.628] [00:05:52.628] [00:05:52.628] [00:05:52.628] [00:05:52.628] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] [00:05:52.629] version: null 3: null servers: null 4: null 5: null 5: null 6: null 6: null 7: null 7: null 8: null 8: null 9: null 9: null 10: null 10: null 11: null 11: null 12: null 12: null 13: null 13: null 14: null 14: null 15: null 15: null 16: null 16: null 17: null 17: null 18: null 18: null 19: null 19: null 20: null 20: null 21: null 21: null 22: null 22: null 23: null 23: null 24: null 24: null 25: null 25: null 26: null 26: null 27: null 27: null 28: null 28: null 29: null 29: null 30: null 30: null 31: null 31: null 32: null 32: null 33: null 33: null 34: null 34: null 35: null 35: null RESIN [00:05:52.629] 36: null RESIN [00:05:52.629] 36: null RESIN [00:05:52.629] 37: null RESIN [00:05:52.629] 37: null RESIN [00:05:52.629] 38: null RESIN [00:05:52.630] 38: null RESIN [00:05:52.630] 39: null RESIN [00:05:52.630] 39: null RESIN [00:05:52.630] 40: null RESIN [00:05:52.630] 40: null RESIN [00:05:52.630] 41: null RESIN [00:05:52.630] 41: null RESIN [00:05:52.630] 42: null RESIN [00:05:52.630] 42: null RESIN [00:05:52.630] 43: null RESIN [00:05:52.630] 43: null RESIN [00:05:52.630] 44: null RESIN [00:05:52.630] 44: null RESIN [00:05:52.630] 45: null RESIN [00:05:52.630] 45: null RESIN [00:05:52.630] 46: null RESIN [00:05:52.630] 46: null RESIN [00:05:52.630] 47: null RESIN [00:05:52.630] 47: null RESIN [00:05:52.630] 48: null RESIN [00:05:52.630] 48: null RESIN [00:05:52.630] 49: null RESIN [00:05:52.630] 49: null RESIN [00:05:52.630] 50: null RESIN [00:05:52.630] 50: null RESIN [00:05:52.630] 51: null RESIN [00:05:52.630] 51: null RESIN [00:05:52.630] 52: null RESIN [00:05:52.630] 52: null RESIN [00:05:52.630] 53: null RESIN [00:05:52.630] 53: null RESIN [00:05:52.630] 54: null RESIN [00:05:52.630] 54: null RESIN [00:05:52.630] 55: null RESIN [00:05:52.631] 55: null RESIN [00:05:52.631] 56: null RESIN [00:05:52.631] 56: null RESIN [00:05:52.631] 57: null RESIN [00:05:52.631] 57: null RESIN [00:05:52.631] 58: null RESIN [00:05:52.631] 58: null RESIN [00:05:52.631] 59: null RESIN [00:05:52.631] 59: null RESIN [00:05:52.631] 60: null RESIN [00:05:52.631] 60: null RESIN [00:05:52.631] 61: null RESIN [00:05:52.631] 61: null RESIN [00:05:52.631] 62: null RESIN [00:05:52.717] 62: null RESIN [00:05:52.717] 63: null RESIN [00:05:52.717] 63: null RESIN [00:05:52.717] null RESIN [00:05:52.718] CacheImpl[resin:global-cache:Resin:resin-system:] get resin:scaling:app-tier:main -> ScalingPod[app-tier,main,1456721985688] RESIN [00:06:00.002] Database[/c:/dev/resin-pro-4.0.43/resin-data/default]: insert into stat_data (id,time,value) values (?,?,?) RESIN [00:06:00.002] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.002] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.003] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resin- data\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.003] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.003] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.003] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [925, 950] RESIN [00:06:00.003] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.003] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2650, 2675] RESIN [00:06:00.003] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.003] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.003] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.003] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [950, 975] RESIN [00:06:00.003] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.003] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.003] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.003] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2675, 2700] RESIN [00:06:00.003] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.003] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.003] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.003] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [975, 1000] RESIN [00:06:00.003] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.004] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.004] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.004] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2700, 2725] RESIN [00:06:00.004] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.004] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.004] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.004] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1000, 1025] RESIN [00:06:00.004] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.018] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.018] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.018] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2725, 2750] RESIN [00:06:00.019] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.019] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.019] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.019] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resin- data\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1025, 1050] RESIN [00:06:00.019] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.019] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.019] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.019] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2750, 2775] RESIN [00:06:00.019] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.019] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.019] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.019] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1050, 1075] RESIN [00:06:00.019] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.019] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.020] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.020] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2775, 2800] RESIN [00:06:00.020] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.020] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.020] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.020] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1075, 1100] RESIN [00:06:00.020] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.020] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.020] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.020] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2800, 2825] RESIN [00:06:00.161] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.161] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.161] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.161] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1100, 1125] RESIN [00:06:00.161] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.162] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.162] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2825, 2850] RESIN [00:06:00.162] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.162] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.162] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.162] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.162] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1125, 1150] RESIN [00:06:00.162] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.162] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.162] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.162] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2850, 2875] RESIN [00:06:00.162] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.163] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.163] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.163] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.163] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1150, 1175] RESIN [00:06:00.163] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.163] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.163] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2875, 2900] RESIN [00:06:00.163] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.164] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.361] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.361] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1175, 1200] RESIN [00:06:00.361] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.361] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.362] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.362] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2900, 2925] RESIN [00:06:00.362] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.362] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.362] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.362] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1200, 1225] RESIN [00:06:00.362] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.362] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.362] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.362] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2925, 2950] RESIN [00:06:00.362] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.362] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.363] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.363] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.363] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.363] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resin- data\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1225, 1250] RESIN [00:06:00.363] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.363] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.363] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2950, 2975] RESIN [00:06:00.363] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.363] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.363] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1250, 1275] RESIN [00:06:00.507] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.507] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.507] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.507] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [2975, 3000] RESIN [00:06:00.508] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.508] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.508] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.508] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1275, 1300] RESIN [00:06:00.508] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.508] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.508] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3000, 3025] RESIN [00:06:00.508] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.508] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.508] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.508] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.508] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1300, 1325] RESIN [00:06:00.508] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.508] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.509] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.509] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3025, 3050] RESIN [00:06:00.509] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.509] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.509] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.509] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1325, 1350] RESIN [00:06:00.509] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.509] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.649] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resin- data\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.649] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3050, 3075] RESIN [00:06:00.649] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.649] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.649] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.649] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.649] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.649] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1350, 1375] RESIN [00:06:00.649] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.649] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3075, 3100] RESIN [00:06:00.649] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.650] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.650] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.650] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1375, 1400] RESIN [00:06:00.650] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.650] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.650] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.650] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3100, 3125] RESIN [00:06:00.650] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.650] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.650] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1400, 1425] RESIN [00:06:00.650] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.650] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.651] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.651] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.651] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3125, 3150] RESIN [00:06:00.783] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.783] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.783] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.783] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1425, 1450] RESIN [00:06:00.783] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.783] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.784] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.784] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.784] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3150, 3175] RESIN [00:06:00.784] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.784] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.784] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1450, 1475] RESIN [00:06:00.784] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.784] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.784] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.784] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3175, 3200] RESIN [00:06:00.784] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.784] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.784] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1475, 1500] RESIN [00:06:00.784] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.784] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.785] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.785] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3200, 3225] RESIN [00:06:00.785] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.785] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.785] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.785] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.926] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.926] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1500, 1525] RESIN [00:06:00.926] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.927] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.927] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3225, 3250] RESIN [00:06:00.927] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.927] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.927] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.927] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1525, 1550] RESIN [00:06:00.927] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.927] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.927] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.927] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.927] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resin- data\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.927] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3250, 3275] RESIN [00:06:00.928] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.928] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.928] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.928] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1550, 1575] RESIN [00:06:00.928] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.928] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3275, 3300] RESIN [00:06:00.928] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:00.928] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:00.928] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:00.928] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1575, 1600] RESIN [00:06:01.058] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.058] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.058] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.058] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3300, 3325] RESIN [00:06:01.059] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.059] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.059] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.059] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1600, 1625] RESIN [00:06:01.059] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.059] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.059] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.059] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3325, 3350] RESIN [00:06:01.059] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.059] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.059] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1625, 1650] RESIN [00:06:01.059] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.059] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.059] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.060] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.060] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3350, 3375] RESIN [00:06:01.060] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.060] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resin- data\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.060] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.060] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1650, 1675] RESIN [00:06:01.060] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.060] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.060] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.196] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3375, 3400] RESIN [00:06:01.196] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.196] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.196] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.196] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1675, 1700] RESIN [00:06:01.196] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.197] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.197] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.197] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3400, 3425] RESIN [00:06:01.197] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.197] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.197] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.197] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1700, 1725] RESIN [00:06:01.197] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.197] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.197] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.197] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3425, 3450] RESIN [00:06:01.197] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.197] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.198] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.198] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1725, 1750] RESIN [00:06:01.198] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.198] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.198] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.198] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3450, 3475] RESIN [00:06:01.344] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.344] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.344] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resin- data\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.344] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1750, 1775] RESIN [00:06:01.345] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.345] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.345] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.345] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e2006,copy=false,load=false,dirty=true] [3475, 3500] RESIN [00:06:01.345] db table stat_data insert row xa:com.caucho.db.xa.DbTransaction@623d87ee RESIN [00:06:01.345] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] allocate (1) RESIN [00:06:01.345] Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] free (2) RESIN [00:06:01.345] write db-block Block[Table[stat_data:6,c:\dev\resin-pro-4.0.43\resindata\default\stat_data.db],3e4006,copy=false,load=false,dirty=true] [1775, 1800] Attached branche.xml (3 KB) Files: 02-28-16 21:32 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5979 [Resin] major sometimes 02-12-16 10:28 02-12-16 10:28 Reporter: Mathias Lagerwall Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.47 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Double start of application Description: Issue 5893 was said to be resolved in 4.0.45 but we still have this issue. We are not able to start the application during busy hours without having double registrations causing the application to boot twice. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5976 [Quercus] minor always 02-11-16 09:13 02-11-16 09:14 Last Update: Reporter: nam Platform: Assigned To: OS: Priority: normal Status: new OS Version: Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: array out of bounds for WebApp.java ServletListener Description: (rep by zouzhir) java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:635) ~[na:1.7.0_67] at java.util.ArrayList.get(ArrayList.java:411) ~[na:1.7.0_67] at com.caucho.server.webapp.WebApp.hasListener(WebApp.java:2197) ~[resin.jar:4.0.47] at com.caucho.server.webapp.WebApp.addListenerObject(WebApp.java:2148) ~[resin.jar:4.0.47] at com.caucho.server.webapp.WebApp.addListener(WebApp.java:2108) ~[resin.jar:4.0.47] In WebApp.java, hasListener() is using the wrong arraylist (_listeners vs listeners): public boolean hasListener(ArrayList<?> listeners, Class<?> listenerClass) { for (int i = 0; i < listeners.size(); i++) { Object listener = _listeners.get(i); } } if (listener.getClass().equals(listenerClass)) { return true; } return false; Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3920 [Hessian] major always 02-27-10 17:54 02-08-16 23:24 Reporter: aloksingh Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.3 Version: Resolution: open Projection: none ETA: none Summary: BigDecimal objects are incorrectly serialized Description: Serializing/Deserializing BigDecimal objects doesn't work correctly Ex: BigDecimal object = new BigDecimal("12474639.945458954"); Hessian2Output os = new Hessian2Output(null); os.setSerializerFactory(new SerializerFactory()); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); os.init(buffer); os.writeObject(object); os.close(); byte[] bytes = buffer.toByteArray(); Hessian2Input is = new Hessian2Input(new ByteArrayInputStream(bytes)); BigDecimal newObject = (T) is.readObject(); is.close(); assert object.equals(newObject) The final assertion should not fail. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5975 [Quercus] feature always 02-02-16 12:07 02-02-16 12:07 Reporter: kennlee2 Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: Support for jsr223 Invocable interface Description: Quercus 4.0.36 does not support Invocable interface. Is there a plan to support it in the near future? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5788 [Quercus] major always 08-19-14 21:45 01-20-16 01:53 Reporter: raxis Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: When inheriting protected instance variables the parent class auto created variable Description: when you create a protected variable in an abstract class and then extend that class. The parent variable assigns value to the protected instance variable in the constructor. The parent class will auto create the variable and ignore the protected variable of the subclass. I am using the 4.0.39 version Output of Quercus: [brettdutton:.../quercus-4.0.39/WEB-INF/lib]$ java -cp quercus.jar:javamail-141.jar com.caucho.quercus.CliQuercus /Users/brettdutton/Sites/voodoo/QuercusIssue.php Outside ClassNULL Paginator::valueOfResparray(4) { [0]=> string(4) "This" [1]=> string(2) "is" [2]=> string(1) "a" [3]=> string(4) "test" } % Steps To Reproduce: Additional Appache and PHP output of the same test case Information: Outside Classarray(4) { [0] => string(4) "This" [1] => string(2) "is" [2] => string(1) "a" [3] => string(4) "test" } Paginator::valueOfResparray(4) { [0] => string(4) "This" [1] => string(2) "is" [2] => string(1) "a" [3] => } string(4) "test" Attached Files: QuercusIssue.php (1 KB) 08-19-14 21:45 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5973 [Quercus] crash sometimes Reporter: bjpeter Date Submitted: 01-14-16 13:28 Last Update: 01-14-16 13:28 Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: IndexOutOfBoundsException Description: This bug manifests itself in version 4.0.39 of Quercus. Every now and then, we see this stack trace in our log file: Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 770 at java.lang.String.charAt(String.java:646) at com.caucho.quercus.lib.db.PDOStatement.parseQueryString(PDOStatement.java:147) at com.caucho.quercus.lib.db.PDOStatement.<init>(PDOStatement.java:103) at com.caucho.quercus.lib.db.PDO.prepare(PDO.java:514) at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:105) ... 119 more Steps To Reproduce: Additional After looking at the source code for the PDOStatement class (version 4.0.39), I noticed there is Information: no check if i is less than the length of the query string. There is a check before the call to the charAt method on line 185. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5970 [Quercus] minor always 01-12-16 17:06 01-12-16 17:06 Reporter: nam Assigned To: Platform: OS: Last Update: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: misleading IllegalStateException if webapp took longer than 60s to start Description: (rep by S. Szeto) [16-01-12 22:39:05.733] {main} ProResin[id=app-0] started in 137422ms [16-01-12 22:39:05.748] {resin-38} DumpJmx[] OK: JMX dump scheduled with a 60000 ms delay [16-01-12 22:42:47.795] {resin-port-8090-40} java.lang.IllegalStateException: web-app '/edealinv' is restarting and is not yet ready to receive requests at com.caucho.server.webapp.WebApp.getRequestDispatcher(WebApp.java:4331) at com.caucho.server.webapp.ErrorPageManager.sendServletErrorImpl(ErrorPageManager.java:449) at com.caucho.server.webapp.ErrorPageManager.sendServletError(ErrorPageManager.java:195) at com.caucho.server.webapp.ErrorPageManager.handleErrorStatus(ErrorPageManager.java:771) at com.caucho.server.webapp.ErrorPageManager.sendErrorImpl(ErrorPageManager.java:646) at com.caucho.server.webapp.ErrorPageManager.sendError(ErrorPageManager.java:619) at com.caucho.server.http.HttpServletResponseImpl.sendError(HttpServletResponseImpl.java:664) at com.caucho.server.http.HttpServletResponseImpl.sendError(HttpServletResponseImpl.java:611) at com.caucho.server.dispatch.ErrorFilterChain.doFilter(ErrorFilterChain.java:86) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:289) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:838) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1346) at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1302) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1286) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1194) at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:993) at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117) at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169) at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5932 [Quercus] major always 08-03-15 09:50 01-05-16 12:18 Reporter: tobia Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.36 Version: Product Build: Resolution: open Projection: none ETA: none Summary: NPE when including a newly created file Description: Create a new file, output some PHP code to it, which will try to access some variables from $this, then include it. This is what is done by many templating libraries, for instance Dwoo. Expected results: the included code is run in the current environment, including a functional $this pointer. Actual results: NPE in ThisFieldExpr.init(ThisFieldExpr.java:89) See sample code. If the file was created in a different request, it works. Steps To Reproduce: Additional Information: Attached Files: test2.php (0 KB) 08-03-15 09:50 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5965 [Quercus] major always 11-30-15 19:37 11-30-15 19:37 Reporter: don_oles Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: QuercusCompiledScript doesn't flush writer Description: This is essentially the same problem as 0001914. The QuercusScriptEngine.eval() now does writer.flush() in the end, but QuercusCompiledScript.eval() is not. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5963 [Quercus] minor always 11-18-15 13:21 11-18-15 13:21 Reporter: nam Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Quercus is constantly recompiling php files on Windows 10 Description: (rep by M. Serett) \test.php source is deleted \test.php digest is modified Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5958 [Resin] trivial always 11-09-15 03:28 11-12-15 07:28 Reporter: Kaarthiprakash Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.38 Version: Resolution: open Projection: none ETA: none Summary: mod_caucho with new apache 2.2.31 produces unwanted log entries Description: Hello, We are using following Resin Professional Version. The detailed system configuration is given below. Resin 4.0.38 Java 1.8.0_51 Apache httpd 2.2.31 (Rev Proxy.) We switched to Apache httpd 2.2.31 this week and prior to that we were using the apache httpd 2.2.27 version The mod_caucho was running with apache 2.2.27 version and there was no issues with the apache error log file. Now after the migration we are receiving a lot of unnecessary logs in the error log file of apache 2.2.31 server. The log file size rose to 7GB/day from a 5MB/day with respect of old version. The following are the log statements we can see in the error log files. [11/Nov/2015:05:53:53 +0100] 17778_47219435157824: /mod_caucho_xxx.xxx.xxx.xxx_port+ [11/Nov/2015:05:53:53 +0100] 17778_47219435157824: /mod_caucho_xxx.xxx.xxx.xxx_port+ [11/Nov/2015:05:53:53 +0100] 17778_47219435157824: request(): w-Q [11/Nov/2015:05:53:53 +0100] 17778_47219435157824: code s [11/Nov/2015:05:53:53 +0100] 17778_47219435157824: code H [11/Nov/2015:05:53:53 +0100] 17778_47219435157824: code M stream.c:1284:cse_ok_srun() stream.c:1284:cse_ok_srun() mod_caucho.c:912:writemod_caucho.c:798:send_data(): rmod_caucho.c:798:send_data(): rmod_caucho.c:798:send_data(): r- [11/Nov/2015:10:07:07 +0100] 32668_47219408779584: config.c:1583:cse_is_match(): match host: prefix:Prefix suffix:null with host:hostname uri:uri next:2832f760 ignore:0 exact:1 In the above log xxx.xxx.xxx.xxx is the IP of the remote system where Resin is hosted and port is the mod_caucho port. There are many other logs related to this mod_caucho module and we are getting it every seconds. To our surprise we are getting the date same in all days log.[11/Nov/2015…] irrespective of the date. Could you please check and reply at the earliest! Note: We have compiled mod_caucho for both apache 2.2.27 and apache 2.2.31 separately. And since today these mod_caucho logs entries are logging under /tmp/mod_caucho.log. This seems to be very strange because till yesterday it was logged in error.log file of apache and today it's in /tmp/mod_caucho.log file. This file size has also increased to 7Gig within hours. Kindly provide your answers at the earliest as we are facing critical issues with our production servers. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5961 [Quercus] minor always 11-10-15 08:03 11-11-15 02:10 Reporter: Glynn Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Resin 4.0.46 - Quercus doesn't recompile PHP files edited Description: Steps to reproduce 1) Setup Resin as standard and point the Webapp at a folder containing a PHP project. Have resin-web.xml 2) run webapp and have it compile successfully, system runs fine. 3) Edit any PHP file and save. What is expected The Quercus module should notice the change in file and recompile the Java script in the work folder. What happens It doesn't. To recompile it, delete the work folder and restart resin. Steps To Reproduce: Additional Only occurs on the office's Windows machines all running Windows 8.1 Information: PHP Engine settings in resin-web.xml <servlet> <servlet-name>quercus</servlet-name> <servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class> <init> <compile>true</compile> <require-source>false</require-source> <php-ini max_execution_time="0" display_errors="Off" log_errors="On" error_reporting="6143" post_max_size="640M" max_file_uploads="500" upload_max_filesize="20480M" apc.user_cache_hint="65536" apc.shm_size="128" apc.ttl="3600" apc.user_ttl="3600" allow_url_fopen="1" allow_url_include="1"> </php-ini> </init> </servlet> <servlet-mapping> <servlet-name>quercus</servlet-name> <url-pattern>*.php</url-pattern> </servlet-mapping> Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5955 [Resin] minor always 11-05-15 13:04 11-05-15 13:04 Reporter: nam Platform: Assigned To: Priority: normal OS: OS Version: Status: new Product Build: Product 4.0.46 Version: Resolution: open Projection: none ETA: none Summary: double-check JPA 2.1+ compatibility Description: (rep by noaloha) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5951 [Resin] minor always 10-30-15 13:33 10-30-15 13:35 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: 4.0.46 bad install over existing 4.0.37 Description: (rep by A. Hilliard) Resin watchdog complains about version mismatch. OS: Ubuntu 1. 2. 3. 4. /usr/local/share/resin not symlinked to /usr/local/share/resin-4.0.46 /usr/bin/resinctl points to 4.0.37 /etc/init.d/resin points to 4.0.37 Resin files copied into /usr/local/share/resin-4.0.37 (and 4.0.46 directory?) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5667 [Quercus] minor always Reporter: nam Assigned To: Date Submitted: 02-20-14 10:21 Last Update: 10-22-15 04:48 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Zend Framework 2 demo application not working Description: (rep by Adam) Get the Zend Framework 2 demo application working: https://github.com/zendframework/ZendSkeletonApplication/tree/2f60f8af002e6b [^] .../library/Zend/ServiceManager/ServiceManager.php:456: Fatal Error: Uncaught exception of type 'Zend\ServiceManager\Exception\ServiceNotFoundException' with message 'Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for Application Location[.../library/Zend/ServiceManager/ServiceManager.php:456]' Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5935 [Baratine] minor always 08-14-15 11:43 08-14-15 11:43 Reporter: nam Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Malformed escape pair at index 30: bartender://fe80:0:0:0:0:0:0:1%lo0:54871/bartender [^] Description: 1. a cluster 2. Mac OS X 3. changed wifi access points [2015-08-14 11:39:04,974] WARNING DeliverInboxMultiWorker: DeliverInboxMultiWorker[ActorAmpMultiWorker[ActorAmpOutClient[OutAmpManagerClient[OutAmpFactoryBartender[ java.lang.RuntimeException: java.net.URISyntaxException: Malformed escape pair at index 30: bartender://fe80:0:0 [^] java.lang.RuntimeException: java.net.URISyntaxException: Malformed escape pair at index 30: bartender://fe80:0:0 [^] at com.caucho.bartender.websocket.ClientBartenderWebSocket.<init>(ClientBartenderWebSocket.java:99) at com.caucho.bartender.link.OutAmpFactoryBartender.connect(OutAmpFactoryBartender.java:147) at com.caucho.bartender.link.OutAmpFactoryBartender.getOut(OutAmpFactoryBartender.java:103) at com.caucho.amp.remote.OutAmpManagerClient.getOut(OutAmpManagerClient.java:67) at com.caucho.amp.remote.ActorAmpOutClient.getOut(ActorAmpOutClient.java:68) at com.caucho.amp.remote.ActorLink$LinkMethod.send(ActorLink.java:265) at com.caucho.amp.actor.ActorAmpBase$LoadStateLoad.send(ActorAmpBase.java:570) at com.caucho.amp.message.SendMessage_N.invoke(SendMessage_N.java:101) at com.caucho.amp.inbox.DeliverInboxMultiWorker.deliver(DeliverInboxMultiWorker.java:121) at com.caucho.amp.inbox.DeliverInboxMultiWorker.deliver(DeliverInboxMultiWorker.java:52) at com.caucho.amp.queue.DeliverAmpBase.deliver(DeliverAmpBase.java:69) at com.caucho.amp.queue.WorkerDeliverMultiThread.runImpl(WorkerDeliverMultiThread.java:82) at com.caucho.amp.queue.WorkerDeliverBase.runStarted(WorkerDeliverBase.java:316) at com.caucho.amp.queue.WorkerDeliverBase.run(WorkerDeliverBase.java:185) at com.caucho.amp.thread.ThreadAmp.runTasks(ThreadAmp.java:187) at com.caucho.amp.thread.ThreadAmp.run(ThreadAmp.java:158) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5928 [Quercus] block always 07-27-15 23:12 07-30-15 06:43 Reporter: weich Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: serialize/unserialize unicode(CJK) string yields unkown characters sometimes. Description: I have a application runing on nginx/php5-fpm server, it can display the chines/japanese characters correctly. but after I switched to resin4.0.44 server. some page display "????" somewhere. after long time trouble-shooting, I found there are some difference between the result generated by php5 function serialze/unserialze and the one generated by the countparts in resin4. I guess the bug is in the class: StringBuilderValue, which get the wrong byte length when try to make a copy of a string. But I need your guys' confirmation, you are experts. is this correct? file : StringBuilderValue.java public StringBuilderValue(String s) { int len = s.length(); _buffer = new byte[len]; _length = len; for (int i = 0; i < len; i++) { _buffer[i] = (byte) s.charAt(i); } } shouldn't it use "s.getBytes().length" as the following lines: public StringBuilderValue(String s) { byte[] bytes = s.getBytes(); int len = bytes.length; _buffer = new byte[len]; _length = len; } Steps To Reproduce: Additional Information: System.arraycopy(bytes, 0, _buffer, 0, len); Attached Files: api.php (0 KB) 07-30-15 06:29 07-30-15 06:41 test.php (1 KB) Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5931 [Quercus] minor always 07-29-15 16:02 07-29-15 16:02 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.36 Version: Product Build: Resolution: open Projection: none ETA: none Summary: query params missing from resin-forwarded url Description: (rep by A. Naylor) see server/1kna regexp: ^/foo.jsp target: /bar.php?p=1 For /foo.php?q=2, Quercus should populate the request with two parameters, p=1&q=2. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5924 [Baratine] minor always Reporter: alex Assigned To: Priority: normal Status: new Product Build: Projection: none ETA: none Platform: OS: OS Version: Product 0.9.0 Version: Resolution: open Date Submitted: 07-02-15 12:39 Last Update: 07-02-15 12:39 Summary: javax.script should work with detached classloader Description: Exception in thread "main" com.caucho.config.ConfigException: baratine/snap can't open configuration file 'classpath:/META-INF/baratine/baratine.cf' \tat com.caucho.cli.server.BootConfigParser.parseBoot(BootConfigParser.java:89) \tat com.caucho.cli.daemon.ArgsDaemon.parseBoot(ArgsDaemon.java:427) \tat com.caucho.cli.server.ServerCommandBase.doCommandImpl(ServerCommandBase.java:86) \tat com.caucho.cli.server.ServerCommandBase.doCommandImpl(ServerCommandBase.java:51) \tat com.caucho.cli.spi.CommandBase.doCommand(CommandBase.java:295) \tat com.caucho.cli.spi.ArgsBase.doCommand(ArgsBase.java:173) \tat com.caucho.cli.baratine.ScriptEngineBaratine.eval(ScriptEngineBaratine.java:83) \tat javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) \tat qa.Test.main(Test.java:33) Steps To Reproduce: Additional Information: URLClassLoader cl = new URLClassLoader(urls.toArray(new URL[urls.size()])); ScriptEngine baratine = new ScriptEngineManager(cl).getEngineByName("baratine"); Object obj = baratine.eval("start -p 8086 --root-dir " + rootDir + "/baratine"); System.out.println(obj); Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5922 [Baratine] minor always 06-30-15 12:44 06-30-15 12:44 Reporter: alex Platform: Assigned To: Priority: normal OS: OS Version: Status: new Product Build: Product 0.9.0 Version: Resolution: open Projection: none ETA: none Summary: multipod deployment Description: baratine/807c baratine/807d Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5917 [Quercus] feature always 06-13-15 10:21 06-13-15 10:21 Reporter: akashpaul12 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.35 Version: Product Build: Resolution: open Projection: none ETA: none Summary: c:\resin\webapps\ROOT\World.php:5: Fatal Error: 'hello_test' is an unknown function. Description: I am getting this message when i try to run the php script when i have followed the steps by creating the java file and placing it in a directory and the main problem is i think is when the caucho.quercus file is created. It seems to work for normal php code but not for the java method call. Can anyone please help? Thanks Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5915 [Resin] minor always 06-04-15 09:56 06-08-15 11:11 Reporter: alex Assigned To: Last Update: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.38 Version: Resolution: open Projection: none ETA: none Summary: CDI: Can't find a bean. Sporadic exception Description: Error from the Resin infrastructure. Notice that the bean it is complaining about is there as this code works and it actually may succeed for one request and fail for another within the same session. ERROR [gateway.api.GatewayServlet] : API GatewayResponseError com.cellectivity.gateway.api.GatewayResponseError: GatewayError: 500 com.cellectivity.gateway.api.betting.BettingServiceImpl.m_vaultService: Can't find a be an for 'interface com.cellectivity.gateway.api.vault.VaultService' because no beans match the type and qualifiers [@Default()]. Beans: ManagedBeanImpl[VaultServiceDao, {@Default(), @Any()}, @ApplicationScoped] at com.cellectivity.gateway.api.GatewayServlet.processException(GatewayServlet.java:221) at com.cellectivity.gateway.api.GatewayServlet.doPost(GatewayServlet.java:158) at javax.servlet.http.HttpServlet.service(HttpServlet.java:159) at javax.servlet.http.HttpServlet.service(HttpServlet.java:97) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) at com.cellectivity.gateway.api.TokenAuthenticationFilter.doFilter(TokenAuthenticationFilter.java:93) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) at com.cellectivity.gateway.api.log.LogActionFilter.doFilter(LogActionFilter.java:37) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) at com.caucho.server.httpcache.ProxyCacheFilterChain.doFilter(ProxyCacheFilterChain.java:170) 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:289) at com.caucho.server.hmux.HmuxRequest.handleInvocation(HmuxRequest.java:476) at com.caucho.server.hmux.HmuxRequest.handleRequestImpl(HmuxRequest.java:374) at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:341) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1346) at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1302) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1286) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1194) at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:993) at com.caucho.network.listen.TcpSocketLink.handleAcceptTask(TcpSocketLink.java:945) at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:114) at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169) at com.caucho.network.listen.TcpSocketResumeThread.run(TcpSocketResumeThread.java:62) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: com.cellectivity.gateway.api.betting.BettingServiceImpl.m_vaultService: Can't find a bean for 'interface com.cellectivity.gateway.api.vault.VaultService' because no beans match the type and qualifiers [@Default()]. Beans: ManagedBeanImpl[VaultServiceDao, {@Default(), @Any()}, @ApplicationScoped] at com.caucho.config.inject.InjectionTargetBuilder$FieldInjectProgram.bind(InjectionTargetBuilder.java:1015) at com.caucho.config.inject.CandiProducer.bind(CandiProducer.java:144) at com.caucho.config.inject.InjectionTargetBuilder.bind(InjectionTargetBuilder.java:207) at com.caucho.config.inject.InjectionTargetBuilder.inject(InjectionTargetBuilder.java:234) at com.caucho.config.xml.XmlInjectionTarget.inject(XmlInjectionTarget.java:107) at com.caucho.config.inject.ManagedBeanImpl.create(ManagedBeanImpl.java:148) at com.caucho.config.scope.AbstractScopeContext.create(AbstractScopeContext.java:118) at com.caucho.config.scope.AbstractScopeContext.get(AbstractScopeContext.java:109) at com.caucho.config.inject.InjectManager$NormalInstanceReferenceFactory.create(InjectManager.java:4740) at com.caucho.config.inject.InjectManager$ReferenceFactory.create(InjectManager.java:4489) at com.cellectivity.gateway.api.betting.BettingServiceImpl__ResinScopeProxy.getBalance(Unknown Source) at com.cellectivity.gateway.api.betting.BettingModule.postGetBalance(BettingModule.java:116) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.cellectivity.gateway.api.GatewayServlet.doPost(GatewayServlet.java:151) ... 26 more Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Can't find a bean for 'interface com.cellectivity.gateway.api.vault.VaultService' because no beans match the type and qualifiers [@Default()]. Beans: ManagedBeanImpl[VaultServiceDao, {@Default(), @Any()}, @ApplicationScoped] at com.caucho.config.inject.InjectManager.unsatisfiedException(InjectManager.java:2475) at com.caucho.config.inject.InjectManager.resolveByInjectionPoint(InjectManager.java:2656) at com.caucho.config.inject.InjectManager.getReferenceFactory(InjectManager.java:2614) at com.caucho.config.inject.InjectManager.getReferenceFactory(InjectManager.java:2593) at com.caucho.config.inject.InjectionTargetBuilder$FieldInjectProgram.bind(InjectionTargetBuilder.java:1007) ... 42 more Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5911 [Baratine] minor always Reporter: alex Date Submitted: 05-25-15 12:14 Last Update: 05-25-15 12:14 Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 0.9.0 Version: Resolution: open Projection: none ETA: none Summary: ClassCastException: ChannelServerJampRpc cannot be cast to ChannelServerJamp Description: com.caucho.amp.jamp.ChannelServerJamp java.lang.ClassCastException: com.caucho.amp.jamp.ChannelServerJampRpc cannot be cast to com.caucho.amp.jamp.ChannelServerJamp at com.caucho.amp.jamp.JampServlet$ChannelTimeout.handleAlarm(JampServlet.java:990) at com.caucho.util.Alarm.handleAlarm(Alarm.java:526) at com.caucho.util.Alarm.run(Alarm.java:495) at com.caucho.amp.thread.ThreadAmp.runTasks(ThreadAmp.java:187) at com.caucho.amp.thread.ThreadAmp.run(ThreadAmp.java:158) Steps To Reproduce: Additional baratine/2572 Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5904 [Resin] minor always 05-15-15 09:33 05-15-15 09:33 Reporter: alex Assigned To: Platform: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.43 Version: Resolution: open Projection: none ETA: none Summary: heartbeat reported off but servers are alive Description: rep by Tom Pohl: Some report no heartbeat but they get traffic passed by the web-tier: [15-05-15 09:15:00.002] {resin-823} HeartbeatHealthCheck[WARNING:no active heartbeat from ClusterServer[id=app-0,192.168.10.100:6800], no active heartbeat from ClusterServer[id=app-1,192.168.10.101:6800], no active heartbeat from ClusterServer[id=app-2,192.168.10.102:6800]] [15-05-15 09:20:00.002] {resin-797} HeartbeatHealthCheck[WARNING:no active heartbeat from ClusterServer[id=app-0,192.168.10.100:6800], no active heartbeat from ClusterServer[id=app-1,192.168.10.101:6800], no active heartbeat from ClusterServer[id=app-2,192.168.10.102:6800]] [15-05-15 09:25:00.002] {resin-823} HeartbeatHealthCheck[WARNING:no active heartbeat from ClusterServer[id=app-0,192.168.10.100:6800], no active heartbeat from ClusterServer[id=app-1,192.168.10.101:6800], no active heartbeat from ClusterServer[id=app-2,192.168.10.102:6800]] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5899 [Quercus] major always 05-13-15 00:37 05-13-15 00:37 Reporter: preetijaiswal Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Unable to install themes in wordpress using Quercus Description: I have a java based website and want to integrate wordpress in it. So, I implemented it using quercus. All is fine except that I am unable to install any wordpress themes. This is the error that I get: Installing Theme from uploaded file: genesis.2.0.2.zip Unpacking the package… The package could not be installed. PCLZIP_ERR_READ_OPEN_FAIL (-2) : Unable to open archive '<blog folder>/wp-content/uploads/2015/05/genesis.2.0.29.zip' in rb mode Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5897 [Baratine] minor always Reporter: nam Assigned To: Date Submitted: 05-07-15 19:16 Last Update: 05-11-15 17:35 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: StackOverflow in MarshalBean.convert() Description: affected java.util classes: HashMap, LinkedList, etc. May want to set null when there is a recursive field. java.lang.StackOverflowErrorjava.lang.StackOverflowErrorjava.lang.StackOverflowError at java.nio.Buffer.<init>(Buffer.java:201) at java.nio.CharBuffer.<init>(CharBuffer.java:281) at java.nio.HeapCharBuffer.<init>(HeapCharBuffer.java:70) at java.nio.CharBuffer.wrap(CharBuffer.java:373) at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:265) at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125) at java.io.OutputStreamWriter.write(OutputStreamWriter.java:207) at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:129) at java.io.PrintStream.write(PrintStream.java:526) at java.io.PrintStream.print(PrintStream.java:669) at java.io.PrintStream.println(PrintStream.java:823) at java.lang.Throwable$WrappedPrintStream.println(Throwable.java:748) at java.lang.Throwable.printStackTrace(Throwable.java:655) at java.lang.Throwable.printStackTrace(Throwable.java:643)java.lang.StackOverflowError at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(FileOutputStream.java:307) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) at java.io.PrintStream.write(PrintStream.java:482) at com.caucho.log.impl.EnvironmentStream.write(EnvironmentStream.java:161) at com.caucho.vfs.WriteStream.flush(WriteStream.java:463) at java.io.PrintStream.write(PrintStream.java:482) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291) at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104) at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:185) at java.io.PrintStream.write(PrintStream.java:527) at java.io.PrintStream.print(PrintStream.java:669) at java.io.PrintStream.println(PrintStream.java:823) at java.lang.Throwable$WrappedPrintStream.println(Throwable.java:748) at at at at at at at at at at at at at at java.lang.Throwable.printStackTrace(Throwable.java:658) java.lang.Throwable.printStackTrace(Throwable.java:643) java.lang.Throwable.printStackTrace(Throwable.java:634) com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:196) com.caucho.amp.marshal.MarshalBean$MarshalFieldObject.convert(MarshalBean.java:361) com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:187) com.caucho.amp.marshal.MarshalBean$MarshalFieldObject.convert(MarshalBean.java:361) com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:187) com.caucho.amp.marshal.MarshalBean$MarshalFieldObject.convert(MarshalBean.java:361) com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:187) com.caucho.amp.marshal.MarshalBean$MarshalFieldObject.convert(MarshalBean.java:361) com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:187) com.caucho.amp.marshal.MarshalBean$MarshalFieldObject.convert(MarshalBean.java:361) com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:187) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5896 [Baratine] minor always Reporter: nam Assigned To: Date Submitted: 05-06-15 22:00 Last Update: 05-06-15 22:05 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Result.complete(HashMap) returns an empty Map Description: baratine/1871 java.lang.IllegalStateException: class java.lang.Object at com.caucho.amp.module.MarshalArray.<init>(MarshalArray.java:58) at com.caucho.amp.module.RampImport.marshalImpl(RampImport.java:306) at com.caucho.amp.module.RampImport.marshal(RampImport.java:242) at com.caucho.amp.module.RampImport.marshal(RampImport.java:224) at com.caucho.amp.module.MarshalBeanFromMap.introspectFields(MarshalBeanFromMap.java:181) at com.caucho.amp.module.MarshalBeanFromMap.<init>(MarshalBeanFromMap.java:103) at com.caucho.amp.module.RampImport.marshalImpl(RampImport.java:321) at com.caucho.amp.module.RampImport.marshal(RampImport.java:242) at com.caucho.amp.module.RampImport.marshal(RampImport.java:224) at com.caucho.amp.module.MarshalBean.introspectFields(MarshalBean.java:256) at com.caucho.amp.module.MarshalBean.<init>(MarshalBean.java:132) at com.caucho.amp.module.RampImport.marshalImpl(RampImport.java:350) at com.caucho.amp.module.RampImport.marshal(RampImport.java:242) at com.caucho.amp.module.RampImport.marshal(RampImport.java:191) at com.caucho.amp.module.MarshalObject.convert(MarshalObject.java:61) at com.caucho.amp.module.QueryRefImport.complete(QueryRefImport.java:70) at io.baratine.core.Result.complete(Result.java:294) at com.caucho.amp.spi.ActorAmp.onComplete(ActorAmp.java:172) at com.caucho.amp.message.QueryWithResultMessage.onCompleted(QueryWithResultMessage.java:147) at com.caucho.amp.message.QueryItem.invokeReply(QueryItem.java:373) at com.caucho.amp.message.QueryItem.invoke(QueryItem.java:345) at com.caucho.amp.inbox.DeliverInbox.deliver(DeliverInbox.java:122) at com.caucho.amp.inbox.DeliverInbox.deliver(DeliverInbox.java:50) at com.caucho.amp.queue.QueueRing.deliver(QueueRing.java:293) at com.caucho.amp.queue.QueueRingResizing.deliver(QueueRingResizing.java:219) at com.caucho.amp.queue.WorkerDeliverSingleThread.runImpl(WorkerDeliverSingleThread.java:83) at com.caucho.amp.queue.WorkerDeliverBase.runStarted(WorkerDeliverBase.java:245) at com.caucho.amp.queue.WorkerDeliverBase.run(WorkerDeliverBase.java:169) at com.caucho.amp.thread.ThreadAmp.runTasks(ThreadAmp.java:187) at com.caucho.amp.thread.ThreadAmp.run(ThreadAmp.java:158) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5892 [Resin] major always 05-04-15 01:28 05-04-15 01:28 Reporter: bbik Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.44 Version: Resolution: open Projection: none ETA: none Summary: Persistent TimerService timeers are lost after resin restart Description: persistent timerservice timers are lost after server restart: @Singleton @LocalBean @Startup public class TimerTest { @Resource TimerService ts; static TimerTest inst=null; @PostConstruct void init() { inst=this; } ... It creates several timers: TimerConfig tc=new TimerConfig(Integer.toString(id), true); ScheduleExpression sch=new ScheduleExpression(); sch.hour(hour); sch.minute(min); } sch.second(sec); t=ts.createCalendarTimer(sch, tc); @Timeout public void doJob(Timer t) But after resin stop/start all created timers are lost. JBoss is working fine ) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5889 [Baratine] minor always 04-29-15 15:44 04-29-15 15:44 Reporter: alex Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 0.8.8 Version: Resolution: open Projection: none ETA: none Summary: baratine ls /usr shows no sub-directories Description: should show lib Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5888 [Baratine] minor always 04-28-15 15:27 04-28-15 15:27 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Projection: none Platform: OS: OS Version: Product Version: Resolution: open ETA: none Summary: better support for deleting child resources from services Description: /myService/5 How to delete /5? How to mark /5 for deletion? How would /5 know that it is (to be) deleted? Currently, I would need to have a flag in each and every service that supports deleting children. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5887 [Baratine] minor always 04-28-15 12:56 04-28-15 12:56 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: exception in @OnLoad doesn't complete JAMP request Description: 1. http://localhost:8085/s/pod/myService/5?m=get [^] 2. MyService.java throws an exception in @OnLoad 3. request from 1) isn't completed and it times out Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5882 [Quercus] feature always 04-16-15 14:32 04-19-15 10:18 Reporter: minemaz Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: can't overwrite protected member value (on quercus-4.0.39) Description: A protected variable defined by class A couldn't be overwritten by the class B which extended class A. <?php class A { protected $content; public function func() { echo "A->content=".$this->content." "; } } class B extends A { public function func() { $this->content = "from B"; echo "B->content=".$this->content." "; parent::func(); } } $b = new B(); $b->func(); PHP 5.3.3 said: B->content=from B A->content=from B but quercus-4.0.39 said: B->content=from B A->content= Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5883 [Quercus] major always Reporter: bfx Assigned To: Priority: normal Platform: OS: OS Version: Date Submitted: 04-17-15 01:38 Last Update: 04-17-15 01:38 Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: quercus-4.0.42.war, Wordpress 4.1.1 fault with more than 1 page Description: - wordpress 4.1.1 2 posts 2 pages viewing the site, at every url return the exception wp-admin works Removing 1 page and wordpress works again. Tested with multiple themes, same effect Steps To Reproduce: Additional root cause Information: com.caucho.quercus.QuercusExecutionException: java.lang.IllegalStateException com.caucho.quercus.env.LargeStringBuilderValue.ensureCapacity(LargeStringBuilderValue.java:783) com.caucho.quercus.env.LargeStringBuilderValue.append(LargeStringBuilderValue.java:539) com.caucho.quercus.env.StringBuilderValue.appendTo(StringBuilderValue.java:608) com.caucho.quercus.env.LargeStringBuilderValue.append(LargeStringBuilderValue.java:633) com.caucho.quercus.env.StringValue.appendUnicode(StringValue.java:1690) com.caucho.quercus.expr.BinaryAppendExpr.eval(BinaryAppendExpr.java:93) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:512) com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:420) com.caucho.quercus.program.Function.callMethod(Function.java:456) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) com.caucho.quercus.env.CallbackObjectMethod.call(CallbackObjectMethod.java:137) com.caucho.quercus.lib.FunctionModule.call_user_func_array(FunctionModule.java:111) sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:483) com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) ### ----- repeated 85 times ----------------------------------------------------------------------com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:103) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:420) com.caucho.quercus.program.Function.callMethod(Function.java:456) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) com.caucho.quercus.expr.ThisMethodExpr.evalImpl(ThisMethodExpr.java:131) com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:88) com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) ### ---------------------------------------------------------------------------------------------------- com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:103) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) .do_action(/var/lib/tomcat-7/webapps-bonfab.io/ROOT/wp-includes/plugin.php:493) Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5879 [Baratine] minor always 04-14-15 18:15 04-14-15 18:15 Reporter: alex Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 0.8.8 Version: Resolution: open Projection: none ETA: none Summary: kraken: where clause (float) obj.field.subfield between (?,?) Description: kraken/2812 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5878 [Baratine] minor always 04-14-15 18:13 04-14-15 18:13 Reporter: alex Assigned To: Priority: normal Status: new Product Build: Projection: none ETA: none Summary: NPE: kraken/2813 Description: NPE: kraken/2813 Platform: OS: OS Version: Product 0.8.8 Version: Resolution: open Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5805 [Quercus] major always Reporter: kazssym Assigned To: Date Submitted: 09-29-14 16:45 Last Update: 03-23-15 20:13 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: StackOverflowError with WordPress 4.0 Description: I get StackOverflowErrors while running WordPress 4.0 on Quercus 4.0.39. It appears to cause infinite recursion. The server log contains these lines: com.caucho.quercus.QuercusModuleException: java.lang.StackOverflowError at com.caucho.quercus.QuercusModuleException.create(QuercusModuleException.java:64) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:128) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) at com.caucho.quercus.expr.ThisMethodExpr.evalImpl(ThisMethodExpr.java:131) at com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:88) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:103) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) at com.caucho.quercus.expr.ThisMethodExpr.evalImpl(ThisMethodExpr.java:131) at com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:88) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) ... Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5797 [Quercus] minor always 09-12-14 11:24 02-15-15 01:15 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: timezone_transitions_get() not implemented Description: (rep by Y. Zhao) For wordpress. Steps To Reproduce: Additional Information: Attached Files: timezone_transitions_get-patch.diff (5 KB) 02-14-15 23:16 02-15-15 01:13 timezone_transitions_get-patch2.diff (5 KB) Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5852 [Quercus] major always 02-14-15 17:30 02-14-15 17:30 Reporter: kazssym Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: [RFE] Implement simplexml_import_dom in Quercus Description: Since simplexml_import_dom is not implemented, I could not import WordPress posts to WordPress on Quercus. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5831 [Baratine] minor always 11-21-14 14:16 11-21-14 14:16 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: jvm-args not being picked up Description: (rep by Thomas Memenga) Actually cluster { server-default { jvm-args "-Xmx2048m"; } ... Is not picked up on my setup (0.8.5) .... the only way to set the heap size is via baratine start --conf resin.cf -Xmx2048m .... Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5829 [Baratine] minor always 11-20-14 10:09 11-20-14 10:09 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: deployment extlib Description: (rep by Thomas Memenga) Beside the showstopper (no deployment possible), i would like to reduce the size of the jar ... .is there any extlib functionality to provide basic stuff like mysql drivers etc in baratine ? I've tried putting it into /lib, but that did not work. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5827 [Quercus] minor always 11-18-14 01:56 11-18-14 01:56 Reporter: maxnoe Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: ReflectionMethod alternative constructor not supported Description: According to the php.net documentation, two constructors are supported for ReflectionMethod: public ReflectionMethod::__construct ( mixed $class , string $name ) and public ReflectionMethod::__construct ( string $class_method ) Only the first one works. Steps To Reproduce: Additional == Steps to reproduce Information: Run the following code (http://3v4l.org/QoTPn): [^] <?php class AClass { static function aFunction() { $method = new \ReflectionMethod(__METHOD__); echo $method->getName(); } } AClass::aFunction(); == Expected aFunction == Actual Warning: function '__construct' has 2 required arguments, but only 1 were provided == Additional info The equivalent form works fine: $method = new \ReflectionMethod(__CLASS__, __FUNCTION__); Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5823 [Quercus] block always 11-10-14 06:19 11-10-14 06:19 Reporter: extremia Platform: Assigned To: OS: Windows Priority: normal OS Version: 7 Status: new Product Build: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: Fatal Error: Can't use object 'com.caucho.quercus.lib.db.MysqliResult' as array Description: [14-11-10 15:58:47.052] {resin-port-8080-51} c:\Java\resin-pro4.0.41\webapps\ROOT\webwidget\tilaus.yhteenveto.php:21: Fatal Error: Can't use object 'com.caucho.quercus.lib.db.MysqliResult' as array Steps To Example code: Reproduce: $smsChoiceValue = $_SESSION['user']['companyid']; $sql = 'SELECT aySmsLaskutus FROM asiakasyritys LEFT JOIN tilaus on tilaus.tiYritId = ayId WHERE '.(!empty($smsChoiceValue) ? 'ayId = '.$smsChoiceValue : 'tilaus.tiSessionId = "'.$_SESSION['cust']['ordernumber'].'"'). ' LIMIT 1'; $result = $db1->Query($sql); $checked = $result['deliver'][$i]['ttSms'] == true ? 'checked' : ''; Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5816 [Baratine] minor always 10-28-14 09:11 10-28-14 09:11 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: command shell enhancements Description: (rep by Riccardo Cohen) - In baratine command line, it would be great if we could use up and down keyboard arrows to repeat previous commands like in shell terminal. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5804 [Quercus] minor always 09-28-14 03:54 09-28-14 03:54 Reporter: kazssym Assigned To: Priority: normal Status: new Product Build: Last Update: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: curl_setopt with CURLOPT_CAINFO not implemented Description: While using WordPress on Quercus 4.0.39, I get the following warning: CURL option '10065' unknown or unimplemented. This may result in SSL negotiation failure with any server that uses a non-standard certificate. Steps To Reproduce: Additional WordPress uses the following certificate for server verification: Information: Certificate: Data: Version: 3 (0x2) Serial Number: 54:80:f9:a0:73:ed:3f:00:4c:ca:89:d8:e3:71:e6:4a Signature Algorithm: sha1WithRSAEncryption Issuer: C=EE, O=AS Sertifitseerimiskeskus, CN=EE Certification Centre Root CA/[email protected] Validity Not Before: Oct 30 10:10:30 2010 GMT Not After : Dec 17 23:59:59 2030 GMT Subject: C=EE, O=AS Sertifitseerimiskeskus, CN=EE Certification Centre Root CA/[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:c8:20:c0:ec:e0:c5:4b:ab:07:78:95:f3:44:ee: fb:0b:0c:ff:74:8e:61:bb:b1:62:ea:23:d8:ab:a1: 65:32:7a:eb:8e:17:4f:96:d8:0a:7b:91:a2:63:6c: c7:8c:4c:2e:79:bf:a9:05:fc:69:5c:95:8d:62:f9: b9:70:ed:c3:51:7d:d0:93:e6:6c:eb:30:4b:e1:bc: 7d:bf:52:9b:ce:6e:7b:65:f2:38:b1:c0:a2:32:ef: 62:b2:68:e0:61:53:c1:36:95:ff:ec:94:ba:36:ae: 9c:1c:a7:32:0f:e5:7c:b4:c6:6f:74:fd:7b:18:e8: ac:57:ed:06:20:4b:32:30:58:5b:fd:cd:a8:e6:a1: fc:70:bc:8e:92:73:db:97:a7:7c:21:ae:3d:c1:f5: 48:87:6c:27:bd:9f:25:74:81:55:b0:f7:75:f6:3d: a4:64:6b:d6:4f:e7:ce:40:ad:0f:dd:32:d3:bc:8a: 12:53:98:c9:89:fb:10:1d:4d:7e:cd:7e:1f:56:0d: 21:70:85:f6:20:83:1f:f6:ba:1f:04:8f:ea:77:88: 35:c4:ff:ea:4e:a1:8b:4d:3f:63:1b:44:c3:44:d4: 25:76:ca:b7:8d:d7:1e:4a:66:64:cd:5c:c5:9c:83: e1:c2:08:88:9a:ec:4e:a3:f1:3e:1c:2c:d9:6c:1d: a1:4b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE X509v3 Key Usage: critical Certificate Sign, CRL Sign X509v3 Subject Key Identifier: 12:F2:5A:3E:EA:56:1C:BF:CD:06:AC:F1:F1:25:C9:A9:4B:D4:14:99 X509v3 Extended Key Usage: TLS Web Client Authentication, TLS Web Server Authentication, Code Signing, E-mail Protection, Time Stamping, OCSP Signing Signature Algorithm: sha1WithRSAEncryption 7b:f6:e4:c0:0d:aa:19:47:b7:4d:57:a3:fe:ad:bb:b1:6a:d5: 0f:9e:db:e4:63:c5:8e:a1:50:56:93:96:b8:38:c0:24:22:66: bc:53:14:61:95:bf:d0:c7:2a:96:39:3f:7d:28:b3:10:40:21: 6a:c4:af:b0:52:77:18:e1:96:d8:56:5d:e3:dd:36:5e:1d:a7: 50:54:a0:c5:2a:e4:aa:8c:94:8a:4f:9d:35:ff:76:a4:06:13: 91:a2:a2:7d:00:44:3f:55:d3:82:3c:1a:d5:5b:bc:56:4c:22: 2e:46:43:8a:24:40:2d:f3:12:b8:3b:70:1a:a4:96:b9:1a:af: 87:41:1a:6a:18:0d:06:4f:c7:3e:6e:b9:29:4d:0d:49:89:11: 87:32:5b:e6:4b:04:c8:e4:5c:e6:74:73:94:5d:16:98:13:95: fe:fb:db:b1:44:e5:3a:70:ac:37:6b:e6:b3:33:72:28:c9:b3: 57:a0:f6:02:16:88:06:0b:b6:a6:4b:20:28:d4:de:3d:8b:ad: 37:05:53:74:fe:6e:cc:bc:43:17:71:5e:f9:c5:cc:1a:a9:61: ee:f7:76:0c:f3:72:f4:72:ad:cf:72:02:36:07:47:cf:ef:19: 50:89:60:cc:e9:24:95:0f:c2:cb:1d:f2:6f:76:90:c7:cc:75: c1:96:c5:9d Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5801 [Baratine] minor always 09-24-14 13:35 09-24-14 13:35 Reporter: nam Platform: Last Update: Assigned To: Priority: normal Status: new Product Build: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: ClientHamp websocket ConcurrentModificationException Description: io.baratine.core.ServiceExceptionConnect: Can't connect to HAMP server at http://localhost:8085/s/pod/. [^] java.util.ConcurrentModificationException at io.baratine.core.ServiceExceptionConnect.rethrow(ServiceExceptionConnect.java:64) at io.baratine.core.ServiceExceptionConnect.rethrow(ServiceExceptionConnect.java:36) at io.baratine.core.ServiceException.rethrow(ServiceException.java:94) at com.caucho.amp.message.QueryRefFuture.get(QueryRefFuture.java:92) at com.caucho.amp.message.QueryWithFutureMessageBase.offerAndGet(QueryWithFutureMessageBase.java:74) at com.yahoo.ycsb.db.DatabaseResourceServiceApi__AmpProxyChild.read(Unknown Source) at com.yahoo.ycsb.db.BaratineResourceClient.read(BaratineResourceClient.java:131) at com.yahoo.ycsb.DBWrapper.read(DBWrapper.java:90) at com.yahoo.ycsb.workloads.CoreWorkload.doTransactionRead(CoreWorkload.java:537) at com.yahoo.ycsb.workloads.CoreWorkload.doTransaction(CoreWorkload.java:479) at com.yahoo.ycsb.ClientThread.run(Client.java:241) Caused by: io.baratine.core.ServiceExceptionConnect: Can't connect to HAMP server at http://localhost:8085/s/pod/. [^] java.util.ConcurrentModificationException at io.baratine.core.ServiceExceptionConnect.createAndRethrow(ServiceExceptionConnect.java:73) at com.caucho.amp.hamp.ConnectionHampFactoryClient.getOut(ConnectionHampFactoryClient.java:127) at com.caucho.amp.remote.ClientAmpBase$ClientChannel.getOut(ClientAmpBase.java:194) at com.caucho.amp.remote.ActorAmpOutClient.getOut(ActorAmpOutClient.java:65) at com.caucho.amp.remote.ActorAmpOutClientProxy.getOut(ActorAmpOutClientProxy.java:124) at com.caucho.amp.remote.ActorAmpOutClientProxy$ProxyMethod.query(ActorAmpOutClientProxy.java:238) at com.caucho.amp.actor.MethodAmpChild.query(MethodAmpChild.java:146) at com.caucho.amp.actor.ActorAmpBase.query(ActorAmpBase.java:249) at com.caucho.amp.message.QueryWithFutureMessage_N.invokeQuery(QueryWithFutureMessage_N.java:63) at com.caucho.amp.message.QueryItem.invoke(QueryItem.java:331) at com.caucho.amp.inbox.DeliverInbox.deliver(DeliverInbox.java:117) at com.caucho.amp.inbox.DeliverInbox.deliver(DeliverInbox.java:50) at com.caucho.amp.queue.QueueRing.deliver(QueueRing.java:293) at com.caucho.amp.queue.QueueRingResizing.deliver(QueueRingResizing.java:219) at com.caucho.amp.queue.WorkerDeliverSingleThread.runImpl(WorkerDeliverSingleThread.java:82) at com.caucho.amp.queue.WorkerDeliverBase.runStarted(WorkerDeliverBase.java:248) at com.caucho.amp.queue.WorkerDeliverBase.run(WorkerDeliverBase.java:174) at com.caucho.amp.thread.ThreadAmp.runTasks(ThreadAmp.java:187) at com.caucho.amp.thread.ThreadAmp.run(ThreadAmp.java:158) Caused by: java.util.ConcurrentModificationException at java.util.ArrayList.sort(ArrayList.java:1456) at java.util.Collections.sort(Collections.java:175) at com.caucho.config.inject.DecoratorsBuilder.build(DecoratorsBuilder.java:240) at com.caucho.config.inject.DecoratorsBuilder.getDecoratorList(DecoratorsBuilder.java:225) at com.caucho.config.inject.DecoratorsBuilder.getDecorators(DecoratorsBuilder.java:199) at com.caucho.config.inject.BeanManagerBase.fillDecorators(BeanManagerBase.java:1057) at com.caucho.config.inject.BeanManagerBase.resolveDecorators(BeanManagerBase.java:1041) at com.caucho.config.gen.InterceptorFactory.introspectClassDecorators(InterceptorFactory.java:826) at com.caucho.config.gen.InterceptorFactory.introspectType(InterceptorFactory.java:630) at com.caucho.config.gen.InterceptorFactory.<init>(InterceptorFactory.java:132) at com.caucho.config.gen.AspectBeanFactoryCandi.createAspectFactory(AspectBeanFactoryCandi.java:173) at com.caucho.config.gen.AspectBeanFactoryCandi.<init>(AspectBeanFactoryCandi.java:57) at com.caucho.config.gen.BeanGeneratorCandi.<init>(BeanGeneratorCandi.java:99) at com.caucho.config.inject.InjectionTargetBuilder.build(InjectionTargetBuilder.java:367) at com.caucho.config.inject.InjectionTargetBuilder.bind(InjectionTargetBuilder.java:234) at com.caucho.config.inject.InjectionTargetBuilder.validate(InjectionTargetBuilder.java:225) at com.caucho.config.inject.ManagedBeanImpl.validate(ManagedBeanImpl.java:253) at com.caucho.config.inject.InjectManager.validate(InjectManager.java:2251) at com.caucho.config.inject.InjectManager.createCachedManagedBean(InjectManager.java:1021) at com.caucho.config.inject.InjectManager.createBeanSupplier(InjectManager.java:1003) at com.caucho.config.bean.CdiSupplier.create(CdiSupplier.java:54) at com.caucho.config.bean.BeanSupplierBuilder.build(BeanSupplierBuilder.java:45) at com.caucho.websocket.server.WebSocketEndpointSkeleton.<init>(WebSocketEndpointSkeleton.java:99) at com.caucho.websocket.client.WebSocketContainerImpl.connectToServer(WebSocketContainerImpl.java:264) at com.caucho.amp.hamp.ConnectionHampFactoryClient.getOut(ConnectionHampFactoryClient.java:120) ... 17 more Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5798 [Quercus] major always 09-16-14 20:44 09-18-14 00:12 Reporter: kazssym Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: Quercus 4.0.39 undeployable to GlassFish Server 4 Description: GlassFish Server 4 reports an error when I try to deploy Quercus. Some of Quercus classes have @PostConstruct-annotated methods that can throw checked exceptions but such methods must throw unchecked exceptions only according to the specification. I must modify those methods to wrap a checked exception into an unchecked exception and rebuild myself to deploy it on GlassFish Server 4. Steps To Reproduce: Additional My modified version is available at <https://bitbucket.org/kazssym/quercus-maven>. [^] Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5791 [Quercus] block Reporter: schigurupati always 09-01-14 21:23 09-01-14 22:11 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: Highest Priority : accessing an attribute on $this is causing NPE Description: I have 2 files, including 2nd one from the 1st one which has a class when I tried to access $this from the 2nd one to set a value available in the first one is raising NPE, attached the code used for the same. Please let me know if I am missing something at my end. Its a very urgent issue, gating production deployment. Steps To Reproduce: Additional Information: Attached Files: sudheer.zip (0 KB) 09-01-14 21:23 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5772 [Quercus] major always Reporter: luye66 Assigned To: Date Submitted: 07-07-14 04:04 Last Update: 07-07-14 19:04 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: Var function is not supported&65311; Description: I don't know whether a similar issue exists if does forgive me thanks lol $a = 'echo'; $a('abc'); in apache this will print "abc" while in quercus nothing In some case if some code is $foo->$bar() will get an error in background like: java.lang.NullPointerException at com.caucho.quercus.expr.ThisFieldExpr.init(ThisFieldExpr.java:86) at com.caucho.quercus.expr.ThisFieldExpr.eval(ThisFieldExpr.java:102) at com.caucho.quercus.expr.ArrayGetExpr.eval(ArrayGetExpr.java:83) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:772) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:83) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) at com.caucho.quercus.env.Env.executePage(Env.java:4312) at com.caucho.quercus.env.Env.include(Env.java:5920) at com.caucho.quercus.expr.FunIncludeExpr.eval(FunIncludeExpr.java:90) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:91) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:85) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) at com.caucho.quercus.env.Env.executePage(Env.java:4312) at com.caucho.quercus.env.Env.include(Env.java:5920) at com.caucho.quercus.expr.FunIncludeExpr.eval(FunIncludeExpr.java:90) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) at com.caucho.quercus.env.Env.executePageTop(Env.java:4323) at com.caucho.quercus.env.Env.executeTop(Env.java:4268) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:212) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:606) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5774 [Quercus] major always 07-07-14 06:45 07-07-14 06:45 Reporter: felfert Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: SVNRev: 10251: Several SPL iterators not implemented, resulting in failures of Zend >= 1.11.9 Description: While trying to get a Zend Application running on Zend v1.12.7 I noticed, that this Zend version uses several iterators from the PHP SPL which are not implemented in quercus. According to the Documentation at http://www.php.net/manual/en/spl.iterators.php, [^] those are existing since at least PHP v5.2.0. Therefore, they should be implemented in quercus too. Specifically, Zend uses RecursiveRegexIterator which extends RegexIterator which extends FilterIterator. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5773 [Quercus] trivial always 07-07-14 04:42 07-07-14 04:42 Reporter: felfert Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: context parameter of custom PHP errror handler should be of type array Description: Version: current SVN as of right now. I am attemting to get ontoWiki working in quercus and stumbled over the following: In modules/quercus/src/com/caucho/quercus/env/Env.java, the last parameter (context) is set to NullValue.NULL. According to the documentation at http://www.php.net/manual/en/function.set-errorhandler.php [^] this is wrong and triggers nested errors when attempting to use the following PHP error handler signature: function errorHandler ($errno, $errstr, $errfile, $errline, array $errcontext) { ... } Steps To Reproduce: Additional The attached patch fixes this problem. Information: Attached Files: resin-svn-quercus-errorhanderinvocation.diff (1 KB) 07-07-14 04:42 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 3570 [Quercus] feature always 06-19-09 02:36 07-07-14 01:34 Reporter: moghrabi Assigned To: Last Update: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: UnimplementedException during installation of SPIP Description: I try to install a SPIP (a PHP CMS) on Tomcat 5.5 using Quercus 3.2.1. The installation phase failed because a functionality has not been implemented. I get the following error (complete stack trace is attached) : Caused by: com.caucho.quercus.QuercusExecutionException: com.caucho.quercus.UnimplementedException This functionality has not been implemented. A more recent version of Quercus may be available at h ttp://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] at com.caucho.quercus.lib.i18n.MbstringModule.mb_encode_numericentity(MbstringModule.java:392) ... at .charset2unicode(/opt/appserver/val/ValQuecus/webapps/autoload/spip.war/ecrire/inc/charsets.php:260) Steps To Reproduce: Additional Tomcat 5.5.17 Information: Quercus 3.2.1 JDK Sun 1.5.0_14 OS Solaris 10 Attached quercus.log (12 KB) 06-19-09 02:36 Files: charsets.php (23 KB) 06-19-09 02:45 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5771 [Quercus] minor always 07-04-14 10:06 07-04-14 10:06 Reporter: tobia Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: ReflectionClass lacks getInterfaceNames() Description: This affects the latest 4.0.39 Quercus ReflectionClass is lacking the method getInterfaceNames() This is breaking the Tonic framework http://www.peej.co.uk/tonic/ [^] here: https://github.com/peej/tonic/blob/4f6f9f070e8faa59c90cf9463163409a59be8b04/src/Tonic/Application.php#L351 [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5770 [Quercus] minor always 07-04-14 09:55 07-04-14 09:55 Reporter: tobia Assigned To: Priority: normal Status: new Product Build: Last Update: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: spl_autoload_functions() returns a list of strings that are not plain method names Description: This affects the latest 4.0.39, but I couldn't find it in the version popup. With a class-based autoloader such as the one from Composer, spl_autoload_functions() returns something like this: array ( 0 => 'CallbackObjectMethod[Composer\\Autoload\\ClassLoader::loadClass]', 1 => 'CallbackClassMethod[ComposerAutoloaderInite467daa0ea6e0767cd446a8d6d5d7a59::loadClassLoader]', ) This is different enough from what vanilla PHP would return, that it breaks this method from Doctrine: http://www.doctrine-project.org/api/common/2.2/source-class-Doctrine.Common.ClassLoader.html#217 [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5769 [Quercus] minor always 07-04-14 09:47 07-04-14 09:47 Reporter: tobia Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: substr() with a negative 2nd argument larger than the string length Description: This affects the latest 4.0.39, but I couldn't find it in the version popup. In vanilla PHP, calling substr() with a negative 2nd argument whose absolute value is larger than the string length results in the entire string being returned. Quercus returns false. Compare: var_export(substr("FooBar", -50)); This outputs 'FooBar' in vanilla PHP, but false in Quercus. This is breaking Doctrine, see http://www.doctrine-project.org/api/orm/2.3/source-classDoctrine.ORM.Mapping.DefaultQuoteStrategy.html#134 [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5768 [Quercus] minor always 07-04-14 09:37 07-04-14 09:37 Reporter: tobia Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: ReflectionClass->getProperties() with an argument raises a warning Description: This affects the latest 4.0.39, but I couldn't find it in the version popup. Calling getProperties() with a ReflectionProperty constant raises this warning: Warning: function 'getProperties' called with 1 arguments, but only expects 0 arguments For example: ini_set("display_errors", "On"); class MyClass {} new ReflectionClass('MyClass')->getProperties(ReflectionProperty::IS_PUBLIC); This is triggered for example in Doctrine: http://www.doctrineproject.org/api/common/2.2/source-class-Doctrine.Common.Annotations.DocParser.html#445 [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5767 [Quercus] minor always 07-04-14 09:00 07-04-14 09:00 Reporter: tobia Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Multiple names per single "use" keyword Description: This affects the latest 4.0.39, but I couldn't find it in the version popup. PHP allows importing multiple class names with a single "use" keyword, separated by a comma: use Some\ClassA, Some\ClassB; This is breaking several external libraries, including Doctrine. See for example http://www.doctrine-project.org/api/common/2.3/source-classDoctrine.Common.Collections.Collection.html#22 [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5759 [Baratine] minor always 06-19-14 08:27 06-19-14 08:27 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: add undeploy command. Description: Baratine needs support for undeploy. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5758 [Baratine] minor always 06-19-14 08:27 06-19-14 08:27 Reporter: ferg Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: @AfterBatch configuration Description: Add limits to the batching size:"What if @AfterBatch is never called because the inbox is never empty? (Would like a configurable option)" Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5754 [Baratine] minor always 06-14-14 16:47 06-14-14 16:47 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: create a maven archetype for baratine Description: To make it easy to create a skeleton service. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5751 [Quercus] minor always 06-11-14 04:46 06-11-14 04:46 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Projection: none ETA: none Platform: OS: OS Version: Product Version: Resolution: open Summary: utf8 is garbled for postgres Description: (rep by jaisoniit) I have successfully deployed quercus on jboss as 7 but i am getting a issue with unicode data display in php page some garbage data is displaying instead of unicode data below is my setup Jboss as7 Quercus 4.0.39 Postgresql 9.3 for database i have tried so many workaround found while googling like setting unicode.output_encoding to utf-8 defining php.ini which contains setting like unicode.semantics=on unicode.http_input_encoding=UTF-8 unicode.output_encoding=UTF-8 unicode.runtime_encoding=UTF-8 but no luck i am using datasource connection for getting the data from database kindly help me out to resolve this issue Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5750 [Quercus] minor always 06-10-14 12:19 06-10-14 12:19 Reporter: nam Platform: Assigned To: Priority: normal OS: OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: RecursiveFilterIterator is not implemented Description: (rep by P. Cliff) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5746 [Quercus] minor always 06-03-14 13:04 06-03-14 13:04 Reporter: nam Last Update: Platform: Assigned To: OS: Priority: normal Status: new OS Version: Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: wordpress plugin.php ArgGetValue UnsupportedOperationException Description: (rep by Keven) I am running into a null pointer exception when using Quercus in Resin. It was brought up with no response by Rick Mann back in 2010 and doesn't seem to have changed. Does anyone have a solution to this? Rick Mann's resin-interest post: While Resin 4.0.5 choked on this particular PHP construct everywhere, 4.0.4 chokes on it a bit differently only here (so far). Resin 4.0.5 would get a StackOverflowError trying to parse it, 4.0.4 gets this java.lang.UnsupportedOperationException. The PHP causing the error is: do { foreach ( (array) current($wp_filter[$tag]) as $the_ ) if ( !is_null($the_['function']) ) call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args'])); } while ( next($wp_filter[$tag]) !== false ); In previous investigations, I determined that it is the while clause that triggers the problem. Here is what I am getting. The loop above is at .do_action(/opt/www/resin-pro-4.0.39/webapps/lbs/wpincludes/plugin.php:426) [14-05-29 12:24:49.090] {resin-port-80-48} Quercus[/opt/www/resin-pro-4.0.39/webapps/lbs/wpcontent/plugins/types/embedded/usermeta-init.php] loading interpreted page [14-05-29 12:24:49.100] {resin-port-80-48} java.lang.UnsupportedOperationException: com.caucho.quercus.env.ArgGetValue at com.caucho.quercus.env.Value.serialize(Value.java:2982) at com.caucho.quercus.env.Value.serialize(Value.java:2964) at com.caucho.quercus.env.ArrayValue.serialize(ArrayValue.java:1364) at com.caucho.quercus.env.ArrayValue.serialize(ArrayValue.java:1364) at com.caucho.quercus.lib.VariableModule.serialize(VariableModule.java:600) 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:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalArg(Expr.java:526) at com.caucho.quercus.expr.Expr.evalArgs(Expr.java:852) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:204) at com.caucho.quercus.expr.CallExpr.evalCopy(CallExpr.java:154) at com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) at com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.expr.ThisMethodExpr.evalPrivate(ThisMethodExpr.java:113) at com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:85) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:91) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:85) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:87) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.env.CallbackFunction.call(CallbackFunction.java:172) at com.caucho.quercus.lib.FunctionModule.call_user_func_array(FunctionModule.java:111) at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:103) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.WhileStatement.execute(WhileStatement.java:75) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.env.CallbackFunction.call(CallbackFunction.java:172) at com.caucho.quercus.env.Shutdown.call(Shutdown.java:50) at com.caucho.quercus.env.Env.cleanup(Env.java:7497) at com.caucho.quercus.env.Env.close(Env.java:7486) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:263) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:606) at javax.servlet.http.HttpServlet.service(HttpServlet.java:97) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) at com.caucho.filters.GzipFilter.doFilter(GzipFilter.java:149) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:131) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:289) at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:298) at com.caucho.server.webapp.RequestDispatcherImpl.dispatch(RequestDispatcherImpl.java:141) at com.caucho.server.dispatch.RewriteDispatchFilterChain.doFilter(RewriteDispatchFilterChain.java:91) at com.caucho.server.rewrite.MatchFilterChain.doFilter(MatchFilterChain.java:98) at com.caucho.server.rewrite.MatchFilterChain.doFilter(MatchFilterChain.java:98) 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:289) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:838) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1346) at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1302) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1286) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1194) at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:993) at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117) at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169) at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) Caused by: com.caucho.quercus.QuercusExecutionException: java.lang.UnsupportedOperationException com.caucho.quercus.env.ArgGetValue at com.caucho.quercus.env.Value.serialize(Value.java:2982) at com.caucho.quercus.env.Value.serialize(Value.java:2964) at com.caucho.quercus.env.ArrayValue.serialize(ArrayValue.java:1364) [14-05-29 12:24:49.101] at com.caucho.quercus.env.ArrayValue.serialize(ArrayValue.java:1364) at com.caucho.quercus.lib.VariableModule.serialize(VariableModule.java:600) 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:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalArg(Expr.java:526) at com.caucho.quercus.expr.Expr.evalArgs(Expr.java:852) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:204) at com.caucho.quercus.expr.CallExpr.evalCopy(CallExpr.java:154) at com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) at com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.expr.ThisMethodExpr.evalPrivate(ThisMethodExpr.java:113) at com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:85) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:91) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:85) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:87) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.env.CallbackFunction.call(CallbackFunction.java:172) at com.caucho.quercus.lib.FunctionModule.call_user_func_array(FunctionModule.java:111) at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:103) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.WhileStatement.execute(WhileStatement.java:75) at .do_action(/opt/www/resin-pro-4.0.39/webapps/lbs/wp-includes/plugin.php:426) [14-05-29 12:24:49.118] {resin-port-80-48} java.lang.UnsupportedOperationException: com.caucho.quercus.env.ArgGetValue at com.caucho.quercus.env.Value.serialize(Value.java:2982) at com.caucho.quercus.env.Value.serialize(Value.java:2964) at com.caucho.quercus.env.ArrayValue.serialize(ArrayValue.java:1364) at com.caucho.quercus.env.ArrayValue.serialize(ArrayValue.java:1364) at com.caucho.quercus.lib.VariableModule.serialize(VariableModule.java:600) 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:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalArg(Expr.java:526) at com.caucho.quercus.expr.Expr.evalArgs(Expr.java:852) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:204) at com.caucho.quercus.expr.CallExpr.evalCopy(CallExpr.java:154) at com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) at com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.expr.ThisMethodExpr.evalPrivate(ThisMethodExpr.java:113) at com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:85) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:91) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:85) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.env.CallbackFunction.call(CallbackFunction.java:172) at com.caucho.quercus.lib.FunctionModule.call_user_func_array(FunctionModule.java:111) at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:103) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.WhileStatement.execute(WhileStatement.java:75) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) at com.caucho.quercus.expr.ThisMethodExpr.evalImpl(ThisMethodExpr.java:131) at com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:88) at com.caucho.quercus.expr.Expr.evalValue(Expr.java:484) at com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:69) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:91) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:85) at com.caucho.quercus.expr.Expr.evalValue(Expr.java:484) at com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:69) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:227) at com.caucho.quercus.expr.CallExpr.evalCopy(CallExpr.java:154) at com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) at com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:227) at com.caucho.quercus.expr.CallExpr.evalCopy(CallExpr.java:154) at com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) at com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.function.AbstractFunction.callNew(AbstractFunction.java:669) at com.caucho.quercus.env.QuercusClass.callNew(QuercusClass.java:1278) at com.caucho.quercus.expr.ObjectNewExpr.eval(ObjectNewExpr.java:95) at com.caucho.quercus.expr.Expr.evalCopy(Expr.java:512) [14-05-29 12:24:49.118] at com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) at com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) at com.caucho.quercus.env.Env.executePage(Env.java:4312) at com.caucho.quercus.env.Env.include(Env.java:5920) at com.caucho.quercus.env.Env.includeOnce(Env.java:5873) at com.caucho.quercus.expr.FunIncludeOnceExpr.eval(FunIncludeOnceExpr.java:92) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.env.CallbackFunction.call(CallbackFunction.java:172) at com.caucho.quercus.lib.FunctionModule.call_user_func_array(FunctionModule.java:111) at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:103) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.WhileStatement.execute(WhileStatement.java:75) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) at com.caucho.quercus.env.Env.executePage(Env.java:4312) at com.caucho.quercus.env.Env.include(Env.java:5920) at com.caucho.quercus.env.Env.includeOnce(Env.java:5873) at com.caucho.quercus.expr.FunIncludeOnceExpr.eval(FunIncludeOnceExpr.java:92) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) at com.caucho.quercus.env.Env.executePage(Env.java:4312) at com.caucho.quercus.env.Env.include(Env.java:5920) at com.caucho.quercus.env.Env.includeOnce(Env.java:5873) at com.caucho.quercus.expr.FunIncludeOnceExpr.eval(FunIncludeOnceExpr.java:92) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) at com.caucho.quercus.env.Env.executePage(Env.java:4312) at com.caucho.quercus.env.Env.include(Env.java:5920) at com.caucho.quercus.env.Env.includeOnce(Env.java:5873) at com.caucho.quercus.expr.FunIncludeOnceExpr.eval(FunIncludeOnceExpr.java:92) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) at com.caucho.quercus.env.Env.executePage(Env.java:4312) at com.caucho.quercus.env.Env.include(Env.java:5920) at com.caucho.quercus.env.Env.includeOnce(Env.java:5873) at com.caucho.quercus.expr.FunIncludeOnceExpr.eval(FunIncludeOnceExpr.java:92) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:417) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:90) at com.caucho.quercus.env.Env.executePageTop(Env.java:4323) at com.caucho.quercus.env.Env.executeTop(Env.java:4268) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:212) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:606) at javax.servlet.http.HttpServlet.service(HttpServlet.java:97) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) at com.caucho.filters.GzipFilter.doFilter(GzipFilter.java:149) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:131) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:289) at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:298) at com.caucho.server.webapp.RequestDispatcherImpl.dispatch(RequestDispatcherImpl.java:141) at com.caucho.server.dispatch.RewriteDispatchFilterChain.doFilter(RewriteDispatchFilterChain.java:91) at com.caucho.server.rewrite.MatchFilterChain.doFilter(MatchFilterChain.java:98) at com.caucho.server.rewrite.MatchFilterChain.doFilter(MatchFilterChain.java:98) 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:289) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:838) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1346) at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1302) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1286) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1194) at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:993) at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117) at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169) at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) Caused by: com.caucho.quercus.QuercusExecutionException: java.lang.UnsupportedOperationException com.caucho.quercus.env.ArgGetValue [14-05-29 12:24:49.118] at com.caucho.quercus.env.Value.serialize(Value.java:2982) at com.caucho.quercus.env.Value.serialize(Value.java:2964) at com.caucho.quercus.env.ArrayValue.serialize(ArrayValue.java:1364) at com.caucho.quercus.env.ArrayValue.serialize(ArrayValue.java:1364) at com.caucho.quercus.lib.VariableModule.serialize(VariableModule.java:600) 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:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalArg(Expr.java:526) at com.caucho.quercus.expr.Expr.evalArgs(Expr.java:852) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:204) at com.caucho.quercus.expr.CallExpr.evalCopy(CallExpr.java:154) at com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:583) at com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.expr.ThisMethodExpr.evalPrivate(ThisMethodExpr.java:113) at com.caucho.quercus.expr.ThisMethodExpr.eval(ThisMethodExpr.java:85) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.callMethod(Function.java:456) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:763) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:91) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:85) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:420) at com.caucho.quercus.program.Function.call(Function.java:327) at com.caucho.quercus.env.CallbackFunction.call(CallbackFunction.java:172) at com.caucho.quercus.lib.FunctionModule.call_user_func_array(FunctionModule.java:111) at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:229) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:141) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:538) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:103) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.WhileStatement.execute(WhileStatement.java:75) at .do_action(/opt/www/resin-pro-4.0.39/webapps/lbs/wp-includes/plugin.php:426) [14-05-29 12:24:49.282] {resin-port-80-48} Http[app-0, 1] HTTP/1.1 500 Internal Server Error Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5743 [Baratine] minor always 06-02-14 21:48 06-02-14 21:48 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: doc: explain threading in detail Description: http://doc.baratine.io/v0.8/manual/introduction/ [^] The following is too dense and no one will get it. Use pictures and be more verbose. "Note that the return call is managed by Baratine’s threads. If your client is not a Baratine service, the return call will occur on a new thread. If your client is a Baratine service, the return call will use the service’s own thread. The case of a Baratine service’s own thread is important and explains why services should avoid blocking. If a service blocks, it not only can’t receive new requests, it also can’t receive replies to its own calls." Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5742 [Baratine] minor always 06-02-14 21:45 06-02-14 21:45 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: doc: better explain proxy async support Description: http://doc.baratine.io/v0.8/manual/introduction/ [^] The following goes from point A to point C, skipping point B, which is the Baratine magic behind the scenes. "Because the proxy is independent of the service, the client can have both an async and a blocking call" Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5739 [Baratine] minor Reporter: nam always 05-29-14 09:11 05-29-14 09:11 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: can't inject ResourceManager Description: @ResourceService("public:///query") [^] public class AuctionQueryServiceImpl implements AuctionQueryService { @Inject @Lookup("public:///auction") [^] private ResourceManager _manager; Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5738 [Baratine] minor always 05-29-14 09:10 05-29-14 09:10 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: com.caucho.jmx.Jmx.find() does not work with new server-ip'ed names Description: The following does not work: Jmx.find("caucho:type=ThreadPool") because it's looking for: caucho:type=ThreadPool,Server=192.168.1.1:8085 but the actual bean is at: caucho:type=ThreadPool,Server="192.168.1.1:8085" Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5730 [Quercus] minor always 05-04-14 13:07 05-04-14 13:07 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: FILTER_VALIDATE_URL not implemented Description: (rep by N. Osmani) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5728 [Quercus] minor always 05-01-14 15:03 05-01-14 15:03 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: __get()/__set() doesn't work for private parent fields Description: (rep by M. Dykman) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5720 [Quercus] minor always 04-29-14 22:01 04-29-14 22:02 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: get_defined_constants() needs to accept one argument Description: (rep by G. Krall) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5721 [Quercus] minor always 04-29-14 22:02 04-29-14 22:02 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: ini_get_all() needs to accept two arguments Description: (rep by G. Krall) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5719 [Quercus] minor always 04-17-14 09:26 04-17-14 09:26 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: stream_get_contents() is not seeking to specified offset Description: (rep by G. Krall) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 5712 [Documentation] minor Reporter: nam Severity: Last Update: always 04-08-14 10:43 04-08-14 10:43 OS: OS Version: Status: new Product Build: Date Submitted: Platform: Assigned To: Priority: normal Reproducibility: Product Version: Resolution: open Projection: none ETA: none Summary: centering of caucho.com pages Description: The content of the secondary pages (Pricing, Services, etc) is not centered on my widescreen. The header footer are ok though. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5710 [Quercus] minor always 04-07-14 00:29 04-07-14 00:51 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: fixed Projection: none ETA: none Summary: stream_get_meta_data() does not work with php://temp [^] streams Description: (rep by G. Krall) array(6) { ["wrapper_type"]=> string(3) "PHP" ["stream_type"]=> string(4) "TEMP" ["mode"]=> string(3) "w+b" ["unread_bytes"]=> int(0) ["seekable"]=> bool(true) ["uri"]=> string(10) "php://temp" [^] } Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5695 [Baratine] minor always 03-17-14 21:51 03-17-14 21:51 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: go through a delete example with output Description: http://doc.baratine.io/v0.8/articles/baratine/#programming-and-deployment-introduction [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5694 [Baratine] minor always 03-17-14 21:50 03-17-14 21:50 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: surround the JDK8 callback with print statements to highlight nonblocking Description: http://doc.baratine.io/v0.8/articles/baratine/#resource-creation [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5693 [Baratine] minor always 03-17-14 21:45 03-17-14 21:45 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: give example ouput for automatically-created resources Description: http://doc.baratine.io/v0.8/articles/baratine/#resource-creation [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5692 [Baratine] minor always 03-17-14 21:43 03-17-14 21:43 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: explain ResourceService indexing for queries Description: http://doc.baratine.io/v0.8/articles/baratine/#resource-query [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5691 [Baratine] minor always 03-17-14 21:40 03-17-14 21:40 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: explain what happens if the put _id is different from the URL _id Description: http://doc.baratine.io/v0.8/articles/baratine/#resource-updates [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5690 [Baratine] minor always 03-17-14 21:38 03-17-14 21:38 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: need to better explain that service resources are different instances Description: http://doc.baratine.io/v0.8/articles/baratine/#resource-collections [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5689 [Baratine] minor always 03-17-14 21:36 03-17-14 21:36 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: need to introduce and explain the singleton service Description: http://doc.baratine.io/v0.8/articles/baratine/#programming-and-deployment-introduction [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5688 [Baratine] minor always 03-17-14 21:35 03-17-14 21:35 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: need to clarify @Modify for modifying service fields Description: http://doc.baratine.io/v0.8/articles/baratine/#persistent-resources [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 5680 [Documentation] minor Reporter: rmann Severity: Last Update: always 03-08-14 22:59 03-08-14 22:59 OS: OS Version: Status: new Product Build: Date Submitted: Platform: Assigned To: Priority: normal Reproducibility: Product Version: Resolution: open Projection: none ETA: none Summary: Mantis product version popup missing versions Description: It only has 3.x version numbers available. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 5679 [Documentation] minor Reporter: rmann Reproducibility: always Date Submitted: 03-08-14 22:58 Last Update: 03-08-14 22:58 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: WIki page has broken formatting Description: http://wiki4.caucho.com/Resin_4_CDI_Dependency_Injection_Binding_Examples [^] Lots of visible HTML tags. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5677 [Quercus] minor always 03-05-14 09:52 03-05-14 09:52 Reporter: nam Platform: Assigned To: Priority: normal OS: OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: implement SimpleXMLIterator Description: (rep by M. Dykman) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5675 [Quercus] minor always 02-28-14 14:02 02-28-14 14:20 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: wordpress-3.5.1 does not work with Undertow servlet engine Description: Undertow bug. request.getRequestURI() shouldn't be including the <welcome-file>. Instead of returning: /wordpress-3.5.1/ it is returning: /wordpress-3.5.1/index.php Test case: var_dump($_SERVER['REQUEST_URI']); Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5666 [Quercus] minor always 02-20-14 10:19 02-20-14 10:19 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: implement SplPriorityQueue and SplStack Description: (rep by Adam) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5664 [Quercus] minor always 02-19-14 02:53 02-19-14 02:53 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: implement DirectoryIterator->isDot() Description: (rep by M. McHugh) For phpMyFaq. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3996 [Quercus] feature always 04-14-10 17:57 02-10-14 09:40 Reporter: emil Assigned To: Priority: high Status: new Product Build: Projection: none ETA: none Summary: memcache support Description: (req by Janos) Steps To Reproduce: Additional Information: Attached Files: Platform: OS: OS Version: Product 4.0.6 Version: Resolution: open Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5651 [Quercus] minor always 02-06-14 14:29 02-06-14 14:31 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: quercus pro WAR does not recognize licenses Description: (rep by I. Martiniez) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5634 [Quercus] minor always 01-17-14 11:07 01-17-14 11:07 Reporter: nam Platform: Assigned To: Priority: normal OS: OS Version: Status: new Product Build: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: use Apache HttpClient for CURL in order to support SSL client certificates Description: (rep by R. Mann) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5580 [Quercus] minor always 11-07-13 14:17 01-14-14 09:49 Reporter: alex Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: PHP: PDOStatement->rowCount() Description: Should return update row count. Currently returns 0 PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5610 [Quercus] minor always 12-10-13 14:48 01-14-14 09:48 Reporter: alex Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.37 Version: Resolution: open Projection: none ETA: none Summary: Quercus servlet: file path calculation error Description: Windows: [13-12-10 18:03:05.417] {main} [13-12-10 18:03:05.417] {main} [13-12-10 18:03:05.417] {main} [13-12-10 18:03:05.417] {main} en [13-12-10 18:03:05.417] {main} mode, Sun Microsystems Inc. [13-12-10 18:03:05.417] {main} [13-12-10 18:03:05.417] {main} [13-12-10 18:03:05.542] {main} [13-12-10 18:03:06.058] {main} [13-12-10 18:03:06.073] {main} [13-12-10 18:03:06.120] {main} Resin-4.0.37 (built Thu, 05 Sep 2013 08:04:12 PDT) Windows Server 2008 R2 6.1 amd64 Java(TM) SE Runtime Environment 1.6.0_27-b07, Cp1252, Java HotSpot(TM) 64-Bit Server VM 20.2-b06, 64, mixed user.name = SYSTEM server listening to 127.0.0.1:6800 Table[mnode:2] validating indexes due to unclean shutdown. [13-12-10 [13-12-10 [13-12-10 [13-12-10 [13-12-10 [13-12-10 [13-12-10 [13-12-10 18:03:06.151] 18:03:06.167] 18:03:06.167] 18:03:06.183] 18:03:06.183] 18:03:06.183] 18:03:06.183] 18:03:06.183] {main} {main} {main} {main} {main} {main} {main} {main} mnode active Table[data:3] validating indexes due to unclean shutdown. data active ServletService[id=app-0,cluster=app] starting resin.home = \WorkerRole1\resin-4.0.37 resin.root = \WorkerRole1\resin-4.0.37 resin.conf = \WorkerRole1\resin-4.0.37\conf\resin.xml Steps To Reproduce: Additional note double resin.home prefix in the path to login.php Information: [13-12-10 18:05:21.196] {resin-port-8080-26} Quercus[/E:/WorkerRole1/resin4.0.37/WorkerRole1/resin-4.0.37/doc/admin/login.php] parsing page Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5628 [Quercus] minor always 01-03-14 14:07 01-03-14 14:07 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: imagetruecolortopalette() not implemented Description: (rep by markia511) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5586 [Quercus] minor always 11-12-13 13:44 11-12-13 13:44 Reporter: JFM Assigned To: Priority: normal Status: new Platform: OS: OS Version: Product 4.0.36 Version: Product Build: Resolution: open Projection: none ETA: none Summary: DomDocument UTF-8 Encoding problem Description: Quercus War 4.0.37 java version "1.7.0_40" Steps To Reproduce: Additional import java.io.IOException; Information: import javax.script.ScriptEngine; import javax.script.ScriptException; import org.w3c.dom.Document; import org.w3c.dom.ProcessingInstruction; import org.xml.sax.SAXException; import com.caucho.quercus.QuercusEngine; import com.caucho.xml.AbstractParser; import com.caucho.xml.Xml; public class QuercusTest { private static ScriptEngine engine; public static void main(String[] args) throws ScriptException, IOException { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> &0000937; é "; Document doc; try { doc = new Xml().parseDocumentString(xml); System.out.println(doc.getTextContent()); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } QuercusEngine engine = new QuercusEngine(); //NOTE: add WEB-INF/classes/META-INF/services/com.caucho.quercus.QuercusModule to classpath engine.getQuercus().init(); engine.execute("<?php " + "$dom = new DOMDocument();" + "$dom->loadXML('<?xml version=\"1.0\" encoding=\"UTF-8\"?> &0000937; ');" + "output($dom);" + "$dom->loadXML(' &0000937; ');" + "output($dom);" + "$dom->loadXML(' &0000937; é ');" + "$dom->encoding = \"UTF-8\";" + "output($dom);" + "$dom = new DOMDocument();" + "$dom->appendChild($dom->createTextNode('&0000937;'));" + "output($dom);" + "$dom = new DOMDocument('1.0', 'UTF-8');" + "$dom->appendChild($dom->createTextNode('&0000937;'));" + "output($dom);" + "$dom = new DOMDocument('1.0', 'ISO-8859-1');" + "$dom->appendChild($dom->createTextNode('&0000937;'));" + "output($dom);" + "$dom = new DOMDocument('1.0', 'ISO-8859-1');" + "$dom->loadXML('<?xml version=\"1.0\" encoding=\"UTF-8\"?> &0000937; ');" + "output($dom);" + + + + "function output($dom){" " print 'encoding: ' . $dom->encoding . \"\n\";" " print $dom->saveXML() . \"\n\";" "}" ); /* engine.execute("<?php " + "$xml = new DOMDocument;" + "$xml->load($file);" + "$xsl = new DOMDocument;" + "$xsl->load($xslfile);" + "$proc = new XSLTProcessor;" + "$proc->importStyleSheet($xsl); " + "echo $proc->transformToXML($xml);" ); */ } } Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5585 [Baratine] minor always 11-11-13 15:09 11-11-13 15:09 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 0.8.0 Version: Resolution: open Projection: none ETA: none Summary: store loses all items when redeploying WAR file Description: (rep by J. Willis) Redeploying the war file loses all of the items, restarting Resin usually loses items, and about one out of every five restarts gives the ArrayIndexOutOfBoundsException which requires deleting the contents of resin-data/ Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 5577 [Documentation] minor Reporter: nam Assigned To: Severity: Reproducibility: Date Submitted: Last Update: always 11-03-13 13:36 11-03-13 13:36 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: need to explain load-balance-weight in depth Description: http://www.caucho.com/resin-4.0/admin/cluster-load-balancer.xtp [^] Discussed in http://www.caucho.com/resin-4.0/admin/config-resin-xml.xtp [^] but needs to be under the load balance page. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 5576 [Documentation] minor Reporter: nam Reproducibility: Date Submitted: Last Update: always 11-03-13 13:34 11-03-13 13:34 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: <resin:LoadBalance> strategy and sticky-session config not documented in depth Description: http://www.caucho.com/resin-4.0/admin/cluster-load-balancer.xtp [^] strategy: round-robin, least-connection, adaptive sticky-session: true/false Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5574 [Resin] minor always 11-01-13 12:10 11-01-13 12:10 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: SSL with multiple domains Description: (rep by Allan Panganting) > We'd to ask for your feedback regarding resin on having multiple SSL certificate for different domain for 1 IP address. > > Let's say for example we have "www.foo.com" as url for the public website, however we do have another part on the server "www.foo.com/admin" which contains the CMS part of the website. > Now we'd like to "www.foo.com/admin" to use instead this URL "www.foo-admin.com" but actually still pointing to them same server and same IP address.. > > Is this possible configure to resin at the moment? Possible to give some examples on how to do this. Thanks Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5556 [Baratine] minor always Reporter: nam Assigned To: Date Submitted: 10-16-13 19:08 Last Update: 10-22-13 11:03 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 5.0 Version: Resolution: open Projection: none ETA: none Summary: keepalive overflow and resin becomes unresponsive Description: (rep by J. Willis) That fixed the previous problem. BTW, if you upgrade to this new version but have a Baratine application deployed that was compiled with the 0912 version we have, then Resin returns this error over and over again and it stops responding: [2013-10-16 22:24:34,184] WARNING ConnectionTask: java.lang.IllegalStateException: JniSelectManager[max=3840] keepalive overflow 3840 max=3840 java.lang.IllegalStateException: JniSelectManager[max=3840] keepalive overflow 3840 max=3840 at com.caucho.jni.JniSelectManager.enableKeepalive(JniSelectManager.java:312) at com.caucho.jni.JniSelectManager.startKeepalive(JniSelectManager.java:283) at com.caucho.network.listen.TcpConnection.processKeepalive(TcpConnection.java:1426) at com.caucho.network.listen.TcpConnection.handleRequests(TcpConnection.java:1250) at com.caucho.network.listen.TcpConnection.handleAcceptTaskImpl(TcpConnection.java:1016) at com.caucho.network.listen.TcpConnection.handleAcceptTask(TcpConnection.java:969) at com.caucho.network.listen.ConnectionState$16.run(ConnectionState.java:568) at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:91) at com.caucho.env.actor.SpawnTaskQueue$SpawnWorker.run(SpawnTaskQueue.java:93) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:217) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:158) ... I had to delete all of the .war files and the exploded versions from my webapps directory that used the older version of Baratine to fix it. That took me a while to find. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5507 [Baratine] minor always 08-23-13 07:09 10-22-13 10:42 Reporter: nam Assigned To: Last Update: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 7.0.0 Version: Resolution: open Projection: none ETA: none Summary: makai service cannot access its own non-public static inner classes Description: It used to work a few weeks back. java.lang.IllegalAccessError: tried to access class test.ResinAdminService$ThreadScoreboard from class test.ResinAdminService__MakaiProxy at test.ResinAdminService__MakaiProxy.<init>(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.caucho.ramp.proxy.AmpReflectionSkeletonFactory.createStub(AmpReflectionSkeletonFactory.java:117) at com.caucho.ramp.manager.RampManagerImpl.createProxy(RampManagerImpl.java:264) at com.caucho.server.actor.ActorBean.create(ActorBean.java:174) at com.caucho.config.scope.AbstractScopeContext.create(AbstractScopeContext.java:118) at com.caucho.config.scope.SingletonScope.create(SingletonScope.java:112) at com.caucho.config.scope.AbstractScopeContext.get(AbstractScopeContext.java:109) at com.caucho.config.inject.InjectManager$ContextReferenceFactory.create(InjectManager.java:5262) at com.caucho.config.inject.InjectManager.getReference(InjectManager.java:2642) at com.caucho.config.xml.XmlStandardPlugin.processAfterValidation(XmlStandardPlugin.java:297) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.caucho.config.extension.ExtensionManager$ExtensionObserver.notify(ExtensionManager.java:803) at com.caucho.config.event.EventManager.fireLocalEvent(EventManager.java:300) at com.caucho.config.event.EventManager.fireLocalEvent(EventManager.java:289) at com.caucho.config.event.EventManager.fireExtensionEvent(EventManager.java:273) at com.caucho.config.extension.ExtensionManager.fireAfterDeploymentValidation(ExtensionManager.java:547) at com.caucho.config.inject.InjectManager.notifyStart(InjectManager.java:4574) at com.caucho.config.inject.InjectManager.start(InjectManager.java:4557) at com.caucho.config.inject.InjectManager.environmentStart(InjectManager.java:4530) at com.caucho.loader.EnvironmentClassLoader.startListeners(EnvironmentClassLoader.java:1031) at com.caucho.loader.EnvironmentClassLoader.start(EnvironmentClassLoader.java:1004) at com.caucho.server.webapp.WebApp.startImpl(WebApp.java:3709) at com.caucho.server.webapp.WebApp$StartupTask.run(WebApp.java:5281) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:217) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:158) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5508 [Baratine] minor always 08-23-13 07:10 10-22-13 10:41 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 7.0.0 Version: Resolution: open Projection: none ETA: none Summary: no console logging for when non-startup makai service fails to start up Description: If a @Startup @Service fails to start up, an error message is logged to the console at the WARNING level (because it's caught and logged by Webapp). But if a non-@Startup @Service fails to start up, no messages are logged to the console. Expected outcome: ----------------Logging should be consistent regardless of @Startup setting. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5527 [Baratine] minor always 09-11-13 16:12 10-22-13 10:41 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Projection: none Platform: OS: OS Version: Product 7.0.0 Version: Resolution: open ETA: none Summary: baratine debugging issues Description: There are four main scenarios: 1) 2) 3) 4) Result but not ResultWithFailure application failures network failures bugs in our system 1) If you use Result, but not ResultWithFailure, then your code should expect to possibly not see a response (because of an exception and the missing ...WithFailure.) If you need a response always, then use ResultWithFailure. 2) Within a JVM, we expect services to always return a result or throw an exception. If an application has a Result but never completes it, you'll never see a result. **For this we need to add debugging to help people track the problem down**. The "finer" headers are a start down this direction. Eventually, we'll probably want our admin to help track these down. We might also add an optional timeout (as a debugging level.) Normally, calls don't have a timeout because of horrible performance problems. But in debug mode, the timeout would help track things down. 3) network failures should either throw an exception or timeout. The default timeout is pretty long, though. I'm not sure we have enough testing on this issue. 4) we just need to track these down and fix them (essentially this is 0000002.) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5546 [Baratine] minor always 10-07-13 15:56 10-22-13 10:39 Reporter: nam Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: need ability to intercept (jamp) websocket messages Description: (rep by J. Willis) We need something like a servlet filter that intercepts each WebSocket message received or sent. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5547 [Baratine] minor always 10-07-13 16:24 10-22-13 10:38 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: throw exception if jamp is serializing/deserializing long value greater than N/M Description: (req by J. Willis) Javascript's maximum int value is 9007199254740992L, which is only 53-bits wide. Would be nice to be able to configure a setting or something. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5475 [Resin] feature always 07-01-13 10:40 10-18-13 07:36 Reporter: cowan Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: HSM support Description: Most HSM vendors have APIs to retrieve a specific cert from the HSM. Customer requests more flexible JSSE certificate configurable. Steps To Reproduce: Additional Req by A. Balandran Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5553 [Hessian] minor always Reporter: mbutov Date Submitted: 10-11-13 03:30 Last Update: 10-11-13 03:30 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.28 Version: Resolution: open Projection: none ETA: none Summary: Deserialization fails if there are fields of the same name in the class and its superclass. Description: TEST import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.Serializable; import org.junit.Test; import com.caucho.hessian.io.Hessian2Input; import com.caucho.hessian.io.Hessian2Output; public class HessianTest { static class A implements Serializable { private String x = "x"; } @Override public String toString() { return "A.x=" + x; } static class B extends A { private int x = 1; } @Override public String toString() { return super.toString() + ",B.x='" + x; } @Test public void testSameFieldName() throws Throwable { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); B b1 = new B(); System.out.println(b1); Hessian2Output output = new Hessian2Output(buffer); output.writeObject(b1); output.flush(); Hessian2Input input = new Hessian2Input(new ByteArrayInputStream(buffer.toByteArray())); B b2 = (B) input.readObject(); System.out.println(b2); } } OUTPUT com.caucho.hessian.io.HessianFieldException: org.proxyremoting.HessianTest$B.x: expected integer at 0x1 java.lang.String (x) [C\x1forg.proxyremoting.HessianTest$B\x92\x01x\x01x`\x91] \x01 [x] at com.caucho.hessian.io.UnsafeDeserializer.logDeserializeError(UnsafeDeserializer.java:786) at com.caucho.hessian.io.UnsafeDeserializer$IntFieldDeserializer.deserialize(UnsafeDeserializer.java:565) at com.caucho.hessian.io.UnsafeDeserializer.readObject(UnsafeDeserializer.java:239) at com.caucho.hessian.io.UnsafeDeserializer.readObject(UnsafeDeserializer.java:150) at com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2219) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2140) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2124) at org.proxyremoting.HessianTest.testSameFieldName(HessianTest.java:50) Caused by: com.caucho.hessian.io.HessianProtocolException: expected integer at 0x1 java.lang.String (x) [C\x1forg.proxyremoting.HessianTest$B\x92\x01x\x01x`\x91] \x01 [x] at com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2943) at com.caucho.hessian.io.Hessian2Input.expect(Hessian2Input.java:2880) at com.caucho.hessian.io.Hessian2Input.readInt(Hessian2Input.java:825) at com.caucho.hessian.io.UnsafeDeserializer$IntFieldDeserializer.deserialize(UnsafeDeserializer.java:561) ... 32 more Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5538 [Quercus] major always 10-02-13 03:34 10-02-13 03:34 Reporter: Yury Assigned To: Priority: normal Status: new Product Build: Projection: none Platform: OS: OS Version: Product 4.0.36 Version: Resolution: open Last Update: ETA: none Summary: CRLF Injection in Resin 4.0.37 and earlier Description: Positive Research experts (Positive Technologies) have detected a CRLF Injection vulnerability in Resin. Resin performs insufficient validation of values from HTTP header Cookie. An attacker can create a forged HTTP response and display arbitrary data to the user in context of an affected application via adding CRLF symbols into cookie value or index. ---[ Exploitation ] File cookie.jsp: <% if(request.getParameter("x") != null) { response.addCookie(new Cookie("x",request.getParameter("x"))); } out.println("Response"); %> HTTP request fragment: GET /cookie.jsp?x=x%0d%0aX-XSSProtection:0%0d%0a%0d%0a<script>alert(document.cookie)</script><!-- HTTP/1.1 HTTP response fragment: HTTP/1.1 200 OK Server: Resin/4.0.37 Cache-Control: private Set-Cookie: x=x X-XSS-Protection:0 <script>alert(document.cookie)</script><!-Set-Cookie: JSESSIONID=aaa5LU09MDjfu7TGE1Meu; path=/ Content-Type: text/html; charset=windows-1251 Content-Length: 9 Connection: close Date: Mon, 16 Sep 2013 12:54:14 GMT Response ---[ How to fix ] It is recommended to remove all control characters from the value of HTTP header Cookie. Steps To Reproduce: Additional The vulnerability was discovered by Sergey Bobrov (Positive Technologies company) Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5534 [Quercus] minor always 09-24-13 15:05 09-24-13 15:05 Reporter: nam Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: auto_prepend_file does not work via Quercus command line client Description: (rep by M. Yamaguchi) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5533 [Quercus] minor always 09-24-13 14:51 09-24-13 14:51 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: allow specifying php.ini file to Quercus command line client Description: (rep by M. Yamaguchi) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5526 [Quercus] minor always 09-10-13 23:50 09-11-13 00:06 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: constant recompiling of PHP files in Windows Description: (rep by Y. Zhao) [13-09-09 09:01:47.330] {resin-port-80-24} \index.php source is deleted. [13-09-09 09:01:47.330] {resin-port-80-24} \index.php digest is modified. nam: Path.canRead() returns false. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5511 [Quercus] major always Reporter: jpalmisa Assigned To: Date Submitted: 08-28-13 13:22 Last Update: 08-28-13 13:22 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: unserialize() fails with IOException when unserializing PHP class the implements Serializabe Description: When I attempt to unserialize objects that implement the PHP Serializable interface Quercus throws: java.io.IOException: option not recognized 'C' at com.caucho.quercus.lib.UnserializeReader.unserialize(UnserializeReader.java:334) at com.caucho.quercus.lib.VariableModule.unserialize(VariableModule.java:697) 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:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:226) at com.caucho.quercus.expr.CallExpr.evalCopy(CallExpr.java:154) at com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:585) at com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:540) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.TryStatement.execute(TryStatement.java:72)...... I looked at the UnserializeReader.unserialize(...) method and the case statement does not account for 'C' as the leading character of the serialized string. The PHP doc on the Serializable interface (http://php.net/manual/en/class.serializable.php) [^] shows that this is a valid leading character. The serialized objects were written to disk using PHP 5.3. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5509 [Quercus] minor always 08-23-13 22:57 08-23-13 22:57 Reporter: awebdeveloper Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: PDO::ERRMODE_SILENT not honored Description: When passing the PDO::ERRMODE_SILENT option to a new PDO connection, this is not honored by Quercus. In modules/quercus/src/com/caucho/quercus/lib/db/PDO.java a PHP warning is given regardless of this setting. For example in methods getMysqlConnection and getPgsqlDataSource: env.warning(L.l("pdo dsn attribute not supported: {0}={1}", key, value)); The correct behaviour is specified in the PHP manual: http://php.net/manual/en/pdo.error-handling.php [^] "PDO::ERRMODE_SILENT This is the default mode. PDO will simply set the error code for you to inspect using the PDO::errorCode() and PDO::errorInfo() methods on both the statement and database objects; if the error resulted from a call on a statement object, you would invoke the PDOStatement::errorCode() or PDOStatement::errorInfo() method on that object. If the error resulted from a call on the database object, you would invoke those methods on the database object instead." Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5505 [Quercus] minor always 08-22-13 08:35 08-22-13 09:06 Reporter: nam Platform: Assigned To: nam OS: Priority: normal OS Version: Status: assigned Product Build: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: parse_ini_string() not implemented Description: for Joomla 3.1 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5503 [Quercus] minor always 08-22-13 07:53 08-22-13 07:53 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: missing interface SplSubject for phpMyAdmin Description: (rep by alexweb) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5497 [Hessian] feature always 08-14-13 02:45 08-14-13 02:45 Reporter: JoergV Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.28 Version: Resolution: open Projection: none ETA: none Summary: Support for GZIP compression Description: This is a very similiar request as: http://bugs.caucho.com/view.php?id=4151 [^] The best compression choice for http compression is "gzip". Taken from Wikipedia: http://en.wikipedia.org/wiki/HTTP_compression [^] deflate - despite its name the zlib compression (RFC 1950) should be used (in combination with the deflate compression (RFC 1951)) as described in the RFC 2616. The implementation in the real world however seems to vary between the zlib compression and the (raw) deflate compression.[5][6] Due to this confusion, gzip has positioned itself as the more reliable default method (March 2011). It would be great if "Accept-Encoding" would be extended to "gzip, deflate" and both encodings would be supported. This can be archived with just a couple of lines. Steps To Reproduce: Additional A possible solution: Information: HessianProxy.java: conn.addHeader("Accept-Encoding", "gzip, deflate"); HessianURLConnection.java: if ("gzip".equals(contentEncoding)) { return new GZIPInputStream(_conn.getInputStream()); } return _conn.getInputStream(); Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5491 [Quercus] feature N/A 07-22-13 13:42 07-23-13 09:20 Reporter: mcarbonneaux Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.36 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Quercus : SOAP/HEssian support Description: while be super fine to make possible to implement SOAP service in PHP in quercus in implementing php soap extension... http://php.net/manual/en/book.soap.php [^] or in resin java like methode : http://forum.caucho.com/showthread.php?t=29619 [^] http://www.caucho.com/resin-3.1/examples/remote-hello-world/#ServiceImplementation [^] and to support also hessian... by the same way ! Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5487 [Hessian] block always 07-11-13 00:29 07-11-13 00:55 Reporter: sander Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: issue 5239 is not fixed .ArrayIndexOutOfBoundsException Description: issue 5239 is not fixed int hash = System.identityHashCode(key) % prime; can return negative integers 1. because ibm sdk 1.6 AIX can give negative identityHashCode 2. because java returns negative modulo result for negative first operand addition: if (hash < 0) { hash += prime; } guarantees >=0 integers (and maintains modulo) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3801 [Hessian] minor always 12-07-09 08:13 07-04-13 01:26 Reporter: alex Platform: Assigned To: OS: Priority: normal Status: new OS Version: Product 4.0.2 Version: Product Build: Resolution: open Projection: none ETA: none Summary: hessian with enum Description: reported by fil512 (forum.caucho.com) Steps to reproduce in java 5: 1. create an enum (just a plain old enum, nothing fancy) 2. create a class that uses this enum 3. create a list of instances of these classes. 4. try to pass this list back as a return value from a method accessed through hessian spring remoting. I've The The The narrowed the bug down to the following very specific trigger conditions. list must contain at least 3 items. first two items shall have the same value for the enum. third item shall have a different value for the enum. The error is that it is not able to assign null to the enum field. The general condition that triggers this is any list of objects that have enum fields where somewhere down the list the enum value changes. As soon as the object with the different enum value is hit, you get the error. I have tried about 4 different versions of caucho hessian and they all had this same error. Interestingly, when I tried burlap, I still got a hessian exception but the exception was that it couldn't assign a java.sql.TimeStamp to the enum value which is weird since I don't use java.sql.TimeStamp anywhere--I'm guessing it's trying a bunch of different strategies and just reporting failure on the last strategy. Steps To Reproduce: Additional Steps to reproduce in java 6: Information: 1. create an enum (just a plain old enum, nothing fancy) 2. create a class that uses this enum 3. create a list of instances of these classes. 4. try to pass this list back as a return value from a method accessed through hessian spring remoting. I've The The The narrowed the bug down to the following very specific trigger conditions. list must contain at least 3 items. first two items shall have the same value for the enum. third item shall have a different value for the enum. The error is that it is not able to assign null to the enum field. The general condition that triggers this is any list of objects that have enum fields where somewhere down the list the enum value changes. As soon as the object with the different enum value is hit, you get the error. I have tried about 4 different versions of caucho hessian and they all had this same error. Interestingly, when I tried burlap, I still got a hessian exception but the exception was that it couldn't assign a java.sql.TimeStamp to the enum value which is weird since I don't use java.sql.TimeStamp anywhere--I'm guessing it's trying a bunch of different strategies and just reporting failure on the last strategy. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 5471 [Documentation] minor Reporter: rickHigh Reproducibility: Date Submitted: Last Update: always 06-21-13 11:27 06-21-13 11:27 Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: SSL Documentation problems Description: http://www.caucho.com/resin-4.0/admin/security-ssl.xtp [^] The instructions to setup the path to the cert in resin.properties has a small typo: # OpenSSL certificate configuration openssl_file : key/gryffindor.crt openssl_key : keys/gryffindor.key openssl_password : my-password That should be keys. Also, the instructions say to create the dir w/ the SSL cert under Resin?s root: unix> cd $RESIN_HOME unix> mkdir keys unix> cd keys That gives the error: com.caucho.config.ConfigException: OpenSSL can't open certificate file '/var/resin-pro7.0.s130614/conf/keys/dev.crt' It looks like the keys directory should be created under $RESIN_HOME/conf/ rather than simply under $RESIN_HOME. Finally, the config script doesn?t find the openssl include files or libs for Red Hat/CentOS, and the makefile didn?t copy the libraries it created to the $RESIN_HOME/libexec64/ dir. The commands I used to build it successfully under CentOS: ln -s /usr/include /usr/include/openssl/include make clean ./configure --with-openssl=/usr/include/openssl -with-openssl-lib=/usr/lib64 make mkdir libexec64 cp modules/c/src/resinssl/libresinssl.so libexec64/ cp modules/c/src/resin_os/libresin_os.so libexec64/ Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 5458 [Documentation] major Reporter: xt Severity: Last Update: have not tried 06-14-13 07:54 06-14-13 07:54 OS: OS Version: Status: new Product Build: Date Submitted: Platform: Assigned To: Priority: normal Reproducibility: Product 3.1.3 Version: Resolution: open Projection: none ETA: none Summary: network problem Description: im haveing invalid packets in connetion eney resons o resolving this problem plus im geting popups error 1001 how do i mantain thes 2 issues Steps To Reproduce: Additional configureing netframes and connection drops on utube ect Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5453 [Quercus] feature always Reporter: mcarbonneaux Date Submitted: 06-06-13 14:49 Last Update: 06-06-13 14:49 Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.35 Version: Resolution: open Projection: none ETA: none Summary: hablity to use JNA like Jruby or Jython Description: JNA is a method to acces Native Library: https://github.com/twall/jna [^] while very usefull to abel to doing jna access to native library like jruby does : https://github.com/twall/jna/blob/master/www/DynamicallyTypedLanguages.md [^] or like native java... https://github.com/twall/jna/blob/master/www/GettingStarted.md [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5438 [Quercus] minor always 05-08-13 05:43 05-08-13 05:43 Reporter: qumo Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.35 Version: Resolution: open Projection: none ETA: none Summary: Implement libxml additional constants and functions Description: I'm trying to run Zabbix PHP frontend in glassfish. During installation, zabbix frontend check: 1)libxml module version 2)xmlwriter 3)xmlreader Tests are respectively (in PHP): 1)constant('LIBXML_DOTTED_VERSION'); 2)extension_loaded('xmlwriter'); 3)extension_loaded('xmlreader'); Results are respectively: 1)null (need current version) 2)FALSE (need TRUE) 3)FALSE (need TRUE) I bridged tests to finalise the installation. xmlWriter is working (throught Zabbix frontend) but xmlReader not. Here is the error message from zabbix frontend when I try to read the xml file (enclosed): com.caucho.quercus.lib.xml.XmlReader.XML: com.caucho.quercus.lib.xml.XmlReader Steps To Reproduce: Additional OS: Centos 6.4 x86_64 Information: Server: Glassfish 3.1.2 java: Sun jdk-6u45-linux-x64-rpm Attached Files: zbx_export_hosts.xml (1 KB) 05-08-13 05:43 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5396 [Quercus] feature always 03-14-13 00:17 03-14-13 23:55 Reporter: IlikeQuercus Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.35 Version: Resolution: open Projection: none ETA: none Summary: `oci_connect with charset' Description: Hi&65292;I am a programer in China. In our country, we use the charset ?GBxxx' or 'utf-8' to show characters like '&19968;&20108;&19977;&22235;&20116;&20845;' as '123456' , and so on. I have tried Quercus4.0.25 and Resin4.0.35 to run PHP applications in my Java website. But I When I use the extension "oci" to conect Oracle db, I got a message "com.caucho.quercus.UnimplementedException: `oci_connect with charset' has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtracking system at http://bugs.caucho.com". [^] with the code oci_connect($user,$pass,$db,$charset) and if I use oci_connect($user,$pass,$db), I will get blank where they should be some english or chinese characters. Maybe there is a bug,(maybe it's caused by my oracle setting), I suggest implementing this feature( oci charset), thanks. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5390 [Quercus] minor always 03-10-13 22:56 03-10-13 22:56 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.35 Version: Product Build: Resolution: open Projection: none ETA: none Summary: add support for modules written in PHP Description: (req by arvind_cits) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5388 [Quercus] minor always 03-06-13 05:00 03-06-13 05:36 Reporter: konst Assigned To: Last Update: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.36 Version: Resolution: open Projection: none ETA: none Summary: PDOStatement.rowCount() doesn't meet DELETE, INSERT, or UPDATE statements specification Description: According to the specification of PDOStatement.rowCount() from http://php.net/manual/en/pdostatement.rowcount.php, [^] it must return "the number of rows affected by the last DELETE, INSERT, or UPDATE statement". "... SELECT statement, some databases may return the number of rows returned by that statement. However, this behaviour is not guaranteed" However the current implementation of rowCount() was only returning the number of rows returned by SELECT statement. By this commit the implementation has changed to return the number of rows affected by DELETE, INSERT, or UPDATE statements and also the number of rows returned by the SELECT statement File: modules\quercus\src\com\caucho\quercus\lib\db\PDOStatement.java Steps To Reproduce: Additional Going to commit the fix to the following repository: Information: https://github.com/mdaniel/svn-caucho-com-resin [^] or https://github.com/konst-git/svn-caucho-com-resin [^] Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5386 [Quercus] minor always 03-04-13 11:52 03-04-13 11:52 Reporter: nam Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.35 Version: Resolution: open Projection: none ETA: none Summary: Laravel php framework doesn't work Description: (rep by suryakencana) HTTP ERROR 500 Problem accessing /public/. Reason: java.io.FileNotFoundException: jar: Caused by: com.caucho.quercus.QuercusException: java.io.FileNotFoundException: jar: at com.caucho.quercus.env.Env.executePage(Env.java:58 21) at com.caucho.quercus.env.InternalAutoloadCallback.lo adClass(InternalAutoloadCallback.java:68) at com.caucho.quercus.env.Env.findClassExt(Env.java:5 231) at com.caucho.quercus.env.Env.findClass(Env.java:5149 ) at com.caucho.quercus.env.Env.findClass(Env.java:5126 ) at com.caucho.quercus.env.Env.findClassExt(Env.java:5 181) at com.caucho.quercus.env.Env.findClass(Env.java:5149 ) at com.caucho.quercus.env.Env.findClass(Env.java:5126 ) at com.caucho.quercus.env.Env.findAbstractClass(Env.j ava:5504) at com.caucho.quercus.expr.ObjectNewExpr.eval(ObjectN ewExpr.java:91) at com.caucho.quercus.expr.Expr.evalCopy(Expr.java:51 4) at com.caucho.quercus.expr.Expr.evalAssignValue(Expr. java:585) at com.caucho.quercus.expr.BinaryAssignExpr.eval(Bina ryAssignExpr.java:88) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:540 ) at com.caucho.quercus.statement.ExprStatement.execute (ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Funct ion.java:432) at com.caucho.quercus.program.Function.callMethod(Fun ction.java:468) at com.caucho.quercus.env.QuercusClass.callMethod(Que rcusClass.java:1556) at com.caucho.quercus.expr.ClassMethodExpr.eval(Class MethodExpr.java:122) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:540 ) at com.caucho.quercus.statement.ExprStatement.execute (ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Funct ion.java:432) at com.caucho.quercus.env.InterpretedClosure.call(Int erpretedClosure.java:74) at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.env.Value.call(Value.java:1545) com.caucho.quercus.env.Env.error(Env.java:6825) com.caucho.quercus.env.Env.error(Env.java:6766) com.caucho.quercus.env.Env.error(Env.java:6400) com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr .java:198) com.caucho.quercus.expr.CallExpr.eval(CallExpr.jav a:151) com.caucho.quercus.expr.Expr.evalValue(Expr.java:4 86) com.caucho.quercus.statement.ReturnStatement.execu te(ReturnStatement.java:69) com.caucho.quercus.statement.IfStatement.execute(I fStatement.java:84) com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Funct ion.java:432) com.caucho.quercus.program.Function.callMethod(Fun ction.java:468) com.caucho.quercus.function.AbstractFunction.callM ethod(AbstractFunction.java:664) com.caucho.quercus.env.QuercusClass.callMethod(Que rcusClass.java:1599) com.caucho.quercus.env.QuercusClass.callMethod(Que rcusClass.java:1915) com.caucho.quercus.env.CallbackObjectMethod.call(C allbackObjectMethod.java:78) com.caucho.quercus.env.Env.findClassExt(Env.java:5 178) com.caucho.quercus.env.Env.findClass(Env.java:5149 ) com.caucho.quercus.env.Env.findClass(Env.java:5126 ) com.caucho.quercus.env.Env.findClass(Env.java:5110 ) com.caucho.quercus.expr.ClassMethodExpr.eval(Class MethodExpr.java:93) com.caucho.quercus.expr.Expr.evalTop(Expr.java:540 ) com.caucho.quercus.statement.ExprStatement.execute (ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute( QuercusProgram.java:414) com.caucho.quercus.page.InterpretedPage.execute(In terpretedPage.java:90) com.caucho.quercus.env.Env.executePage(Env.java:42 82) com.caucho.quercus.env.Env.include(Env.java:5802) com.caucho.quercus.expr.FunIncludeExpr.eval(FunInc ludeExpr.java:90) com.caucho.quercus.expr.Expr.evalTop(Expr.java:540 ) com.caucho.quercus.statement.ExprStatement.execute (ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(I fStatement.java:84) com.caucho.quercus.statement.IfStatement.execute(I fStatement.java:87) com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Funct ion.java:432) com.caucho.quercus.program.Function.callMethod(Fun ction.java:468) com.caucho.quercus.env.QuercusClass.callMethod(Que rcusClass.java:1556) com.caucho.quercus.expr.ClassMethodExpr.eval(Class MethodExpr.java:122) com.caucho.quercus.expr.Expr.evalTop(Expr.java:540 ) com.caucho.quercus.statement.ExprStatement.execute (ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute( QuercusProgram.java:414) com.caucho.quercus.page.InterpretedPage.execute(In terpretedPage.java:90) com.caucho.quercus.env.Env.executePage(Env.java:42 82) com.caucho.quercus.env.Env.include(Env.java:5802) com.caucho.quercus.expr.FunIncludeExpr.eval(FunInc ludeExpr.java:90) com.caucho.quercus.expr.Expr.evalTop(Expr.java:540 ) com.caucho.quercus.statement.ExprStatement.execute (ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute( QuercusProgram.java:414) com.caucho.quercus.page.InterpretedPage.execute(In terpretedPage.java:90) com.caucho.quercus.env.Env.executePageTop(Env.java :4293) com.caucho.quercus.env.Env.executeTop(Env.java:423 6) com.caucho.quercus.servlet.QuercusServletImpl.serv ice(QuercusServletImpl.java:202) com.caucho.quercus.servlet.QuercusServlet.service( QuercusServlet.java:568) javax.servlet.http.HttpServlet.service(HttpServlet .java:97) org.eclipse.jetty.servlet.ServletHolder.handle(Ser vletHolder.java:652) org.eclipse.jetty.servlet.ServletHandler.doHandle( ServletHandler.java:445) org.eclipse.jetty.server.handler.ScopedHandler.han dle(ScopedHandler.java:137) org.eclipse.jetty.security.SecurityHandler.handle( SecurityHandler.java:574) org.eclipse.jetty.server.session.SessionHandler.do Handle(SessionHandler.java:227) org.eclipse.jetty.server.handler.ContextHandler.do Handle(ContextHandler.java:1044) org.eclipse.jetty.servlet.ServletHandler.doScope(S ervletHandler.java:372) org.eclipse.jetty.server.session.SessionHandler.do Scope(SessionHandler.java:189) org.eclipse.jetty.server.handler.ContextHandler.do Scope(ContextHandler.java:978) org.eclipse.jetty.server.handler.ScopedHandler.han dle(ScopedHandler.java:135) at org.eclipse.jetty.server.Dispatcher.forward(Dispat cher.java:293) at org.eclipse.jetty.server.Dispatcher.forward(Dispat cher.java:120) at org.eclipse.jetty.servlet.DefaultServlet.doGet(Def aultServlet.java:566) at javax.servlet.http.HttpServlet.service(HttpServlet .java:120) at javax.servlet.http.HttpServlet.service(HttpServlet .java:97) at org.eclipse.jetty.servlet.ServletHolder.handle(Ser vletHolder.java:652) at org.eclipse.jetty.servlet.ServletHandler.doHandle( ServletHandler.java:445) at org.eclipse.jetty.server.handler.ScopedHandler.han dle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle( SecurityHandler.java:556) at org.eclipse.jetty.server.session.SessionHandler.do Handle(SessionHandler.java:227) at org.eclipse.jetty.server.handler.ContextHandler.do Handle(ContextHandler.java:1044) at org.eclipse.jetty.servlet.ServletHandler.doScope(S ervletHandler.java:372) at org.eclipse.jetty.server.session.SessionHandler.do Scope(SessionHandler.java:189) at org.eclipse.jetty.server.handler.ContextHandler.do Scope(ContextHandler.java:978) at org.eclipse.jetty.server.handler.ScopedHandler.han dle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.HandlerWrapper.ha ndle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java :367) at org.eclipse.jetty.server.AbstractHttpConnection.ha ndleRequest(AbstractHttpConnection.java:486) at org.eclipse.jetty.server.AbstractHttpConnection.he aderComplete(AbstractHttpConnection.java:926) at org.eclipse.jetty.server.AbstractHttpConnection$Re questHandler.headerComplete(AbstractHttpConnection .java:988) at org.eclipse.jetty.http.HttpParser.parseNext(HttpPa rser.java:640) at org.eclipse.jetty.http.HttpParser.parseAvailable(H ttpParser.java:235) at org.eclipse.jetty.server.AsyncHttpConnection.handl e(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.han dle(SelectChannelEndPoint.java:628) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.r un(SelectChannelEndPoint.java:52) at org.eclipse.jetty.util.thread.QueuedThreadPool.run Job(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.r un(QueuedThreadPool.java:543) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: jar: at com.caucho.vfs.NotFoundPath.openReadImpl(NotFoundP ath.java:92) at com.caucho.vfs.Path.openRead(Path.java:1149) at com.caucho.quercus.parser.QuercusParser.parse(Quer cusParser.java:357) at com.caucho.quercus.page.PageManager.parseImpl(Page Manager.java:287) at com.caucho.quercus.page.PageManager.parse(PageMana ger.java:246) at com.caucho.quercus.page.PageManager.parse(PageMana ger.java:218) at com.caucho.quercus.QuercusContext.parse(QuercusCon text.java:1228) at com.caucho.quercus.env.Env.executePage(Env.java:58 15) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5381 [Quercus] minor always 02-25-13 19:46 02-25-13 19:46 Reporter: nam Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Last Update: Projection: none ETA: none Summary: JDK7 Arrays sort throws exception because Quercus comparator is not transitive Description: [13-02-25 18:40:28.546] {resin-port-8080-44} java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:747) at java.util.TimSort.mergeAt(TimSort.java:483) at java.util.TimSort.mergeCollapse(TimSort.java:410) at java.util.TimSort.sort(TimSort.java:214) at java.util.TimSort.sort(TimSort.java:173) at java.util.Arrays.sort(Arrays.java:659) at com.caucho.quercus.lib.ArrayModule.array_multisort(ArrayModule.java:1347) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3995 [Quercus] minor always 04-14-10 17:45 02-08-13 03:59 Reporter: emil Platform: Assigned To: OS: Priority: high OS Version: Status: new Product 4.0.6 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Add support for ZipArchive class Description: (req by Edgar Merino) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5366 [Quercus] minor always 02-08-13 03:57 02-08-13 03:57 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.34 Version: Resolution: open Projection: none ETA: none Summary: DOMElement->hasAttribute($name) not implemented Description: (rep by phpdocx) Need to implement DOMElement->hasAttribute($name). http://www.php.net/manual/en/class.domelement.php [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5340 [Quercus] minor always 01-21-13 21:13 02-05-13 04:01 Reporter: ngoc Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.34 Version: Resolution: open Projection: none ETA: none Summary: Make QuercusCompiledScript Serializable Description: My project need save QuercusCompiledScript to datastore-memcache (appengine). So I need QuercusCompiledScript implements Serializable . - I can extends or rewrite another version of it , but it have QuercusScriptEngine and QuercusProgram fields non Serializable too . - make transient it will cause null if reconstruct from datastore Steps To Reproduce: Additional Example my code in use : Information: QuercusScriptEngine engine = new QuercusScriptEngine(new QuercusScriptEngineFactory(), quercus); String sayHelloVN ="<h1>hello <?php echo 'vietnam'; ?> </h1>" ; CompiledScript script = engine.compile(sayHelloVN); MemcacheService syncCache = MemcacheServiceFactory.getMemcacheService(); syncCache.put("test", script ); CompiledScript compiledscript = (CompiledScript)syncCache.get("test"); compiledscript.eval(); Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5356 [Quercus] minor always 01-31-13 16:19 01-31-13 16:19 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.34 Version: Resolution: open Projection: none ETA: none Summary: need to implement the HttpResponse library Description: (req by K. Patel) http://us.php.net/manual/en/class.httpresponse.php [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5339 [Quercus] feature always 01-21-13 20:54 01-24-13 12:25 Reporter: ngoc Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.34 Version: Resolution: open Projection: none ETA: none Summary: Make quercus as standalone project with no dependency with Hessian and Resin-Kenel Description: Please make quercus independent . Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5324 [Quercus] crash always Reporter: publicocean0 Assigned To: Date Submitted: 12-27-12 13:05 Last Update: 01-02-13 10:07 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.34 Version: Resolution: open Projection: none ETA: none Summary: Overflow i copy a php object Description: If i create a object in which there is inside a reference to the same object the internal copy assignment crashs. The copy assignment function works in bad way ... it create a copy of the same object infinitelly ... maybe it dont manage the pointer reference in php ? It seams to appear when i use php serialization .... used with function __wakeup Steps To Reproduce: Additional java.lang.StackOverflowError Information: java.util.IdentityHashMap.hash(IdentityHashMap.java:284) java.util.IdentityHashMap.get(IdentityHashMap.java:317) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1017) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:1742) com.caucho.quercus.env.ObjectExtValue.<init>(ObjectExtValue.java:133) com.caucho.quercus.env.ObjectExtValue.copy(ObjectExtValue.java:1024) com.caucho.quercus.env.ObjectExtValue$Entry.<init>(ObjectExtValue.java:174 Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5301 [Quercus] minor always 12-04-12 06:39 12-04-12 06:39 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: PDO never throws PDOException Description: (rep by Maddy09) http://forum.caucho.com/showthread.php?t=29222 [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5296 [Quercus] minor Reporter: nam always 12-01-12 06:18 12-01-12 06:18 Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: need to implement iptcparse() for mediawiki image uploads Description: for images that have metadata Steps To Reproduce: Additional var/www/hosts/wiki.caucho.com/webapps/ROOT/includes/media/IPTC.php:574: Fatal Error: Information: 'iptcparse' is an unknown function. Unexpected non-MediaWiki exception encountered, of type "Exception" ExceptionClass[Exception] var/www/hosts/wiki.caucho.com/webapps/ROOT/includes/media/IPTC.php:574: Fatal Error: 'iptcparse' is an unknown function. <trace> /var/www/hosts/wiki.caucho.com/webapps/ROOT/includes/Wiki.php:536: run Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5233 [Quercus] minor always 10-03-12 21:22 11-30-12 08:11 Reporter: nagaseyasuhito Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.31 Version: Resolution: open Projection: none ETA: none Summary: is_callable method is different behavior from PHP5.x Description: I found a bug of is_callable method behavior. see Additional Information. thanks. Steps To Reproduce: Additional $ php -v Information: PHP 5.3.3 (cli) (built: Jul 3 2012 16:53:21) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies $ cat test.php <?php class Test { protected static function protected_static_method() { } public static function caller() { var_dump(is_callable(array("Test", "protected_static_method"))); } } var_dump(is_callable(array("Test", "protected_static_method"))); Test::caller(); $ java -cp resin.jar com.caucho.quercus.CliQuercus test.php bool(false) bool(false) $ php test.php bool(false) bool(true) Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5276 [Quercus] minor always 11-14-12 10:23 11-14-12 10:29 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: magento does not work Description: (rep by M. Tiedemann) Tried 1.7.0.2. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5046 [Hessian] crash always Date Submitted: 04-26-12 03:25 Last Update: 11-05-12 17:33 Reporter: laruellec Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: Java 1.7 Locale serialization fails Description: Using Spring HessianServiceExporter, we have a service that has a Locale parameter. Everything works fine in Java 1.6 (the webapp is hosted in tomcat) But if we setup tomcat to use Java 1.7, all calls crash. The root cause of the exception is : Caused by: java.lang.NullPointerException at java.util.Locale.readResolve(Locale.java:2096) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.caucho.hessian.io.UnsafeDeserializer.resolve(UnsafeDeserializer.java:291) at com.caucho.hessian.io.UnsafeDeserializer.readMap(UnsafeDeserializer.java:217) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5224 [Quercus] minor always 09-26-12 11:45 09-26-12 11:45 Reporter: nam Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.31 Version: Resolution: open Projection: none ETA: none Summary: add native connection pooling to Quercus Description: (rep by Y. Kawabata) For non-Resin containers, and for the ability to limit connections (which is not possible even with Resin). Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5221 [Quercus] major always 09-20-12 06:34 09-20-12 06:34 Reporter: jamnikr Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.31 Version: Resolution: open Projection: none ETA: none Summary: SimpleXMLElement count return always 0 Description: I use Tomcat 7 and Quercus 4.0.31. I was trying using XML obejct which is transformate in PHP to SimpleXMLElement. When I use method count on this object I get a wrong response. Simple test from PHP.net <?php $xml = '<example xmlns:foo="my.foo.urn"> <foo:a>Apple</foo:a> <foo:b>Banana</foo:b> <c>Cherry</c> </example>'; $sxe = new SimpleXMLElement($xml); $kids = $sxe->children('foo'); var_dump(count($kids)); $kids = $sxe->children('foo', TRUE); var_dump(count($kids)); $kids = $sxe->children('my.foo.urn'); var_dump(count($kids)); $kids = $sxe->children('my.foo.urn', TRUE); var_dump(count($kids)); $kids = $sxe->children(); var_dump(count($kids)); ?> right should be: int(0) int(2) int(2) int(0) int(1) but now is int(0) int(0) int(0) int(0) int(0) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5187 [Quercus] minor always 08-24-12 00:53 08-30-12 03:23 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: oci_fetch_array() with OCI_RETURN_LOBS not implemented Description: (rep by Kiarash) At the moment, We are having some technical difficulties regarding implemented methods (for Oracle Database) in Quercus. We are unable to retrieve CLOB values from database (all others work fine).following is the exception we get: com.caucho.quercus.UnimplementedException: `oci_fetch_array with OCI_RETURN_LOBS' Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5191 [Quercus] minor always 08-26-12 21:05 08-26-12 21:05 Reporter: cmidnite Assigned To: Platform: OS: Priority: normal OS Version: Status: new Product 4.0.27 Version: Product Build: Resolution: open Projection: none ETA: none Summary: mb_get_info() not fully implemented. Description: According to the PHP documentation (http://www.php.net/manual/en/function.mb-getinfo.php) [^] mb_get_info() has an optional parameter which if either not provided or set to 'all', an array of all the internal setting parameters of mbstring should be returned. If the name of a specific setting is passed the value of the specific setting returned. As of 4.0.25 (for some reason the Product Version of the bug reporter skips from 4.0.14 to 4.0.27) only passing 'internal_encoding' and 'http_output' work. All others, result in 'Warning: unsupported option: XXX' where XXX is the setting value being asked for. In the case of 'all' or no-parameter 'all' is referenced in the warning. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5188 [Quercus] minor always 08-24-12 15:36 08-24-12 15:36 Reporter: ferg Last Update: Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: quercus stack trace in exception Description: Yep, I have a php page with echo $testBean->toString(); toString() throws RuntimeException. In the browser and log I see the below: 500 Servlet Exception [show] java.lang.RuntimeException: adsf com.caucho.quercus.QuercusException: qa.TestBean.toString: adsf at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:120) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:808) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:684) at com.caucho.quercus.program.JavaClassDef.callMethod(JavaClassDef.java:661) at com.caucho.quercus.env.JavaValue.callMethod(JavaValue.java:327) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:91) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:97) at com.caucho.quercus.statement.EchoStatement.execute(EchoStatement.java:57) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:414) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePageTop(Env.java:4239) at com.caucho.quercus.env.Env.executeTop(Env.java:4182) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:197) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:556) at javax.servlet.http.HttpServlet.service(HttpServlet.java:97) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) at com.caucho.server.httpcache.ProxyCacheFilterChain.doRequestCacheable(ProxyCacheFilterChain.java:251) at com.caucho.server.httpcache.ProxyCacheFilterChain.doFilter(ProxyCacheFilterChain.java:192) 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:289) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:838) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1309) at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1265) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1249) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1157) at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:956) at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117) at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169) at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) Caused by: java.lang.RuntimeException: adsf at qa.TestBean.toString(TestBean.java:7) 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:597) at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:105) at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:808) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:684) at com.caucho.quercus.program.JavaClassDef.callMethod(JavaClassDef.java:661) at com.caucho.quercus.env.JavaValue.callMethod(JavaValue.java:327) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:91) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:97) at com.caucho.quercus.statement.EchoStatement.execute(EchoStatement.java:57) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:414) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePageTop(Env.java:4239) at com.caucho.quercus.env.Env.executeTop(Env.java:4182) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:197) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:556) at javax.servlet.http.HttpServlet.service(HttpServlet.java:97) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) at com.caucho.server.httpcache.ProxyCacheFilterChain.doRequestCacheable(ProxyCacheFilterChain.java:251) at com.caucho.server.httpcache.ProxyCacheFilterChain.doFilter(ProxyCacheFilterChain.java:192) 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:289) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:838) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1309) at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1265) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1249) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1157) at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:956) at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117) at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169) at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 5174 [Quercus] minor always 08-07-12 16:23 08-08-12 06:15 Reporter: awebdeveloper Assigned To: Last Update: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.28 Version: Resolution: open Projection: none ETA: none Summary: Quercus cannot find or include PHP files through WAR overlay Description: Hi, I am using Jetty to run the Quercus webapp (WAR file). I do this using the jetty-maven-plugin and the jetty:run Maven goal. The jetty:run goal does some handy things with overlaying WAR files, and allows me to edit .php files while the web server is running. In other words, I can edit my PHP webapp and see changes in real time. At one point I had the idea of separating some of the PHP files into a separate WAR file for maintainability (e.g. a PHP framework or CMS) and overlay that WAR over my webapp project. This gives me some troubles however, as Quercus is unable to locate the .php files from the overlaid WAR when Jetty is started using the jetty:run Maven goal. It does work correctly when using the jetty:run-war goal, but, then I cannot edit my PHP files and directly see the changes (I have to stop the web server and start it again). I have been digging around somewhat, and I think this might be related to a servletContext.getRealPath() call that is missing somewhere in the Quercus code (instead another mechanism is used to determine the requested script location). This suspicion is getting stronger when looking at file modules/quercus/src/com/caucho/quercus/servlet/QuercusServletImpl.java, line 287: protected Path getPath(HttpServletRequest req) (full method source code under "Additional Information") This method has req.getRealPath() explicitly commented out because of an earlier incompatibility (php/8173, I can't find anything about it unfortunately). But, this causes a new incompatibility with WAR overlays, because WAR overlays rely on getRealPath(). I am thinking about how to fix this. I could use some pointers on how to go about this. For example, if I fix it here, will it also work for php include/require calls? Also, if possible, I would also like some background information on issue php/8173 to make sure I don't recreate the former issue. Any feedback is greatly appreciated. Steps To Reproduce: Additional The full getPath() method from Information: modules/quercus/src/com/caucho/quercus/servlet/QuercusServletImpl.java for reference: protected Path getPath(HttpServletRequest req) { // php/8173 Path pwd = getQuercus().getPwd().copy(); StringBuilder sb = new StringBuilder(); String servletPath = QuercusRequestAdapter.getPageServletPath(req); if (servletPath.startsWith("/")) { sb.append(servletPath, 1, servletPath.length()); } else { sb.append(servletPath); } String pathInfo = QuercusRequestAdapter.getPagePathInfo(req); if (pathInfo != null) { sb.append(pathInfo); } String scriptPath = sb.toString(); Path path = pwd.lookupChild(scriptPath); return path; /* jetty getRealPath() de-references symlinks, which causes problems with MergePath // php/8173 Path pwd = getQuercus().getPwd().copy(); String scriptPath = QuercusRequestAdapter.getPageServletPath(req); String pathInfo = QuercusRequestAdapter.getPagePathInfo(req); Path path = pwd.lookup(req.getRealPath(scriptPath)); if (path.isFile()) return path; // XXX: include String fullPath; if (pathInfo != null) fullPath = scriptPath + pathInfo; else fullPath = scriptPath; } Attached Files: return pwd.lookup(req.getRealPath(fullPath)); */ Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3826 [Quercus] minor always 12-23-09 10:26 08-07-12 14:51 Reporter: alex Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: quercus standalone: debug_backtrace() returns an empty array Description: -tomcat 5.5 -java 6 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5157 [Quercus] minor always 07-26-12 13:15 07-30-12 11:10 Reporter: alex Platform: Assigned To: Priority: normal Status: new Product Build: OS: OS Version: Product 4.0.28 Version: Resolution: open Projection: none ETA: none Summary: quercus: QuercusServlet with init-param script-encoding="UTF-8" Description: produces garbled characters Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4718 [Quercus] minor always 08-18-11 10:05 06-12-12 15:50 Reporter: rickHigh Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: Can't debug Quercus with Eclipse IDE Description: Can't debug Quercus with Eclipse IDE Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4011 [Hessian] major always 04-21-10 05:33 06-06-12 01:06 Reporter: schatterjee Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.1.6 Version: Resolution: open Projection: none ETA: none Summary: Server Exceptions Not getting passed to client (Found root cause and possible Fix) Description: Problem Description ------------------Server side exception could not be serialized to cilent side. Even if we throw SabaException from our Server, the client is receiving ?org.springframework.remoting.RemoteAccessException?. Root Cause ----------1. On investigation we found that there were a problem in serialization of exceptions in Hessian 2.0 Protocol. 2. Hessian was using buffers to serialize the exception and the buffer was flushed to output streams only if the buffer was full. 3. There was a problem during serialization of StackTraceElement 4. On completion of serialization the buffer was not flushed, due to which incomplete serialized exception was being sent to client. 5. As a result client gets exception ?readObject: unexpected end of file? while de-serializing the exception and it results in RemoteAccessException Solution ------1. We fixed the issue by adding a flush() statement at the end of writeFault() method in Hessian2Output.java Please advise if this fix is right or not and when can we expect a formal fix for this. I have attached both the original source code and modified source code for Hessian2Output.java Steps To Reproduce: Additional There is already a bug reported for same error -> 0003030: Server side exception could not be Information: serialized to cilent side. (http://bugs.caucho.com/view.php?id=3030) [^] 04-21-10 05:33 04-21-10 05:33 Attached Files: Hessian2Output_Fixed.java (34 KB) Hessian2Output.java (34 KB) Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 5104 [Hessian] major always Reporter: ccampo Assigned To: Date Submitted: 06-06-12 01:01 Last Update: 06-06-12 01:01 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.0 Version: Resolution: open Projection: none ETA: none Summary: AbstractDeserializer: UnsupportedOperationException Description: For a remoteservice call we see on the server an UnsupportedOperationException. It happens when deserializing the parameter for the call (before the method invocation). Not sure what object causes this. This is the stacktrace: com.caucho.hessian.io.CollectionDeserializer@552b552b java.lang.UnsupportedOperationException: com.caucho.hessian.io.CollectionDeserializer@552b552b at com.caucho.hessian.io.AbstractDeserializer.readObject(AbstractDeserializer.java:103) at com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2048) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1689) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1676) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:176) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:109) 1) I noticed that in AbstractDeserializer the method "readObject(AbstractHessianInput in)" throws a protocol error giving details about the object in errro. The method "readObject(AbstractHessianInput in, String []fieldNames)" just throws an UnsupportedOperationException. (This way still in 4.0.7). That is at least unhelpful, since the information which object caused the problem is missing in the log file. 2) While the exception is shown in our error logs on the server, it is not shown as an exception on the client. The HessianSkeleton class calls "out.writeFault" for errors in the remote service. Exception while deserializing the input are not reported back to the client with "out.writeFault". The client just gets no exception and continues without noticing that the remote service has failed. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5093 [Hessian] major always 05-28-12 23:35 05-28-12 23:50 Reporter: MicW Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: Transfer of Large Binary Data not working within Objects Description: 0003655 fixes the issue for 4.0.x for the case if a method returns an InputStream: public InputStream getDownload(String filename); But if the Stream is contained within a result Object, all Versions of Hessian (3.1.3, 3.1.5, 4.0.7) fails: public Download getDownload(String filename); public class Download { String filename; InputStream data; } The exception on the client side is like in 0003655 (Stream is closed). Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5052 [Quercus] minor always 04-27-12 17:49 04-27-12 17:49 Reporter: rickHigh Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: MediaWiki Querucs: problem viewing http://wiki4.caucho.com/Special:ListFiles [^] Description: Database error A database query syntax error has occurred. This may indicate a bug in the software. The last attempted database query was: (SQL query hidden) from within function "IndexPager::reallyDoQuery (ImageListPager)". Database returned error "1054: Unknown column 'count' in 'field list' (wiki.czkhoetk0gmx.us-east1.rds.amazonaws.com)". Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5051 [Quercus] minor always 04-27-12 17:48 04-27-12 17:48 Reporter: rickHigh Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Unable to upload files in mediawiki Description: After upload, 404 page displays as mediawiki tries to display image that does not exist. (happens on wiki4.caucho.com) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5050 [Quercus] minor always 04-26-12 17:26 04-26-12 17:26 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.27 Version: Product Build: Resolution: open Projection: none ETA: none Summary: quercus cannot find jar'ed php files Description: (rep by A. Uppula) need to finish support for jar'ed files Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5038 [Quercus] minor always 04-21-12 15:39 04-21-12 15:39 Reporter: nam Platform: Assigned To: Priority: normal Status: new Product Build: OS: OS Version: Product 4.0.27 Version: Resolution: open Projection: none ETA: none Summary: Symfony 2.0.12 not working Description: (rep by B. Au) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 5009 [Quercus] crash always 04-02-12 03:49 04-02-12 03:49 Reporter: jjramosgo Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: 4.0.27 Resolution: open Projection: none ETA: none Summary: unimplemented exception when using com.caucho.quercus.lib.dom.DOMDocument.schemaValidate(DOMDocument.ja Description: com.caucho.quercus.QuercusException: com.caucho.quercus.lib.dom.DOMDocument.schemaValidate: This functional more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemen the bugtracking system at http://bugs.caucho.com [^] at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:131) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:718) at com.caucho.quercus.program.JavaClassDef.callMethod(JavaClassDef.java:658) at com.caucho.quercus.env.JavaValue.callMethod(JavaValue.java:327) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:97) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:97) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:665) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:83) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:413) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePage(Env.java:3983) at com.caucho.quercus.env.Env.include(Env.java:5467) at com.caucho.quercus.expr.FunIncludeExpr.eval(FunIncludeExpr.java:90) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.SwitchStatement.execute(SwitchStatement.java:99) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:413) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePage(Env.java:3983) at com.caucho.quercus.env.Env.include(Env.java:5467) at com.caucho.quercus.expr.FunIncludeExpr.eval(FunIncludeExpr.java:90) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:413) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePage(Env.java:3983) at com.caucho.quercus.env.Env.include(Env.java:5467) at com.caucho.quercus.expr.FunIncludeExpr.eval(FunIncludeExpr.java:90) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:413) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePage(Env.java:3983) at com.caucho.quercus.env.Env.include(Env.java:5467) at com.caucho.quercus.expr.FunIncludeExpr.eval(FunIncludeExpr.java:90) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:413) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePageTop(Env.java:3994) at com.caucho.quercus.env.Env.executeTop(Env.java:3935) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:189) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:594) at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:680) Caused by: com.caucho.quercus.UnimplementedException: This functionality has not been implemented. A more rece available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtr http://bugs.caucho.com [^] at com.caucho.quercus.lib.dom.DOMDocument.schemaValidate(DOMDocument.java:656) 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:597) at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:117) ... 76 more Caused by: com.caucho.quercus.QuercusExecutionException: com.caucho.quercus.UnimplementedException This fun implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests can be entered in the bugtracking system at http://bugs.caucho.com [^] at com.caucho.quercus.lib.dom.DOMDocument.schemaValidate(DOMDocument.java:656) 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:597) at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:117) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:718) at com.caucho.quercus.program.JavaClassDef.callMethod(JavaClassDef.java:658) at com.caucho.quercus.env.JavaValue.callMethod(JavaValue.java:327) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:97) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:97) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:665) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:83) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:413) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePage(Env.java:3983) at com.caucho.quercus.env.Env.include(Env.java:5467) at com.caucho.quercus.expr.FunIncludeExpr.eval(FunIncludeExpr.java:90) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.SwitchStatement.execute(SwitchStatement.java:99) at .(/Users/juanjo/Documents/Inves/Servers/glassfishv3/glassfish/domains/domain1/applications/itsconsole/moduls/mo Steps To Reproduce: Additional actually, I use (war) version 4.0.25 from www.caucho.com/download Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4111 [Quercus] major always 07-07-10 06:27 03-22-12 13:44 Reporter: jeffrhysjones Assigned To: Platform: OS: Priority: normal Status: assigned Product Build: OS Version: Product 4.0.9 Version: Resolution: open Projection: none ETA: none Summary: Various XCART issues Description: First of all - am able to install Modx on the setup that seems to work OK there is one issue with being unable to delete a cache file, but I can log in etc. Am able to fire up xcarts installation script. The first 'php' check passes fine. The DB setup screen connect to the target DB fine. The part of the setup where xcart then reads SQL in from local files in order to populate the database with demo content fails with the error 'no database selected' [sql script name]. If I append USE DATABASENAME to this sql script - this portion of the install then works. I have no idea why I need to modify this SQL file - whereas on the traditional PHP setup this is no needed. Once this part of the install completes - xcart loads up and it looks like it's all good. However, there are some big issues: 1) Clicking on 'add to cart' - this seems to want to do some sort of ajax update / call an include which fails, so an error is returned. 2) Trying to log in to the admin page, you just get redirected back to the home page. Looking at the logs - if I select finest mode - there is just so much stuff coming down, I don't know what is good or what is bad. Going a few steps back, and trying to match in these error events (adding to cart, logging in) with errors in the logs this was again hard due to the amount of errors - but the following type cropped up: com.caucho.quercus.QuercusException: com.caucho.quercus.QuercusException: com.caucho.quercus.QuercusException: were provided [fopen] com.caucho.quercus.QuercusException: com.caucho.quercus.QuercusException: valid include path com.caucho.quercus.QuercusException: $mode is an undefined variable $adaptive_restart is an undefined variable function 'fopen' has 2 required arguments, but only 1 fopen mode must not be null [fopen] 'D:\resina\webapps\xcart/config.local.php' is not a '../../top.inc.php' is not a valid include path These errors / or variants make up most of the errors. Hope this report is useful, and that we can get this puppy working! Cheers, Jeff Steps To Reproduce: Additional Running latest build (4.0.9) Information: Server OS > Windows 2008 R2 Web server, Windows 2008 R2 Standard Using Resin as HTTP server (not IIS) to keep things simple Using MySQL driver for JDBC 1.5.13 Using Java JDK 1.6.20 I needed to install the SSL update to enable higher java encryption for some reason - not sure if that is relevant... Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4245 [Quercus] minor have not tried 10-07-10 07:11 03-22-12 13:43 Reporter: domdorn Assigned To: Priority: low Status: acknowledged Product Build: Projection: none Platform: OS: OS Version: Product 4.0.11 Version: Resolution: open ETA: none Summary: methods beginning with underscore not visible in get_declared_methods Description: quercus produces a different array when calling get_declared_methods in a class in zendframework than zends php. zend reports: Array ( [0] => init [1] => indexAction [2] => __construct [3] => initView [4] => render [5] => renderScript [6] => getViewScript [7] => getRequest [8] => setRequest [9] => getResponse [10] => setResponse [11] => _setInvokeArgs [12] => getInvokeArgs [13] => getInvokeArg [14] => getHelper [15] => getHelperCopy [16] => setFrontController [17] => getFrontController [18] => preDispatch [19] => postDispatch [20] => __call [21] => dispatch [22] => run [23] => _getParam [24] => _setParam [25] => _hasParam [26] => _getAllParams [27] => _forward [28] => _redirect ) Quercus reports Array ( [0] => renderScript [1] => __construct [2] => getInvokeArgs [3] => setRequest [4] => init [5] => setFrontController [6] => getResponse [7] => run [8] => getInvokeArg [9] => render [10] => getFrontController [11] => preDispatch [12] => __call [13] => indexAction [14] => postDispatch [15] => getHelper [16] => dispatch [17] => setResponse [18] => initView [19] => getRequest [20] => getViewScript [21] => getHelperCopy ) difference: [11] => [23] => [24] => [25] => [26] => [27] => [28] => _setInvokeArgs _getParam _setParam _hasParam _getAllParams _forward _redirect will add testcase soon. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3974 [Quercus] block always 03-30-10 12:10 03-22-12 13:43 Reporter: rfeldman Assigned To: Platform: OS: Priority: normal Status: feedback Product Build: OS Version: Product 4.0.5 Version: Resolution: open Projection: none ETA: none Summary: QuercusView for Spring MVC integration no longer works in 4.0.5 Description: Our company has been using QuercusView to make Quercus PHP our View implementation for Spring MVC successfully since 4.0.3. However, attempting to upgrade to 4.0.5 (for both Resin and resin-spring) shows that QuercusView no longer works and the application is nonfunctional. Previously QuercusView populated $GLOBALS based on the model information it was passed, but now in 4.0.5 $GLOBALS always starts off empty except for a reference to itself. It has not been populated in any way. Looking at the changelogs, namespaces were introduced in 4.0.4...is this maybe part of the problem? Is there a workaround, or are we going to have to abandon Quercus for JSPs? (I hope not.) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4264 [Quercus] major always 10-19-10 15:15 03-22-12 13:43 Reporter: gbruins Platform: Assigned To: OS: Priority: normal OS Version: Status: acknowledged Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: 'strptime' PHP function is not supported in Quercus Description: http://php.net/manual/en/function.strptime.php [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3384 [Quercus] major always Reporter: al Assigned To: Date Submitted: 03-10-09 22:03 Last Update: 03-22-12 13:43 Platform: OS: Priority: normal Status: assigned Product Build: OS Version: Product 4.0.11 Version: Resolution: open Projection: none ETA: none Summary: Quercus + Zend Framework => controller resolution broken Description: The simple Zend controller tutorial (ZF 1.7) does not work with Quercus. The controller does not get called and a blank page is being rendered (no error message). Sounds like a reflection issue. http://framework.zend.com/manual/en/zend.controller.html#zend.controller.quickstart.go [^] I believe this is related to this issue (although claimed to be fixed in 4.0) http://bugs.caucho.com/view.php?id=3038 [^] Steps To Reproduce: Additional Information: Attached quercus.zip (23 KB) Files: 09-29-10 01:33 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3810 [Quercus] minor always 12-11-09 20:57 03-22-12 13:43 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: assigned Product Build: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: pg_escape_string() missing argument Description: (rep by domdorn) http://forum.caucho.com/showthread.php?t=2431 [^] Since PHP 5.2 pg_escape_string has the optional first parameter connection http://de.php.net/pg_escape_string [^] Quercus says it is 5.2, but does not provide a constructor for this, thus code that uses this (e.g. Pear::Auth / Pear:B ) throws exceptions/fails. Steps To Reproduce: Additional Information: Attached Files: pg_escape_string.patch (1 KB) 01-28-10 14:44 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4295 [Quercus] crash always 11-16-10 08:58 03-22-12 13:42 Reporter: timboco Assigned To: Priority: normal Status: assigned Product Build: Platform: OS: OS Version: Product Version: 4.0.13 Resolution: open Projection: none ETA: none Summary: Stack Overflow / Infinite recursion with Zend Framework (in ArrayModule.array_key_exists) Description: Quercus Servlet throws a java.lang.StackOverflowError, which appears to be due to an infinite call loop stared in com.caucho.quercus.lib.ArrayModule.array_key_exists(ArrayModule.java:423). Steps To Reproduce: Additional I am running Quercus on Glassfish V3.01, trying to set it up with the Zend Framework v1.11.0. (This should be possib Information: domhorn fixed Bug 0004243, although there still is an open issue with Zend open, i.e. Bug 0003384). There is a StackOverflow when calling, for example: Zend_View_Helper_HeadMeta::headMeta() Zend_View_Helper_HeadTitle::headTitle() Zend_View_Helper_Doctype::doctype() This is the actual code I am calling in a layout.phtml file, and it catches a StackOverflowError: <?php try { $this->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8'); $this->headTitle()->setSeparator(' - '); $this->headTitle('Zend Framework Tutorial'); echo $this->doctype(); } catch (Exception $ex) { echo $ex->__toString(); } ?> Here is a snippet from Glassfish's server.log (full log attached), if wanted I can also provide the .war file: [#|2010-11-15T10:06:37.3430700|WARNING|glassfish3.0.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=31;_Thre 1;|ApplicationDispatcher[/index] PWC1231: Servlet.service() for servlet Quercus Servlet threw exception com.caucho.quercus.QuercusModuleException: java.lang.StackOverflowError at com.caucho.quercus.QuercusModuleException.create(QuercusModuleException.java:64) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:150) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:737) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:643) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:239) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:151) at com.caucho.quercus.expr.Expr.evalValue(Expr.java:469) at com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:69) at com.caucho.quercus.program.Function.callImpl(Function.java:433) at com.caucho.quercus.program.Function.callMethod(Function.java:469) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:614) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:819) at com.caucho.quercus.env.Value.callMethod(Value.java:1608) at com.caucho.quercus.lib.spl.ArrayAccessDelegate.isset(ArrayAccessDelegate.java:77) at com.caucho.quercus.env.ObjectValue.isset(ObjectValue.java:289) at com.caucho.quercus.env.Value.keyExists(Value.java:2668) at com.caucho.quercus.lib.ArrayModule.array_key_exists(ArrayModule.java:423) at sun.reflect.GeneratedMethodAccessor1131.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:135) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:737) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:643) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:239) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:151) at com.caucho.quercus.expr.Expr.evalValue(Expr.java:469) at com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:69) at com.caucho.quercus.program.Function.callImpl(Function.java:433) at com.caucho.quercus.program.Function.callMethod(Function.java:469) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:614) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:819) at at at at at at at at com.caucho.quercus.env.Value.callMethod(Value.java:1608) com.caucho.quercus.lib.spl.ArrayAccessDelegate.isset(ArrayAccessDelegate.java:77) com.caucho.quercus.env.ObjectValue.isset(ObjectValue.java:289) com.caucho.quercus.env.Value.keyExists(Value.java:2668) com.caucho.quercus.lib.ArrayModule.array_key_exists(ArrayModule.java:423) sun.reflect.GeneratedMethodAccessor1131.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) Attached server.log_2010-11-15T10-47-25.zip (22 KB) Files: 11-16-10 08:58 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 4324 [Quercus] major always Reporter: gbruins Date Submitted: 12-09-10 12:23 Last Update: 03-22-12 13:42 Platform: Assigned To: OS: Priority: normal Status: assigned Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: unset() function does not work properly Description: Per the manual on php.net: "__unset() is invoked when unset() is used on inaccessible properties" However __unset() not called on inaccessible object properties. Here is some code that reproduces the issue: =================================================== <?php class PropertyTest { /** Location for overloaded data. */ private $data = array(); /** Overloading not used on declared properties. */ public $declared = 1; /** Overloading only used on this when accessed outside the class. */ private $hidden = 2; } /** As of PHP 5.1.0 */ public function __unset($name) { echo "Unsetting '$name'\n"; unset($this->data[$name]); } $obj = new PropertyTest; echo "Unsetting visible object property\n\n"; unset($obj->declared); // should not print anything echo "\n\nUnsetting invisible object property\n"; unset($obj->hidden); // should print "Unsetting 'hidden'" ?> Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3989 [Quercus] minor always 04-08-10 17:59 03-22-12 13:42 Reporter: nam Platform: Assigned To: OS: Priority: normal Status: assigned Product Build: OS Version: Product 4.0.5 Version: Resolution: open Projection: none ETA: none Summary: Unable to UNSET values in Drupal 6.16 / Quercus 4.0.3 Description: (rep by sblommers) http://forum.caucho.com/showthread.php?t=7383 [^] $original = node_load(1979); $original->status = 1; $original->field_date_fasttrack[0]['value'] = "2010-01-01T00:00:00"; // THIS WORKS $original->field_date_fasttrack[0]['value'] = "0000-00-00T:00:00:00"; // THIS DOES NOT WORK but it is incorrect date so that's obvious $original->field_date_fasttrack[0]['value'] = ""; // THIS DOES NOT WORK $original->field_date_fasttrack[0]['value'] = NULL; // THIS DOES NOT WORK $original->field_module[0]['value'] = "1111"; // THIS WORKS $original->field_module[0]['value'] = ""; // THIS DOES NOT WORK $original->field_module[0]['value'] = NULL; // THIS DOES NOT WORK $original->field_module[0] = NULL; // THIS DOES NOT WORK Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4233 [Quercus] minor always 09-29-10 04:13 03-22-12 13:42 Reporter: domdorn Platform: Assigned To: OS: Priority: normal OS Version: Status: acknowledged Product Build: Product 4.0.10 Version: Resolution: open Projection: none ETA: none Summary: Quercus: AppendIterator is an unknown class Description: rep by droid: I tried installing Drupal on Quercus, bolth on Quercus/Tomcat and Quercus/Resin . Installing Drupal works really well, but when I try to activate the RDF module I keep getting the same error: Quote: com.caucho.quercus.QuercusException: 'AppendIterator' is an unknown class. I'm grateful for any idea on how to fix this, I'd like to run Drupal/RDF on Quercus since accessing Java RDFstores should be faster this way. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 3919 [Quercus] minor always 02-27-10 03:16 Reporter: walec51 Assigned To: Platform: OS: Priority: normal Status: assigned Product Build: OS Version: Product Version: 4.0.5 Resolution: open Projection: none ETA: none Summary: java.lang.IllegalStateException on post preview in forum.caucho.com Description: When I try to preview a post in the Caucho's forum I get: 500 Servlet Exception [show] java.lang.IllegalStateException java.lang.IllegalStateException at com.caucho.quercus.env.MethodMap.get(MethodMap.java:143) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:795) at com.caucho.quercus.env.Value.callMethod(Value.java:1645) at _quercus._includes._class_0bbcode__php$quercus_vB_BbCodeParser_0$fun_parse_array_13.callMethod(var/www/h at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:810) at _quercus._includes._class_0bbcode__php$quercus_vB_BbCodeParser_0$fun_parse_bbcode_10.callMethod(var/www/ at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:810) at _quercus._includes._class_0bbcode__php$quercus_vB_BbCodeParser_0$fun_do_parse_4.callMethodImpl(var/www/h at com.caucho.quercus.function.CompiledMethod_N.callMethod(CompiledMethod_N.java:108) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:762) at _quercus._includes._class_0bbcode__php$quercus_vB_BbCodeParser_0$fun_parse_3.callMethodImpl(var/www at com.caucho.quercus.function.CompiledMethod_N.callMethod(CompiledMethod_N.java:108) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:662) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:810) at _quercus._newreply__php.execute(var/www/hosts/forum.caucho.com/webapps/ROOT/newreply.php:995) at com.caucho.quercus.env.Env.executePageTop(Env.java:3850) at com.caucho.quercus.env.Env.executeTop(Env.java:3793) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:185) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:610) at javax.servlet.http.HttpServlet.service(HttpServlet.java:96) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:183) at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:169) at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:103) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:780) at com.caucho.server.connection.TcpConnection.dispatchRequest(TcpConnection.java:600) at com.caucho.server.connection.TcpConnection.handleRequestsImpl(TcpConnection.java:566) at com.caucho.server.connection.TcpConnection.handleRequests(TcpConnection.java:519) at com.caucho.server.connection.TcpConnection$KeepaliveRequestTask.doTask(TcpConnection.java:1146) at com.caucho.server.connection.TcpConnection$ConnectionReadTask.runThread(TcpConnection.java:1034) at com.caucho.server.connection.TcpConnection$KeepaliveRequestTask.run(TcpConnection.java:1139) at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:901) at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:866) Resin/4.0.s100214 Server: '' Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4158 [Quercus] minor always 08-03-10 13:34 03-22-12 13:41 Reporter: GT500 Assigned To: Priority: normal Status: confirmed Product Build: Platform: OS: OS Version: Product 4.0.9 Version: Resolution: open Projection: none ETA: none Summary: Quercus - vBulletin 4.0.5 - Error when trying to add avatar Description: When trying to add an avatar to my user account on my vBulletin 4.0.5 forum I receive an error. When I try to add one from a URL, I receive the error documented in the attached text file. When I try to upload one from disk, I receive a message from vBulletin that says "Imageinfo Failed:" with no other information about the error. Steps To Reproduce: Additional Here are the URL's of the forum and the avatar that I was trying to add, just in case it makes Information: any difference. http://www.gt500.org/forums/ [^] http://www.gt500.org/fedora.png [^] Attached Files: resin_4.0.9_vbulletin_4.0.5_add_avatar_from_url_error.txt (7 KB) 08-03-10 13:34 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4148 [Quercus] minor always 07-30-10 03:40 03-22-12 13:41 Reporter: andrew_miah Assigned To: Platform: OS: Priority: normal Status: feedback Product Build: OS Version: Product 4.0.9 Version: Resolution: open Projection: none ETA: none Summary: Java String variable argument lists. Description: Invoking a java method expecting a variable length list of Strings: public void myMethod( String... params ) { ... } Causes the following to be reported from Quercus: Fatal Error: Can't assign Some-Text with type class com.caucho.quercus.env.ConstStringValue to class java.lang.String Steps To Reproduce: Additional Changing the Java method to accept "Object..." resolves the problem. Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4554 [Quercus] major always 05-16-11 03:28 03-22-12 13:41 Reporter: pgervaise Platform: Assigned To: OS: Priority: normal OS Version: Status: acknowledged Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: Class variable "not found" if null Description: When setting a class property to NULL then the class property is as non existing so the function __get() is called ! [code] <?php class A { public $attr = null; } public function __get($name) { die("UNKNOW ATTRIBUTE : $name"); } $a = new A(); echo is_null($a->attr) ? "NULL" : "NOT NULL"; ?> [/code] This code fail (die) with Quercus 4.0.18 but work with Quercus 4.0.11 (and work with PHP). Steps To Reproduce: Additional Information: Attached Files: bug_class_attr_null.php (0 KB) 05-16-11 03:28 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4310 [Quercus] major always 11-30-10 12:32 03-22-12 13:41 Reporter: gspeicher Assigned To: Priority: normal Status: assigned Product Build: Projection: none Platform: OS: OS Version: Product 4.0.13 Version: Resolution: open ETA: none Summary: inconsistent behavior for declared attributes when accessed from member functions versus public member access Description: Declaring attributes in user-defined classes results in the following problematic situation: class A { public $x = 1; public function __construct() { $this->x = 2; } public function foo() { return $this->x; } } $a = new A(); print "a.x: " . $a->x . " \n"; print "a.foo(): " . $a->foo() . " \n"; class B { # note no declaration for x public function __construct() { $this->x = 2; } public function foo() { return $this->x; } } $b = new B(); print "b.x: " . $b->x . " \n"; print "b.foo(): " . $b->foo() . " \n"; Expected output: a.x: 2 a.foo(): 2 b.x: 2 b.foo(): 2 Actual output: a.x: 1 a.foo(): 2 b.x: 2 b.foo(): 2 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4878 [Quercus] major always 11-28-11 11:27 03-09-12 12:34 Reporter: krystian Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: No 4.0.24 Maven dependency in Caucho M2 repository Description: Resin 4.0.24 is available at http://www.caucho.com/download/ [^] since 18th of November, but not as Maven dependency as is http://caucho.com/m2/com/caucho/resin/4.0.23/ [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4376 [Hessian] major always 02-07-11 05:11 02-26-12 03:51 Reporter: p_wright Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.13 Version: Resolution: open Projection: none ETA: none Summary: Memory leak due to ServiceContext not clearing ThreadLocal Description: HessianServlet sets up a ServiceContext type for convenience, this uses a ThreadLocal to store an instance of ServiceContext however when the service call completes it does not clean up the ThreadLocal. This dangling ThreadLocal reference prevents Tomcat from freeing the ClassLoader associated with the webapp. It looks like ServiceContext.end() should call _localContext.remove() Steps To Reproduce: Additional The error message produced by Tomcat 7: Information: SEVERE: The web application [/hessianwebapp] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@655e3dc4]) and a value of type [com.caucho.services.server.ServiceContext] (value [com.caucho.services.server.ServiceContext@e2942da]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. 07-Feb-2011 12:56:31 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE: The web application [/hessianwebapp] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@655e3dc4]) and a value of type [com.caucho.services.server.ServiceContext] (value [com.caucho.services.server.ServiceContext@36e3fd79]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. 07-Feb-2011 12:56:31 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE: The web application [/hessianwebapp] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@655e3dc4]) and a value of type [com.caucho.services.server.ServiceContext] (value [com.caucho.services.server.ServiceContext@32162f16]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. 07-Feb-2011 12:56:31 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE: The web application [/hessianwebapp] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@655e3dc4]) and a value of type [com.caucho.services.server.ServiceContext] (value [com.caucho.services.server.ServiceContext@4e6d670a]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. 07-Feb-2011 12:56:31 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE: The web application [/hessianwebapp] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@655e3dc4]) and a value of type [com.caucho.services.server.ServiceContext] (value [com.caucho.services.server.ServiceContext@7087e9bf]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. 07-Feb-2011 12:56:31 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE: The web application [/hessianwebapp] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@655e3dc4]) and a value of type [com.caucho.services.server.ServiceContext] (value [com.caucho.services.server.ServiceContext@6b033450]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. 07-Feb-2011 12:56:31 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE: The web application [/hessianwebapp] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@655e3dc4]) and a value of type [com.caucho.services.server.ServiceContext] (value [com.caucho.services.server.ServiceContext@1f5fa713]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. 07-Feb-2011 12:56:31 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE: The web application [/hessianwebapp] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@655e3dc4]) and a value of type [com.caucho.services.server.ServiceContext] (value [com.caucho.services.server.ServiceContext@40d1e07c]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3981 [Hessian] major always 04-06-10 02:40 01-12-12 03:25 Reporter: halid Assigned To: Priority: normal Status: new Product Build: Projection: none ETA: none Platform: OS: OS Version: Product 4.0.3 Version: Resolution: open Summary: Java Enums Deserialization Problem Description: We are using Hessian 4.0.3 as HTTP-Wrapper for our RMI-Services. Since we expanded one of our main services with a new parameter that contains EnumSet and Enums, we get deserialization problems on the client site. I analyzed the problem comparing reference-arrays on the serializer and deserializer side, and could see that the Hessian-Deserializer for EnumSets creates one more reference in his reference-array. This difference leads to deserialization problems on all following attributes that are handled as references because of changed index of reference. I attached a small Java-Program that reproduces this problem. Steps To Reproduce: Additional Java Runtime: Sun jdk1.5.0_16 Information: OS: Windows XP Hessian: 4.0.3 Attached Files: SerializationHessTest.java (2 KB) 04-06-10 02:40 Viewing Issue Advanced Details ID: Category: Severity: 4809 [Documentation] minor Reporter: alex Reproducibility: Date Submitted: Last Update: always 10-14-11 15:35 11-28-11 12:26 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.23 Version: Resolution: open Projection: none ETA: none Summary: update: http://www.caucho.com/articles/resin-cloud.pdf [^] Description: - sessions are not shared between pods - applications are distributed across pods Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4840 [Quercus] major always 11-05-11 12:31 11-05-11 12:31 Reporter: diyism Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: com.caucho.quercus.QuercusException: java.lang.reflect.Method.invoke: argument type mismatch Description: Always show error: com.caucho.quercus.QuercusException: java.lang.reflect.Method.invoke: argument type mismatch The java code: public class GaeFileObject extends AbstractFileObject implements Serializable { private boolean isCombinedLocal; } public void setCombinedLocal(boolean b) { this.isCombinedLocal = b; } The php code: import com.newatlanta.commons.vfs.provider.gae.GaeVFS; import org.apache.commons.io.IOUtils; import java.lang.Long; import java.lang.Boolean; GaeVFS::setRootPath(quercus_servlet_request()->getSession(true)->getServletContext()>getRealPath('/')); define('VFSM', GaeVFS::getManager()); $file=VFSM->resolveFile('gae://gaevfs/tmp1'); [^] $file->getClass()->getDeclaredMethod('setCombinedLocal', array(Boolean::TYPE))>invoke($file, true); The last line "invoke" trigger the "argument type mismatch" error. and i tried: $file->getClass()->getDeclaredMethod('setCombinedLocal', array(Boolean::TYPE))>invoke($file, new Boolean('true')); And the error is still the same. I can't figure out why. It's maybe a bug of quercus. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4815 [Hessian] major always 10-19-11 05:36 10-19-11 05:36 Reporter: dale_peakall Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product Build: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: Deserializing Hessian 1 Response Fails with Java client Description: When using the Java client library if you specify that you expect a Hessian 1 response the deserialization fails because the library still creates a Hessian2Input stream rather than a HessianInputStream. The error is on line 202 of HessianProxy: in = _factory.getHessianInput(is); The default HessianProxyFactory has the following implementation for getHessianInput(): public AbstractHessianInput getHessianInput(InputStream is) { return getHessian2Input(is); } It seems that HessianProxy should be modified to explicitly request a Hessian 1 Input Stream from the proxy factory. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4793 [Hessian] minor always 10-10-11 21:59 10-10-11 21:59 Reporter: ywhua Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.1.5 Version: Resolution: open Projection: none ETA: none Summary: In performance test, the CPU is always over 90% even only 30 users Description: During performance test, we find that the CPU usage is increased very fast, when the vuser comes to 30, the CPU is already over 90%. We use the spring integration with Hessian, and deploy it on Websphere 6 in Redhat 5. Anything can be done to reduce the CPU usage? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 4767 [Quercus] block always Reporter: krystian Assigned To: Date Submitted: 09-18-11 15:09 Last Update: 09-21-11 08:37 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: Array cookies are not read properly Description: Reading a cookie like name[index] doesn't work in Resin/Quercus. When sending a cookie name[index] instead of being processed and put into array variable using index to set the value, a variable named 'name[index]' is set the value. It should behave as described in http://php.net/manual/en/language.variables.external.php#language.variables.external.cookies [^] and http://php.net/manual/en/function.setcookie.php#example-3780 [^] (about reading cookies). It seems that the place where the functionality is missed is http://www.caucho.com/resin-4.0javadoc/com/caucho/quercus/env/Env.html#getCookies%28%29 [^] method, which doesn't distinguish cookies whose names contain square brackets, so it does not treat them as arrays, but just as normal (flat) variables. Steps To Reproduce: Additional In fact it happens in 4.0.19+ Information: Attached issue0004767.patch (3 KB) Files: 09-21-11 08:37 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4772 [Quercus] minor always 09-20-11 11:21 09-20-11 11:21 Reporter: cowan Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: MediaWiki: "Method call 'isCurrent' is not allowed" when editing a new page Description: Attempting to edit a page that does net yet exists throws: /var/www/hosts/wiki/webapps/ROOT/includes/EditPage.php:429: Fatal Error: Method call 'isCurrent' is not allowed for a null value. It does not occur for page that exist. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 2650 [Quercus] minor always 05-06-08 16:39 09-18-11 15:21 Reporter: ferg Last Update: Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.1.6 Version: Resolution: open Projection: none ETA: none Summary: Quercus: open-x fails Description: (rep by Carl Whalley) Sorry to raise a bug report without a resin stack trace, the fact is the resin log thinks all is well but it clearly isn't. Just after you enter the db details on the openx setup page you get "PEAR Error MDB2 Error: Array " and then "failed to create database_action audit table" and "failed to create upgrade_action audit table". When you inspect the db, it seems most of it has been created. Exact steps to reproduce: - Download openx 2.4.5 (http://www.openx.org/download) [^] - Add a suitable web app host to resin. Unzip openx to its root. - Use this WEB-INF\resin-web.xml : <web-app xmlns="http://caucho.com/ns/resin"> [^] <database jndi-name='jdbc/example'> <driver type="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"> <url>jdbc:mysql://localhost/example</url> [^] <user>root</user> <password></password> </driver> </database> <servlet-mapping url-pattern="*.php" servlet-class="com.caucho.quercus.servlet.QuercusServlet"> <init> <compile>true</compile> <database>java:comp/env/jdbc/example</database> <script-encoding>iso-8859-1</script-encoding> </init> </servlet-mapping> </web-app> - Create an empty database "example" - Go through the setup at http://localhost:8080/example [^] and observe after entering the db details the mentioned error messages - Notice most of the database has been created and resin didn't show any errors. It seems most of the error messages come from PEAR. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 4755 [Quercus] minor always Reporter: rickHigh Assigned To: Priority: normal Status: new Product Build: Date Submitted: 09-09-11 14:14 Last Update: 09-09-11 14:14 Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: setFormatOutput is unimplemented by Quercus but needed Description: [11-07-30 09:59:06.870] {http://*:8080-3} [^] com.caucho.quercus.QuercusException: com.caucho.quercus.lib.dom.DOMDocument.setFormatOutput: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtracking system at http://bugs.caucho.com [^] at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:131) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:737) at com.caucho.quercus.env.AbstractJavaMethod.callMethod(AbstractJavaMethod.java:202) at com.caucho.quercus.program.JavaClassDef.putField(JavaClassDef.java:515) at com.caucho.quercus.env.JavaValue.putField(JavaValue.java:241) at com.caucho.quercus.env.Var.putField(Var.java:1530) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4754 [Quercus] minor always 09-09-11 14:12 09-09-11 14:12 Reporter: rickHigh Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: Lazy compilation seems to have issues whereby common methods like define and trim are not found Description: [11-07-30 10:02:49.117] {http://*:8080-3} [^] com.caucho.quercus.QuercusErrorException: /home/resin-pro4.0.19/webapps/ROOT/LIVE/geoip.inc:23: Fatal Error: 'define' is an unknown function. at com.caucho.quercus.env.Env.error(Env.java:6513) at com.caucho.quercus.env.Env.error(Env.java:6399) at com.caucho.quercus.env.Env.error(Env.java:6063) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:209) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:151) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:413) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.ProfileEnv.executePage(ProfileEnv.java:129) at com.caucho.quercus.env.Env.include(Env.java:5421) at _quercus._PHP_FILE_NO_NAME_FOR_PRIVACY_NFO_0v110__php__prof.execute(BLAH_BLAH_BLAH_PHP.java:178) at com.caucho.quercus.env.ProfilePage.execute(ProfilePage.java:119) Here is another instance. [11-07-30 10:00:58.783] {http://*:8080-3} [^] com.caucho.quercus.QuercusErrorException: 'trim' is an unknown function. at com.caucho.quercus.env.Env.error(Env.java:6513) at com.caucho.quercus.env.Env.error(Env.java:6399) at com.caucho.quercus.env.Env.error(Env.java:6047) at com.caucho.quercus.program.UndefinedFunction.call(UndefinedFunction.java:71) at com.caucho.quercus.function.AbstractFunction.call(AbstractFunction.java:442) at _quercus.SOME_OTHER_FILE__prof.execute(SOME_OTHER_FILE.java:99) The client reports that the page loads 10 or fifteen times before the issues occurs. So it would seem that the interpreted mode is working and then fails once the system switches to the compile mode. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3803 [Quercus] block always Reporter: kazio Assigned To: Date Submitted: 12-08-09 01:05 Last Update: 09-04-11 06:58 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: com.caucho.quercus.QuercusException: com.caucho.quercus.lib.db.PDO.getAttribute: This functionality has not been implemented. Description: When running yii framework I always got this. Steps To Reproduce: Additional HTTP ERROR 500 Information: Problem accessing /. Reason: com.caucho.quercus.QuercusException: com.caucho.quercus.lib.db.PDO.getAttribute: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] Caused by: com.caucho.quercus.QuercusException: com.caucho.quercus.QuercusException: com.caucho.quercus.lib.db.PDO.getAttribute: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] at com.caucho.quercus.statement.TryStatement.execute(TryStatement.java:134) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.Function.callImpl(Function.java:382) at com.caucho.quercus.program.Function.call(Function.java:311) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:93) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:93) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.expr.EqualsExpr.evalBoolean(EqualsExpr.java:69) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.QuercusClass.callNew(QuercusClass.java:870) com.caucho.quercus.expr.NewExpr.eval(NewExpr.java:97) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.Env.callParentMethod(Env.java:6457) com.caucho.quercus.expr.ParentMethodExpr.eval(ParentMethodExpr.java:114) com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:1122) com.caucho.quercus.env.QuercusClass.callStaticMethod(QuercusClass.java:1578) com.caucho.quercus.expr.StaticMethodExpr.eval(StaticMethodExpr.java:151) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:93) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:577) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:798) com.caucho.quercus.env.Value.callMethod(Value.java:1523) com.caucho.quercus.expr.VarMethodCallExpr.eval(VarMethodCallExpr.java:107) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:382) at com.caucho.quercus.program.Function.call(Function.java:311) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:400) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePageTop(Env.java:3655) at com.caucho.quercus.env.Env.executeTop(Env.java:3601) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:185) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:610) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:427) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:457) at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:346) at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:115) at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:529) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216) at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:77) at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:133) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.eclipse.jetty.servlets.QoSFilter.doFilter(QoSFilter.java:183) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:425) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:457) at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) at org.eclipse.jetty.server.Server.handle(Server.java:334) at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559) at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:992) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:541) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203) at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:462) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) at java.lang.Thread.run(Thread.java:619) Caused by: com.caucho.quercus.QuercusException: com.caucho.quercus.lib.db.PDO.getAttribute: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:131) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:682) at com.caucho.quercus.program.JavaClassDef.callMethod(JavaClassDef.java:657) at com.caucho.quercus.env.JavaValue.callMethod(JavaValue.java:323) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:434) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:171) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:127) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:511) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:382) at com.caucho.quercus.program.Function.call(Function.java:311) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.TryStatement.execute(TryStatement.java:71) ... 197 more Caused by: com.caucho.quercus.UnimplementedException: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] at com.caucho.quercus.lib.db.PDO.getAttribute(PDO.java:369) 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:597) at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:117) ... 216 more Caused by: com.caucho.quercus.QuercusException: com.caucho.quercus.lib.db.PDO.getAttribute: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:131) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:682) at com.caucho.quercus.program.JavaClassDef.callMethod(JavaClassDef.java:657) at com.caucho.quercus.env.JavaValue.callMethod(JavaValue.java:323) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:434) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:171) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:127) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:511) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:382) at com.caucho.quercus.program.Function.call(Function.java:311) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.TryStatement.execute(TryStatement.java:71) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.Function.callImpl(Function.java:382) at com.caucho.quercus.program.Function.call(Function.java:311) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.Function.callImpl(Function.java:382) at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:93) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:93) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.expr.EqualsExpr.evalBoolean(EqualsExpr.java:69) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.QuercusClass.callNew(QuercusClass.java:870) com.caucho.quercus.expr.NewExpr.eval(NewExpr.java:97) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.Env.callParentMethod(Env.java:6457) com.caucho.quercus.expr.ParentMethodExpr.eval(ParentMethodExpr.java:114) com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:1122) at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.env.QuercusClass.callStaticMethod(QuercusClass.java:1578) com.caucho.quercus.expr.StaticMethodExpr.eval(StaticMethodExpr.java:151) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:93) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:577) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:798) com.caucho.quercus.env.Value.callMethod(Value.java:1523) com.caucho.quercus.expr.VarMethodCallExpr.eval(VarMethodCallExpr.java:107) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) at com.caucho.quercus.program.Function.call(Function.java:311) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:400) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePageTop(Env.java:3655) at com.caucho.quercus.env.Env.executeTop(Env.java:3601) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:185) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:610) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:427) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:457) at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:346) at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:115) at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:529) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216) at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:77) at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:133) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.eclipse.jetty.servlets.QoSFilter.doFilter(QoSFilter.java:183) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:425) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:457) at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) at org.eclipse.jetty.server.Server.handle(Server.java:334) at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559) at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:992) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:541) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203) at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:462) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) at java.lang.Thread.run(Thread.java:619) Caused by: com.caucho.quercus.UnimplementedException: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] at com.caucho.quercus.lib.db.PDO.getAttribute(PDO.java:369) 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:597) at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:117) ... 216 more Caused by: com.caucho.quercus.UnimplementedException: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] at com.caucho.quercus.lib.db.PDO.getAttribute(PDO.java:369) 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:597) at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:117) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:682) at com.caucho.quercus.program.JavaClassDef.callMethod(JavaClassDef.java:657) at com.caucho.quercus.env.JavaValue.callMethod(JavaValue.java:323) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:434) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:171) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:127) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:511) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:382) at com.caucho.quercus.program.Function.call(Function.java:311) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.TryStatement.execute(TryStatement.java:71) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.Function.callImpl(Function.java:382) at com.caucho.quercus.program.Function.call(Function.java:311) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.Function.callImpl(Function.java:382) at com.caucho.quercus.program.Function.call(Function.java:311) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:382) at com.caucho.quercus.program.Function.call(Function.java:311) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.program.Function.callImpl(Function.java:382) at com.caucho.quercus.program.Function.call(Function.java:311) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:93) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:93) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.expr.EqualsExpr.evalBoolean(EqualsExpr.java:69) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.QuercusClass.callNew(QuercusClass.java:870) com.caucho.quercus.expr.NewExpr.eval(NewExpr.java:97) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.Env.callParentMethod(Env.java:6457) com.caucho.quercus.expr.ParentMethodExpr.eval(ParentMethodExpr.java:114) com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:1122) com.caucho.quercus.env.QuercusClass.callStaticMethod(QuercusClass.java:1578) com.caucho.quercus.expr.StaticMethodExpr.eval(StaticMethodExpr.java:151) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:93) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:577) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:798) com.caucho.quercus.env.Value.callMethod(Value.java:1523) com.caucho.quercus.expr.VarMethodCallExpr.eval(VarMethodCallExpr.java:107) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:382) com.caucho.quercus.program.Function.call(Function.java:311) com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:391) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:777) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:106) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:400) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) com.caucho.quercus.env.Env.executePageTop(Env.java:3655) com.caucho.quercus.env.Env.executeTop(Env.java:3601) com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:185) com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:610) javax.servlet.http.HttpServlet.service(HttpServlet.java:820) org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530) org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:427) org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:457) org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182) org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933) org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362) org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867) org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:346) at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:115) at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:529) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216) at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:77) at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:133) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.eclipse.jetty.servlets.QoSFilter.doFilter(QoSFilter.java:183) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:425) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:457) at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) at org.eclipse.jetty.server.Server.handle(Server.java:334) at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559) at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:992) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:541) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203) at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:462) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) at java.lang.Thread.run(Thread.java:619) Powered by Jetty:// Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4742 [Quercus] crash always 09-01-11 11:24 09-01-11 20:48 Reporter: ravinder80 Assigned To: Priority: normal Status: new Product Build: 4.0.19 pro Projection: none Platform: Quercus OS: Linux OS Version: 2.6.35.11 Product Version: Resolution: open ETA: none Summary: PHP compile error Description: Greetings. We have Resin pro 4.0.19 installed on our server running on Linux version 2.6.35.1183.9.amzn1.x86_64. We have several PHP files deployed on the quercus module on this server. While everything is working fine, we are facing the following 2 problems which we would like to seek your assistance on: 1) Everytime we access any of our PHP files, the output is fine and the PHP is working the way it is expected to. However, on Resin logs we see this error everytime we access the PHP URL. What should we do about this and is there some line in the PHP code we can disable to get rid of this error? com.caucho.quercus.QuercusException: com.caucho.quercus.lib.dom.DOMDocument.setFormatOutput: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtracking system at http://bugs.caucho.com [^] Full stacktrace in attached error1.txt. 2) When we call any of our PHP codes, it works fine. But then, if we keep refreshing the browser to repeat this call, one in 10-15 times, we run into an issue such as below. Whenever this issue happens, the PHP output is just a blank page. com.caucho.quercus.QuercusErrorException: /home/resin-pro4.0.19/webapps/ROOT/LIVE/geoip.inc:23: Fatal Error: 'define' is an unknown function. OR com.caucho.quercus.QuercusErrorException: 'trim' is an unknown function. Full stacktrace in attached error2.txt and error3.txt. Looking forward to a speedy response. Thanks. Steps To Reproduce: Additional Information: Attached Files: error-stacktraces.zip (3 KB) 09-01-11 11:24 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4378 [Quercus] major always 02-07-11 09:12 08-30-11 07:45 Reporter: geleont Assigned To: Priority: normal Status: new Product Build: Projection: none Platform: OS: OS Version: Product 4.0.14 Version: Resolution: open ETA: none Summary: pq_query_params Return false, in case query is not SELECT Description: Minimal code to reproduce $res = pg_query_params($db,"INSERT INTO files (file, user, session_id, book) VALUES ($1,$2,$3,$4) RETURNING id", array("11222", "33g", "AAAS3wpSVE", "11", )); var_dump(pg_fetch_all($res)); should print id but returns false I think that caused by this lines of quercus code: if (!pstmt.execute(env)) return null; if (pstmt.getStatementType().equals("SELECT")) { PostgresResult result = new PostgresResult( env, null, pstmt.getResultSet(), null); conn.setResultResource(result); return result; } else { // XXX: ??? return type? return null; // return pstmt; } As we can see if query type is not SELECT method every time return null. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4717 [Quercus] minor always 08-18-11 10:05 08-18-11 10:05 Reporter: rickHigh Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: SimpleTest does not work in Quercus Description: SimpleTest does not work in Quercus. This is the one I prefer because it is easy. It is the second most used PHP unit testing framework. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4703 [Quercus] major always 08-08-11 04:11 08-08-11 04:11 Reporter: p-h7 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: DateTime class does not implement createFromFormat() method Description: Manipulate date and time was cumbersome in PHP in older days. Much of a trick does now the DateTime class. Unluckily, its createFromFormat() method which is preferred to be used to set a date/time value is not implemented in Quercus. I'd wish it was, since without it Quercus is now use for our company that has a large document management system implemented in PHP. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4686 [Quercus] major always 07-27-11 04:33 07-27-11 04:33 Reporter: gislik Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: preg_replace_callback does not return empty groups Description: When running Wordpress 3.2.1 on top of Quercus there was a difference between the results I got from PHP/5.3.4 and Quercus 4.0.18. The problam is that the implementation for preg_replace_callback (pregReplaceCallbackImpl) does not return empty groups. When going through the Quercus source code I found the following lines commented out in pregReplaceCallbackImpl. /* PHP's preg_replace_callback does not return empty groups else regs.put(empty); */ so it seems PHP's previous implementations did not return empty groups. Uncommenting the else-clause solved my problem running Wordpress on Quercus. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3655 [Hessian] minor always Reporter: ferg Assigned To: Date Submitted: 08-28-09 08:51 Last Update: 07-18-11 12:12 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.1 Version: Resolution: open Projection: none ETA: none Summary: Hessian InputStream result is closed Description: (rep by Mattias Jiderhamn) After upgrading from Resin/Hessian 3.1 to 4.0.1 we have a problem returning InputStream from Hessian calls. I get this exception while trying to read the stream on the client: java.io.IOException: stream is closed at sun.net.www.http.ChunkedInputStream.ensureOpen(ChunkedInputStream.java:151) at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:646) at java.io.FilterInputStream.read(FilterInputStream.java:116) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2446) at com.caucho.hessian.io.Hessian2Input.readBuffer(Hessian2Input.java:2689) at com.caucho.hessian.io.Hessian2Input.read(Hessian2Input.java:2635) at com.caucho.hessian.io.Hessian2Input$ReadInputStream.read(Hessian2Input.java:2785) ... I created a small testcase which just sends the output of a Hessian2Output to a Hessian2Input and in that case, InputStream works fine. The proxy is created using Springs HessianProxyFactoryBean. Any tips on how to debug this??? Steps To Reproduce: Both client and server is using Hessian included in Resin 4.0.1. Here is a detailed test case (without Spring): Service interface: public interface HessianTest { InputStream testString(String input); } Service implementation: public class HessianTestImpl implements HessianTest { public InputStream testString(String s) { return new ByteArrayInputStream(s.getBytes()); } } Service configuration; web.xml: <servlet-mapping url-pattern="/hessian/test" servletclass="com.caucho.hessian.server.HessianServlet"> <init-param> <api-class>foo.HessianTest</api-class> <service-class>foo.HessianTestImpl</service-class> </init-param> </servlet-mapping> Test case: HessianProxyFactory hessianProxyFactory = new HessianProxyFactory(); // Workaround for http://bugs.caucho.com/view.php?id=3634 [^] hessianProxyFactory.setSerializerFactory(new SerializerFactory() { protected Deserializer loadDeserializer(Class cl) throws HessianProtocolException { if (InputStream.class.isAssignableFrom(cl)) return new InputStreamDeserializer(); else return super.loadDeserializer(cl); } }); HessianTest hessianTest = (HessianTest) hessianProxyFactory.create(HessianTest.class, "http://localhost/hessian/test"); [^] StringBuilder sb = new StringBuilder(); for(int i = 0; i < 512; i++) { final int digit = (i % 10) + 1; sb.append(digit); System.out.println("No of chars: " + sb.length()); InputStream is = hessianTest.testString(sb.toString()); BufferedReader br = new BufferedReader(new InputStreamReader(is)); assertEquals(sb.toString(), br.readLine()); } Output: No of chars: No of chars: No of chars: No of chars: No of chars: No of chars: No of chars: No of chars: No of chars: No of chars: No of chars: No of chars: 1 2 3 4 5 6 7 8 9 11 12 13 No No No No No No of of of of of of chars: chars: chars: chars: chars: chars: 14 15 16 17 18 19 java.io.IOException: stream is closed at sun.net.www.http.ChunkedInputStream.ensureOpen(ChunkedInputStream.java:151) at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:646) at java.io.FilterInputStream.read(FilterInputStream.java:116) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2391) at com.caucho.hessian.io.Hessian2Input.readBuffer(Hessian2Input.java:2689) at com.caucho.hessian.io.Hessian2Input.read(Hessian2Input.java:2661) at com.caucho.hessian.io.Hessian2Input.read(Hessian2Input.java:2603) at com.caucho.hessian.io.Hessian2Input$ReadInputStream.read(Hessian2Input.java:2785) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) at java.io.InputStreamReader.read(InputStreamReader.java:167) at java.io.BufferedReader.fill(BufferedReader.java:136) at java.io.BufferedReader.readLine(BufferedReader.java:299) at java.io.BufferedReader.readLine(BufferedReader.java:362) at se.exder.HessianInputStreamTest.testHessianTest(HessianInputStreamTest.java:80) ... </Mattias> Additional Information: Attached Hessian_3000655.patch (1 KB) Files: 08-28-09 09:46 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4674 [Quercus] @0@ @0@ 07-15-11 21:28 07-15-11 21:28 Reporter: deenah442 Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Interface bug Description: the cancel button is not shown anywhere! just http://www.google.com [^] it! Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4642 [Quercus] minor always 06-27-11 10:37 07-06-11 14:23 Reporter: rickHigh Platform: Assigned To: OS: Priority: normal OS Version: Status: feedback Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: Problem displaying images with PDFLib Description: I would expect this to work. $logo = $pdf.load_image("auto", "images/caucho-logo.png", ""); if ($logo == -1) throw new Exception("Error: " + $pdf.get_errmsg()); $pdf.fit_image($logo, 50.0, 500.0, ""); $pdf.close_image($logo); It does not work and it does not display anything. If it could not find the image, the expectation is that it would return -1 as per PDFLib documents. I also tried this: $logo = $pdf.load_image("auto", "random_text_that_is_not_a_real_image.jpg", ""); if ($logo == -1) throw new Exception("Error: " + $pdf.get_errmsg()); $pdf.fit_image($logo, 50.0, 500.0, ""); $pdf.close_image($logo); I would expect the above to throw an exception. It does not. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4619 [Quercus] minor Reporter: rickHigh always 06-15-11 23:23 07-06-11 10:44 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: Quercus does not run with SimpleTest unit testing framework Description: This test works (green bar) under PHP but fails under Quercus. <?php require_once('simpletest/autorun.php'); class TestOfLogging extends UnitTestCase { } ?> function testLogCreatesNewFileOnFirstMessage() { $this->assertTrue("true"); } The failure message is graphTest.php Fail: -> Bad TestSuite [graphTest.php] with error [No runnable test cases in [graphTest.php]] 0/0 test cases complete: 0 passes, 1 fails and 0 exceptions. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4631 [Quercus] minor always 06-20-11 13:32 07-06-11 10:43 Reporter: rickHigh Assigned To: Priority: normal Status: feedback Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Working versus non-working PDFs Description: It seems the order that I call things output text versus output lines effects whether some text shows up at all. I have included a PDF that does not work and one that does. The only difference is where I do the moveTo/lineTo/stroke versus writing the text. Steps To Reproduce: Additional Information: 06-20-11 13:34 06-20-11 13:32 Attached Files: PDF_NOT_WORKING.pdf (6 KB) PDF_working.pdf (6 KB) Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 4647 [Quercus] crash always 06-30-11 12:18 07-06-11 02:05 Reporter: jalmillategui Last Update: Platform: Assigned To: OS: Priority: normal Status: feedback Product Build: OS Version: Product 4.0.11 Version: Resolution: open Projection: none ETA: none Summary: java.lang.ArrayIndexOutOfBoundsException: 4 at at com.caucho.quercus.lib.regexp.RegexpModule$GroupNeighborMap.<init> Description: I'm trying to install openatrium a drupal based collaboration suite. I have finished the install process using 4.0.11 and got the errors described in quercus_errors.txt (attached to this report) when visiting the start page I then proceeded to update the quercus version to 4.0.18 and restore the site with the same results and errors. Steps To Reproduce: Additional I'm running quercus on Dell PE SC1430 with 4GB of ram. I'm using Ubuntu 11.04 x86_64, with Information: sun java runtime: Java(TM) SE Runtime Environment (build 1.6.0_24-b07) and using glassfish 3.1 as the application server. I also copied the default php.ini from ubuntu's php installation and configured the web.xml to look for it on the WEB-INF directory. Attached quercus_errors.txt (27 KB) 06-30-11 12:18 Files: markdown.php code section.txt (7 KB) 07-04-11 quercus_errors2.txt (16 KB) 11:47 07-05-11 17:25 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3653 [Quercus] minor Reporter: nam always 08-27-09 13:13 06-17-11 18:20 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: htmlentities seem to be mixing up multibyte strings Description: (rep by kenfoo) htmlentities seem to be mixing up multibyte strings. htmlspecialchars seem to be working ok. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 4612 [Quercus] text always 06-10-11 10:48 06-16-11 08:40 Reporter: thr Assigned To: Last Update: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Quercus suffers from MySql SQL_CALC_FOUND_ROWS / FOUND_ROWS() Bug Description: Running wordpress on quercus I found a problem wordpress displaying wrong navigation next/previous page. This resulted from a Bug in querying the total number of articles with the mysql functions SQL_CALC_FOUND_ROWS / FOUND_ROWS(). The Sun's jdbc mysql driver has a known, unresolved bug using these functions (see http://bugs.mysql.com/bug.php?id=15117) [^] As this happens only if there are other mysql_... functions called between the query SQL_CALC_FOUND_ROWS and FOUND_ROWS() I fixed this with a workaround. I implemented my own 'mysql_query' function wich does a FOUND_ROWS call every time it sees a SQL_CALC_FOUND_ROWS an stores this value. If the next call is indeed a FOUND_ROWS() call, i returns the stored count instead of issuing the query. This is just a dirty fix ... PS: I'm reporting this as there might be others suffering from this Bug and trying to figure out whats going on ... Steps To Reproduce: Additional private static HashMap<Integer, String> lastSqlStatements = new HashMap<Integer, Information: String>( 10); private static HashMap<Integer, Value> lastCalcFoundRows = new HashMap<Integer, Value>( 10); public static Value fixed_mysql_query(Env env, StringValue sql, @Optional Mysqli conn) { Integer hashConn = conn.hashCode(); if (sql.toJavaString().contains("SQL_CALC_FOUND_ROWS")) { Value tempRowCount; releaseTempResultSet(hashConn); MysqlModule.mysql_query(env, sql, conn); tempRowCount = MysqlModule.mysql_query(env, (StringValue) StringValue.create("SELECT FOUND_ROWS()"), conn); lastCalcFoundRows.put(hashConn, tempRowCount); }else if (sql.toJavaString().toUpperCase().contains("FOUND_ROWS()")) { String lastSqlStatement = lastSqlStatements.get(hashConn); if (lastSqlStatement.toUpperCase().contains("SQL_CALC_FOUND_ROWS")) { return lastCalcFoundRows.get(hashConn); } } else { releaseTempResultSet(hashConn); } lastSqlStatements.put(hashConn, sql.toJavaString()); } return MysqlModule.mysql_query(env, sql, conn); Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4615 [Quercus] major always Reporter: mjguisado Assigned To: Priority: normal Status: new Product Build: Projection: none ETA: none Platform: OS: OS Version: Product 4.0.14 Version: Resolution: open 06-14-11 03:15 06-14-11 03:15 Summary: Method Env.getRealPath doesn't work with path-mapping (compile mode) Description: After use the path-mapping element in the context's declaration we have detected that the __FILE__ constant doesn't work fine. The next line: define('ROOT_DIR', (dirname(dirname(FILE))).'/'); is translated as: env.addConstant(const_ROOT_DIR, quercus_module_2.dirname(env, _quercus_module_2.dirname(env, env.createString(env.getRealPath(getUserPathStatic())).toStringValue(env)).toStringValue(env)).toStringBuilder(env qv_3), false); After debug the application we have saw that the problem is generate in the line 1490 of the com.caucho.quercus.env.Env realPath = getRequest().getRealPath(path); The realPath is the context's root directory plus the absolute path to the script. Example: <web-app id="/quercus" root-directory="/srv/backoffice/webapps/quercus" temp-dir="/tmp/resin/tmp/${resin.hostName}/quercus"> <work-dir>/tmp/resin/workdir/${resin.hostName}/quercus</work-dir> <prologue> <class-loader> <compiling-loader path="/srv/backoffice/conf/quercus"/> </class-loader> <path-mapping url-pattern="/ServiciosBackoffice/*" real-path="/srv/www/php/ServiciosBackoffice"/> </prologue> </web-app> With this configuration the Env.getRealPath() for the path "/ServiciosBackoffice/app/bootstrap.php" returns "/srv/backoffice/webapps/quercussrv/www/php/ServiciosBackoffice" Steps To Reproduce: Additional We have resin 4.0.18 Profesional with compile option enable (lazy). Information: With the compile mode disable it works fine. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 4069 [Hessian] crash always 06-04-10 05:49 05-22-11 06:55 Reporter: raggatt2000 Assigned To: Priority: normal Status: new Platform: OS: OS Version: Product 4.0.7 Version: Last Update: Product Build: Resolution: open Projection: none ETA: none Summary: IndexOutOfBoundsException when deserializing Google Collections Description: I?m getting an issue when deserializing classes containing Google Collections classes - Hessian throws an IndexOutOfBoundsException when calling readObject() on the Hessian2Input instance. I?ve attached an example class which replicates the exception. I?m running using the following: Java 6 (jdk 1.6.0_17) Google Collections 1.0 Hessian 4.0.7 - (note: also affects 4.0.x) As far as I can tell, the exception seems to occur as a result of one of/a combination of the following: - ImmutableMap implements custom serialization methods writeReplace() and readResolve() - A single instance being referenced from multiple locations Resulting exception is: Exception in thread "main" com.caucho.hessian.io.HessianFieldException: com.ml.HessianTest.test: com.ml.HessianTest cannot be assigned from null at com.caucho.hessian.io.UnsafeDeserializer.logDeserializeError(UnsafeDeserializer.java:774) at com.caucho.hessian.io.UnsafeDeserializer$ObjectFieldDeserializer.deserialize(UnsafeDeserializer.java:421) at com.caucho.hessian.io.UnsafeDeserializer.readObject(UnsafeDeserializer.java:239) at com.caucho.hessian.io.UnsafeDeserializer.readObject(UnsafeDeserializer.java:150) at com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2188) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2109) at com.caucho.hessian.io.MapDeserializer.readMap(MapDeserializer.java:114) at com.caucho.hessian.io.SerializerFactory.readMap(SerializerFactory.java:522) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2079) at com.ml.HessianTest.main(HessianTest.java:51) Caused by: java.lang.IndexOutOfBoundsException: Index: 80, Size: 73 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1790) at com.caucho.hessian.io.UnsafeDeserializer$ObjectFieldDeserializer.deserialize(UnsafeDeserializer.java:417) ... 8 more Java code for replicating below: import import import import import java.io.ByteArrayInputStream; java.io.ByteArrayOutputStream; java.io.IOException; java.io.Serializable; java.util.Map; import import import import com.caucho.hessian.io.Hessian2Input; com.caucho.hessian.io.Hessian2Output; com.google.common.collect.ImmutableMap; com.google.common.collect.Maps; public class HessianTest implements Serializable { private final Map<String, String> map; private final HessianTest test; private HessianTest(Map<String, String> map, HessianTest test) { this.map = map; this.test = test; } public static void main(String[] args) throws IOException { Map<String, HessianTest> map = Maps.newHashMap(); HessianTest lastTest = null; //seems to start failing when limit set to 18 for (int i = 0; i < 18; i++) { HessianTest test = new HessianTest(ImmutableMap.of("id" + i, "id" + i), lastTest); //following line works fine - probably indicating //that the issue is with the google collection //serialization routine //HessianTest test = new HessianTest(Collections.singletonMap("id" + i, "id" + i), lastTest); map.put("id" + i, test); lastTest = test; } ByteArrayOutputStream baos = new ByteArrayOutputStream(); Hessian2Output oos = new Hessian2Output(baos); oos.writeObject(map); oos.close(); baos.close(); byte[] input = baos.toByteArray(); ByteArrayInputStream bais = new ByteArrayInputStream(input); Hessian2Input ois = new Hessian2Input(bais); ois.readObject(); } private static final long serialVersionUID = 1L; } Steps To Reproduce: Additional Information: Attached HessianTest.java (2 KB) 06-04-10 05:49 Files: IdentityIntMap.java (7 KB) 06-08-10 11:24 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 4561 [Quercus] block always 05-17-11 08:25 05-20-11 04:08 Reporter: andrew_miah Assigned To: domdorn Priority: normal Status: resolved Product Build: Platform: OS: OS Version: Product Version: Resolution: no change required Projection: none ETA: none Summary: NullPointerException in compile Quercus Page Last Update: Description: 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. Steps To Reproduce: Additional 500 Servlet Exception Information: [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/storecustomer/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/storecustomer/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/storecustomer/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/storecustomer/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' Attached test.php (0 KB) Files: 05-19-11 06:34 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4556 [Quercus] crash always 05-16-11 08:01 05-20-11 02:17 Reporter: thr Platform: Assigned To: domdorn OS: Priority: normal OS Version: Status: resolved Product 4.0.14 Version: Product Build: Resolution: fixed Projection: none ETA: none Summary: date_create with time==null and timezone causes NPE Description: Calling function date_create (aca. new DateTime(null, $timezone_object ) with null and timezone object causes a NullPointerException. Givin null as time is valid according to php documentation and should be similar to 'now'. (http://www.php.net/manual/de/datetime.construct.php) [^] This works in native php Version PHP 5.3.3-1ubuntu9.5 Sample: <?PHP $timezone_string = 'Europe/London'; $timezone_object = timezone_open( $timezone_string ); $datetime = $date = new DateTime(null, $timezone_object ); echo '1 London: ' . date_format($datetime, DATE_ATOM); $datetime = date_create( null, $timezone_object ); echo '2 London: ' . date_format($datetime, DATE_ATOM); ?> Steps To Reproduce: Additional Information: Attached Files: testdate.php (0 KB) 05-16-11 08:01 0001-Fixing-c-4556-date_create-with-time-null-and-timezon.patch (1 KB) 05-17-11 02:14 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4563 [Quercus] minor always 05-17-11 10:39 05-19-11 10:57 Reporter: alex Platform: Assigned To: domdorn OS: Priority: normal OS Version: Status: resolved Product 4.0.18 Version: Product Build: Resolution: fixed Projection: none ETA: none Summary: Quercus DOMDocument->saveXML($node) does not work Description: <?php $doc = new DOMDocument('1.0'); // we want a nice output $doc->formatOutput = true; $root = $doc->createElement('book'); $root = $doc->appendChild($root); $title = $doc->createElement('title'); $title = $root->appendChild($title); $text = $doc->createTextNode('This is the title'); $text = $title->appendChild($text); echo "Saving all the document:\n"; echo $doc->saveXML() . "\n"; echo "Saving only the title part:\n"; echo $doc->saveXML($title); ?> Steps To Reproduce: Additional expected output Information: Saving all the document: <?xml version="1.0"?> <book> <title>This is the title</title> </book> Saving only the title part: <title>This is the title</title> Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 4565 [Hessian] major always Reporter: mate Assigned To: Priority: normal Platform: OS: OS Version: Date Submitted: 05-19-11 02:07 Last Update: 05-19-11 02:07 Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: Hibernate PersistentMap serialization broken (again) Description: With Resin/Hessian 4.0.18 serialization of Hibernate PersistentMap:s is broken (again) in some situations. If the PersistentMap is the "top" return value, it seems to work fine. However if the PersistentMap is part of another structure, such as the value in a HashMap that is returned, it is serialized as being of type java.lang.Object Please add a test case for this in your internal suite. Steps To Reproduce: Additional Example test case: Information: final Map<String, String> persistentMap = ... assertEquals(PersistentMap.class, persistentMap.getClass()); assertSize(2, persistentMap); SortedMap<Integer, Map<String, String>> input = new TreeMap<Integer, Map<String, String>>(); input.put(1, persistentMap); ByteArrayOutputStream baos = new ByteArrayOutputStream(); sendToStream(baos, input); ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); Map result = readFromStream(bais, SortedMap.class); assertEquals(TreeMap.class, result.getClass()); assertEquals(input, result); private static void sendToStream(OutputStream os, Object value) throws Throwable { HessianDebugOutputStream dos = new HessianDebugOutputStream(os, new PrintWriter(System.out)); dos.startTop2(); Hessian2Output out = new Hessian2Output(dos); out.getSerializerFactory().setSendCollectionType(false); out.writeReply(value); out.close(); os.close(); } private static <E> E readFromStream(InputStream is, Class<E> clazz) throws Throwable { new HessianInputFactory().readHeader(is); is = new HessianDebugInputStream(is, new PrintWriter(System.out)); Hessian2Input in = new Hessian2Input(is); return (E) in.readReply(clazz); } The output of the debug output stream is: Hessian 2.0 Reply map java.util.TreeMap (0) 1 => map java.lang.Object (0000001) "foo1" => "bar1" "foo2" => "bar2" The exception is com.caucho.hessian.io.HessianProtocolException: com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String (TXT) at com.caucho.hessian.io.AbstractDeserializer.error(AbstractDeserializer.java:150) at com.caucho.hessian.io.AbstractDeserializer.readMap(AbstractDeserializer.java:102) at com.caucho.hessian.io.SerializerFactory.readMap(SerializerFactory.java:516) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2110) at com.caucho.hessian.io.MapDeserializer.readMap(MapDeserializer.java:114) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1695) at com.caucho.hessian.io.Hessian2Input.readReply(Hessian2Input.java:370) Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4549 [Quercus] minor always 05-14-11 10:07 05-16-11 02:44 Reporter: Chris Graham Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: fsockopen can return null Description: When I fsockopen to data.alexa.com in the latest Quercus, it returns NULL. If it fails it must return false. Steps To Reproduce: Additional Information: Attached Files: 0001-Fixing-c-4549-fsockopen-can-return-null.patch (1 KB) 05-16-11 02:44 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4322 [Quercus] minor always 12-08-10 22:27 05-11-11 14:55 Reporter: shine Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product Build: Product 4.0.10 Version: Resolution: open Projection: none ETA: none Summary: can't support chinese words Description: can't support chinese words when operating database. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4539 [Quercus] minor always 05-09-11 23:30 05-09-11 23:30 Reporter: Tom Desmet Platform: all Assigned To: OS: all Priority: normal OS Version: Status: new Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: JNDI Lookup doesn't work when using quercus war in jetty webserver (7.4.0) Description: When using JNDI datasource lookup in PDO under jetty, the datasource is not found. $pdo = new PDO("java:comp/env/jdbc/someds"); The problem is within class "com.caucho.quercus.lib.db.PDO", method "getJndiDataSource". It seems that the JNDI lookup within jetty requires to only supply "jdbc/someds" instead of the full line. When patching PDO.java to supply only this, everything works fine. Is there any option to resolve this issue structurally. I suspect that following link refers to the same issue, but then linked to glassfish instead of jetty http://www.java.net/node/686319. [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4538 [Quercus] major always 05-09-11 15:41 05-09-11 15:41 Reporter: seancharles Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: PDO::MYSQL_ATTR_USE_BUFFERED_QUERY is an unknown constant Description: 0003971 => Maybe related! I spotted this after posting. If I place a called to session_start() in the index.php of the Drupal installation it removes ALL the errors about $_SESSION not being in existence leaving just three errors and an otherwise blank screen! /var/www/webapps/ROOT/includes/database/database.inc:595: Fatal Error: 'execute' is an unknown method of false. /var/www/webapps/ROOT/includes/database/database.inc:595: Fatal Error: 'execute' is an unknown method of false. /var/www/webapps/ROOT/includes/database/database.inc:595: Fatal Error: 'execute' is an unknown method of false. Thanks, Sean Charles. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4522 [Quercus] major always 04-27-11 11:52 04-27-11 11:52 Reporter: tokeefe Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.11 Version: Resolution: open Projection: none ETA: none Summary: Case sensitive autoload Description: The Quercus implementation of "class_exists()" appears to lowercase the incoming string, then pass this string to __autoload() and cache the result of __autoload. If a custom __autoload() function uses this incoming string to load a PHP file from disk -where case can matter -- the cached __autoload result can cause issues. All subsequent attempts to call class_exists(), depending on that function to autoload the file will fail even if one later uses the correct case. To test the issue, create a file (a class) Foo/Bar/Biz.php Then create an __autoload method similar to the following e.g., 31 33 34 35 36 37 38 39 40 41 42 43 44 function __autoload($name=null) { $class = explode("\\", $name); $class = implode("/", $class); $path = dirname(__FILE__) . "/../.."; $fullfile = "$path/$class.php"; if(!file_exists($fullfile)) throw new ClassException(ClassException::CLASS_NOT_FOUND, $name); include_once($fullfile); } Then call class_exists() with both incorrect and correct case (in that order): class_exists("Foo\Bar\biz"); class_exists("Foo\Bar\Biz"); Since the first invocation of class_exists() fails and the result is cached, the subsequent invocation will also fail until you reboot the webserver. This issue is especially evident when using a tokenized URL (input by the client) to load Controllers/Views a la Zend Framework. Temporary workaround: Do not let class_exists() attempt the __autoload by passing false as the second argument. Simply call autoload manually e.g., 117 if(! class_exists($name, false)) 118 __autoload($name); Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 4510 [Quercus] major always Reporter: tomokane Assigned To: Priority: normal Status: new Product Build: Date Submitted: 04-17-11 07:30 Last Update: 04-17-11 07:30 Platform: OS: OS Version: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: com.caucho.quercus.UnimplementedException: `mb_convert_kana' has not been implemented Description: In Japanese version of the WordPress 3.1.1, the search box cannot work. Steps To Reproduce: Additional com.caucho.quercus.UnimplementedException: `mb_convert_kana' has not been implemented. A Information: more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtracking system at http://bugs.caucho.com [^] com.caucho.quercus.lib.i18n.MbstringModule.mb_convert_kana(MbstringModule.java:183) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:135) com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:737) com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:643) com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:237) com.caucho.quercus.expr.CallExpr.evalCopy(CallExpr.java:164) com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:433) com.caucho.quercus.program.Function.callMethod(Function.java:469) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:770) com.caucho.quercus.env.CallbackObjectMethod.call(CallbackObjectMethod.java:138) com.caucho.quercus.lib.FunctionModule.call_user_func_array(FunctionModule.java:102) sun.reflect.GeneratedMethodAccessor104.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:135) com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:737) com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:643) com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:239) com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:151) com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:103) com.caucho.quercus.statement.DoStatement.execute(DoStatement.java:73) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:433) com.caucho.quercus.program.Function.call(Function.java:349) com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:239) com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:151) com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:412) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) com.caucho.quercus.env.Env.executePage(Env.java:3896) com.caucho.quercus.env.Env.include(Env.java:5377) com.caucho.quercus.env.Env.includeOnce(Env.java:5330) com.caucho.quercus.expr.FunIncludeOnceExpr.eval(FunIncludeOnceExpr.java:92) com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:412) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) com.caucho.quercus.env.Env.executePage(Env.java:3896) com.caucho.quercus.env.Env.include(Env.java:5377) com.caucho.quercus.env.Env.includeOnce(Env.java:5330) com.caucho.quercus.expr.FunIncludeOnceExpr.eval(FunIncludeOnceExpr.java:92) com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:412) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) com.caucho.quercus.env.Env.executePage(Env.java:3896) com.caucho.quercus.env.Env.include(Env.java:5377) com.caucho.quercus.env.Env.includeOnce(Env.java:5330) com.caucho.quercus.expr.FunIncludeOnceExpr.eval(FunIncludeOnceExpr.java:92) com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:412) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) com.caucho.quercus.env.Env.executePage(Env.java:3896) com.caucho.quercus.env.Env.include(Env.java:5377) com.caucho.quercus.expr.FunIncludeExpr.eval(FunIncludeExpr.java:90) com.caucho.quercus.expr.Expr.evalTop(Expr.java:523) com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:412) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) com.caucho.quercus.env.Env.executePageTop(Env.java:3907) com.caucho.quercus.env.Env.executeTop(Env.java:3848) com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:188) com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:592) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4478 [Quercus] major always 04-05-11 11:07 04-13-11 07:00 Reporter: chiefgeek Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: wordpress 3.1 and 3.1.1 default install - administrator does not have rights to edit posts /wpadmin/ Description: The edit option is gone from wp-admin on wordpress 3.1 and 3.1.1. Steps To Reproduce: Additional If you view the post and have the admin tool bar enabled while viewing the post, the edit post Information: is enabled (for some posts, not all). Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4498 [Hessian] minor always 04-12-11 11:56 04-12-11 11:56 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: Hessian mapping of class names Description: (rep by Simon Watson) I'm very new to Hessian and, having got the basic examples working plus reviewed the docs, I have a question - is it possible to pass Java objects via Hessian that implement a common interface, but have different client/server implementations? I'd like to use it for communication between an Android app and a Spring web application. The Java interfaces for objects passed back and forth are shared, but the server-side implementation of them contains additional JPA stuff which I'd rather not have on the Android client side. Is there any way of (de)serializing objects with a neutral name (rather than fully qualified class name), and define a mapping between this and the different implementations on each side? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4494 [Quercus] major always 04-11-11 23:31 04-12-11 02:55 Reporter: lionel_hutz12 Assigned To: Priority: normal Status: new Product Build: Platform: Apache Tomcat 6.0.29 Server OS: Windows OS Version: 7 Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: substr_count does not provide an accurate count when the search string is repeated in succession Description: substr_count skips the second instance of the search character(s) when they appear in succession in the searched string. For example, if you are searching for the number of times the character 'a' is present in the searched string and the search string contains "aa" it will only report 1 instance, instead of 2 times. Steps To $diff_string = "aaaaa"; Reproduce: echo "Should produce 5, but only shows (3): " . substr_count($diff_string, "a"); Additional Work around for this issue, may be to use: Information: preg_match_all('/a/', "aaaaa", $chunks); which accurately prints out 5 Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4479 [Quercus] major always 04-05-11 11:17 04-07-11 02:53 Reporter: chiefgeek Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: mysql connection collation is not honored (wordpress) Description: I have a db with tables that were created with utf8 as default and data populated as utf8 character set. When viewing the data from the db via quercus the data is corrupt. I have added a set names utf8 after the mysql_connect call and it appears to have no affect. I have tried adding '?characterEncoding=utf8' on the jdbc url but the startup fails when that option is in place. Steps To Reproduce: Additional resin-web.xml Information: <web-app xmlns="http://caucho.com/ns/resin" [^] xmlns:resin="urn:java:com.caucho.resin"> <database> <jndi-name>jdbc/mysql</jndi-name> <driver type="com.mysql.jdbc.Driver"> <url>jdbc:mysql://db001.stg:3306/wp_cms</url> [^] <user></user> <password></password> </driver> <prepared-statement-cache-size>8</prepared-statement-cache-size> <max-connections>20</max-connections> <max-idle-time>30s</max-idle-time> <spy /> </database> <servlet servlet-name="quercus" servletclass="com.caucho.quercus.servlet.QuercusServlet"> <init> <compile>false</compile> <script-encoding>iso-8859-1</script-encoding> <database>java:comp/env/jdbc/mysql</database> <ini-file>WEB-INF/php.ini</ini-file> </init> </servlet> Attached Files: Screen shot 2011-04-05 at 1.10.55 PM.png (41 KB) Screen shot 2011-04-05 at 1.53.17 PM.png (43 KB) 04-05-11 11:17 04-05-11 11:53 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4483 [Quercus] minor always 04-06-11 10:34 04-06-11 10:57 Reporter: tokeefe Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.11 Version: Resolution: open Projection: none ETA: none Summary: Root-level namespace not working Description: The following PHP 5.3+ code is valid, and does not produce any errors when interpreted with mod_php5: <? namespace foo; function foo(\Exception $e) { } The same code when interpreted by Quercus 4.0.11 produces the following error: com.caucho.quercus.parser.QuercusParseException: index.php:2: namespace identifier is not allowed at '\Exception' in index.php This prevents certain code that targets PHP 5.3 from running without modification on both Quercus 4 and mod_php5. Steps To Reproduce: Additional Apache HTTPD, PHP 5.3.3, and mod_php5 used in this example were installed through synaptic Information: on Ubuntu 10.04 x86_64. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4430 [Hessian] major always 03-09-11 03:45 04-05-11 07:28 Reporter: matthias-meier Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: IdentityIntMap.resize(int) does not take replaced objects into account Description: We stumpled upon a bug in IdentityIntMap when serializing and then deserializing an object stream containing an unmodifiable Set (created with java.util.Collections.unmodifiableSet(...)) using the Hessian 2 protocol. What we got upon deserializing was: "com.caucho.hessian.client.HessianRuntimeException: com.caucho.hessian.io.HessianProtocolException: '&65535;' is an unknown code". However, some debugging showed, that the problem was actually on the serializing side. This uses the helper class IdentityIntMap (mapping objects to ints) to manage references to already serialized objects. One feature is obviously that objects therein can be "replaced" by some other object while they get serialized. (Obviously that happens for example with unmodifiable Sets.) When an object gets replaced in the IdentityIntMap, the entry for that object is not really removed, but rather its value is set to -1. However, the size of the map is reduced by 1, so the replaced object does not "count" anymore when determining the size. (Note that the size of the map is quite important because it is used to determine the reference values for objects which get newly inserted into the map.) When the IdentityIntMap is getting "full", it will resize itself. The problem with resizing is now that the resize algorithm does not care for map entries with values of -1. It will simply rehash each and every entry, no matter what its value is, and then use the number of rehashed entries (including all with value -1) to determine the "new" size. Therefore, if the map contains (for example) two entries which have the value -1 and and 8 other entries, it's size should be 8. If I add a ninth entry now and this triggers resizing, from then on the map will claim its size to be 11 instead of 9 as it would have been expected. Subsequently adding more objects will result in reference values starting from 11. That is, if I add the tenth object (which should actually get the reference value 9) it will be mapped to the reference value 11 and so on. This leads to "holes" in the reference-values used by the serializer. The deserializer on the other hand does not know anything about IdentityIntMap, entries with replaced objects and resizing the map. It simply numbers the objects it receives sequentially, starting from zero. The result is that for all object references which are greater than the point at which resizing happened, the deserializer will reference the wrong objects. In the example above, if the deserializer receives a reference of 11 from the serializer, that reference is actually meant to point to the tenth element. But the deserializer does not know that, and it will therefore not find the tenth element (which should have reference 9 as seen by the deserializer) but rather the 12th (i.e. reference 11). I wrote a small sample program to demonstrate the problem (see uploaded file "HessianIdentityIntMapBug.java"). The program "simulates" the process of serialization and prints out whats going on (including the resulting map in the end). This example uses an initial map capacity of 8, so the resizing will be quickly triggered to show the point. The output of the program looks like this: ----------==== Serializing Objects ... ==== [Object-00]: has been written to the output stream [Object-01]: has been written to the output stream [Object-02]: has been written to the output stream [Object-03]: has been replaced with: Replacement for [Object-03] [Object-04]: [Object-05]: [Object-06]: [Object-07]: [Object-08]: [Object-09]: [Object-10]: [Object-11]: [Object-06]: again [Object-09]: again [Object-02]: again [Object-08]: again has has has has has has has has has been written to the output stream been replaced with: Replacement for [Object-05] been written to the output stream been written to the output stream been written to the output stream been written to the output stream been written to the output stream been written to the output stream already been serialized; writing reference to 0000006 instead of serializing has already been serialized; writing reference to 0000011 instead of serializing has already been serialized; writing reference to 0000002 instead of serializing has already been serialized; writing reference to 0000010 instead of serializing ==== IdentityIntMap contents: ==== -1: Object-03 -1: Object-05 00: Object-00 01: Object-01 02: Object-02 03: Replacement for [Object-03] 04: Object-04 05: Replacement for [Object-05] 06: Object-06 07: Object-07 10: Object-08 11: Object-09 12: Object-10 13: Object-11 ----------The "hole" in the references is easy to spot in the final IdentityIntMap contents: There is no object which is mapped to reference 8 or 9. "Object-08" has reference 10 instead of 8. (This is the point where the map got resized.) It's quite easy now to imagine what the deserializer will do. It will receive the serialized objects and build a map of references to objects which will look like the following: 00: 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: Object-00 Object-01 Object-02 Replacement for [Object-03] Object-04 Replacement for [Object-05] Object-06 Object-07 Object-08 Object-09 Object-10 Object-11 Note the "shifted" references for "Object-08" through "Object-11"! If the deserializer now receives the references 0000006, 0000012, 0000002 and 0000010 it will resolve these to "Object-06", "Object-11", "Object-2" and "Object-10". However, actually the serializer meant to send "Object-06", "Object-09", "Object-02" and "Object-08"! So this is where our application crashed with the mentionend exception. As a workaround we were able to change our code, so that the unmodifiable Set is not unmodifiable anymore but a simple, plain HashSet. It seems that for these no "replacement" takes place and therefore (de)serialization works now for us in that specific case. But we use Hessian a lot in our application, and it would be a real pain in the ass to make sure that we never transfer any unmodifiable collections. :-( I think the bug should be quite easy to fix, so it would be very nice, if some future version of the Hessian 2 implementation would be able to correctly resize its IdentityIntMap, so we are able to transfer unmodifiable Sets in the future. ;-) BTW: I see in "Product Version" that there are newer versions than 4.0.7. So maybe the bug is already fixed in one of these? However, I could not find an existing bug report which would match this issue and and neither could I find these newer versions for download. So I could not test if the bug has already been fixed in one of these or not. (We simply used the newest version from <http://hessian.caucho.com/index.xtp#Java> [^] which seems to be 4.0.7 at the moment.) Steps To Reproduce: Additional Information: Attached Files: HessianIdentityIntMapBug.java (5 KB) 03-09-11 03:45 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2002 [Quercus] feature always 09-11-07 06:01 03-30-11 06:23 Reproducibility: Date Submitted: Last Update: random 03-29-11 11:50 03-29-11 11:50 Reporter: sam Platform: Assigned To: OS: Priority: low OS Version: Status: acknowledged Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: SoapClient not implemented Description: (rep by M Wallace) http://ca.php.net/manual/en/ref.soap.php [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 4464 [Documentation] minor Reporter: viviana_81 Assigned To: Priority: normal Severity: Platform: hhhh OS: jjjj OS Version: 3.0.15 Status: new Product 3.2.1 Version: Product Build: ppp Resolution: open Projection: none ETA: none Summary: bloaqueado Description: verificando bloqueio do caso Steps To dfsfdsf Reproduce: Additional Information: System Description Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4456 [Hessian] minor sometimes 03-28-11 08:11 03-28-11 08:18 Reporter: viviana_81 Platform: Windows Assigned To: OS: Win_XP Priority: normal OS Version: Status: new Product Version: Product Build: Registro de Materiais Resolution: open Projection: none ETA: none Summary: Bug_Campo inválido Description: Campo NUMERO DO REGISTRO, nao recebe caracter numérico. Steps To logar no sistema Reproduce: clicar no menu Registrar selecionar opção Materiais Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4446 [Quercus] minor always 03-22-11 23:35 03-22-11 23:44 Reporter: philix Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: function eval has encoding problem Description: when the code to eval contains CJK(chinese japanese korean) words, the output is messy! Steps To Reproduce: Additional <?php Information: echo "&20013;&25991;"; echo "<hr/>"; eval('echo "&20013;&25991;"; '); ?> 03-22-11 23:35 03-22-11 23:38 ccc.zip (83 KB) 03-22-11 23:39 Attached Files: 001.png (58 KB) ccc.jpg (95 KB) C:\Documents and Settings\Administrator\桌面\ccc.jpg (95 KB) 03-22-11 23:42 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4438 [Quercus] major always 03-15-11 23:00 03-15-11 23:00 Reporter: salotniraj Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: javax.script.Invocable Support Missing Description: Hi, I see that right now there is no support for javax.script.Invocable Interface and due to that It is not possible to Invoke specific methods of PHP class which we would like to reuse. Is there any way , we can solve this ? Thanks. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3861 [Hessian] feature always 01-27-10 00:51 03-07-11 00:54 Reporter: mate Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.3 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Add http session/cookie support to HessianProxy Description: Please add official support for http sessions / cookies in HessianProxy/HessianURLConnection so that people don't have to keep track of internal changes in Hessian and update their cookie implementation. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 4426 [Quercus] major always 03-04-11 00:07 03-04-11 11:55 Reporter: jamesdlow Assigned To: Last Update: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: SimpleXMLElement::registerXPathNamespace Description: SimpleXMLElement::registerXPathNamespace seems to be missing from SimpleXMLElement.java More info on the function can be found here: http://www.php.net/manual/en/simplexmlelement.registerxpathnamespace.php [^] Steps To Reproduce: Additional Information: Attached SimpleXMLElement.java (31 KB) 03-04-11 11:54 Files: SimpleXMLElementNamespaceContext.java (5 KB) 03-04-11 11:54 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3202 [Quercus] minor always 12-29-08 11:32 03-01-11 20:11 Reporter: lzymll Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 3.1.8 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Mysql PDO fetch bug Description: when query "select id,majorname as name from category" $array = $PDO->fetch(PDO::fetch_assoc) can't find $array["name"], still is original table column name. and column name case won't change. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4396 [Quercus] major always 02-15-11 04:37 02-25-11 13:19 Reporter: geleont Platform: Assigned To: Priority: normal OS: OS Version: Status: new Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: Function pack has a bug Description: Minimal code to reproduce: <?php $packed = pack ("L", 84654); print ord($packed[0]); print" "; print ord($packed[1]); print" "; print ord($packed[2]); print" "; print ord($fileSize[3]); PHP result: 174 74 1 0 string(4) "®J &65533;" Quercus result: 0 1 74 174 string(4) "&65533; J®" Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 4391 [Documentation] major Reporter: matzew Assigned To: Severity: Reproducibility: Date Submitted: Last Update: always 02-12-11 02:13 02-12-11 02:13 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: CDI event system in CanDI has issue Description: See https://issues.apache.org/jira/browse/EXTCDI-133 [^] There is a sample app (please change the provided DB info in resin-web.xml) Deployment is OK, but on accessing a web page, it crashes in a CDI extension (called CoDI). Reson: the CanDI event system has an issue. Works fine in Weld/OpenWebBeans Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 4390 [Documentation] major Reporter: matzew Reproducibility: Date Submitted: Last Update: always 02-11-11 22:00 02-11-11 22:00 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: Wrong JSF configuration is documented Description: According to this issue: http://bugs.caucho.com/bug_view_advanced_page.php?bug_id=4387 [^] A sepeparate WEB.XML is needed (yes, that fixed my original issue) However, before I started with Resin, I did a quick read here: http://caucho.com/resin-4.0/examples/jsf-webbeans/index.xtp#Housekeeping: [^] the resinweb.xml and beans.xml and there it contains teh mapping in that resin-web.xml file.... Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3923 [Quercus] minor always 03-03-10 12:42 02-10-11 10:53 Reporter: emil Assigned To: Priority: normal Status: new Product Build: Projection: none Platform: OS: OS Version: Product 4.0.5 Version: Resolution: open ETA: none Summary: Multipart messages get stuffed into a single mime part by Javamail Description: (rep by michitopf) In PHP one can easily send Multipart MIME messages. I use the code below to accomplish this. In Quercus this no longer works. It seems that the whole message is wrapped in a single large MIME part of a JavaMail MimeMessage. How can I then send Multipart MIME messages in Quercus? /*---------* $parts is an array where each entry represents a MIME part and is in turn another array with following entries: * $parts[$i]['content-type'] * $parts[$i]['content-transfer-encoding'] ... 8bit (default), base64 * $parts[$i]['filename'] * $parts[$i]['content'] */ function send_multipart_mail($to, $from, $subject, $parts) { global $mail_error; $boundary = '=_' . strtoupper(md5(uniqid('', true))); $headers = ''; if ($from) $headers .= 'From: ' . $from . CRLF; $headers .= 'MIME-Version: 1.0' . CRLF; $headers .= 'Date: ' . date('r') . CRLF; // 'r' ... RFC 822 $headers .= 'Content-Type: multipart/mixed;' . CRLF; $headers .= ' boundary="' . $boundary . '"'; $headers .= 'Content-Transfer-Encoding: 8bit' . CRLF; $text = 'This is a message with multiple parts in MIME format.' . CRLF; foreach ($parts as $part) { $text .= '--' . $boundary . CRLF; $text .= 'Content-Type: ' . $part['content-type'] . CRLF; $content_transfer_encoding = $part['content-transfer-encoding']; if (!$content_transfer_encoding) $content_transfer_encoding = '8bit'; $text .= 'Content-Transfer-Encoding: ' . $content_transfer_encoding . CRLF; $filename = $part['filename']; if ($filename) $text .= 'Content-Disposition: attachment; filename="' . $filename . '"' . CRLF; $text .= CRLF; $content = $part['content']; if ($content_transfer_encoding == 'base64') $content = trim(chunk_split(base64_encode($content))); $text .= $content . CRLF; } $text .= '--' . $boundary . '--'; } set_error_handler(mail_error_handler); $mail_ok = mail($to, $subject, $text, $headers); restore_error_handler(); return $mail_ok; The code can be used like this (also serves as a testcase): $text = array( 'content-type' => 'text/plain; charset="ISO-8859-1"', 'content' => 'Dear recipient,' . CRLF . CRLF . 'attached you will find the requested information' . CRLF . CRLF . 'regards' . CRLF . 'Server' . CRLF . CRLF ); $attachment = array( 'content-type' => 'text/xml', 'content-transfer-encoding' => 'base64', 'filename' => 'info.xml', 'content' => '<?xml version="1.0" encoding="ISO-8859-1" ?>' . CRLF . '<info>Test</info>'); send_multipart_mail('[email protected]', '[email protected]', 'Subject', array($text, $attachment)); Steps To Reproduce: Additional Information: Attached Files: Main.java (1 KB) 02-10-11 10:53 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4157 [Quercus] minor always 08-03-10 13:25 02-10-11 04:18 Reporter: GT500 Platform: Assigned To: domdorn Priority: normal OS: OS Version: Status: resolved Product Build: Product Version: Resolution: fixed Projection: none ETA: none Summary: Quercus - vBulletin 4.0.5 - Error when editing signature Description: I was able to add a signature to my user account on my vBulletin 4.x forum, but when I attempt to go back in and edit my signature I receive an error. Please see the attached text file for the error. Steps To Reproduce: Additional Information: Attached Files: resin_4.0.9_vbulletin_4.0.5_signature_edit_error.txt (7 KB) 08-03-10 13:25 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3900 [Quercus] minor always 02-20-10 20:15 02-10-11 04:10 Reporter: nam Assigned To: domdorn Priority: normal Status: resolved Product Build: Platform: OS: OS Version: Product 4.0.3 Version: Resolution: fixed Projection: none ETA: none Summary: vBulletin - preview new topic caused IllegalStateException Description: (rep by GT500) http://forum.caucho.com/showthread.php?t=4551 [^] I received the following error after clicking the 'Preview' button to preview a new topic I was posting here about a phpBB 3 issue. Steps To Reproduce: Additional Information: Attached Files: vbulletin_4.0.5_preview_thread_error_resin_4.0.9.txt (7 KB) 08-03-10 13:15 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4375 [Quercus] major always 02-04-11 12:59 02-04-11 12:59 Reporter: xerafin Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: QuercusScriptEngine leaks QercusContexts Description: QuercusScriptEngine contains a QuercusContext. This QuercusContext has its start() method invoked which spins up the EnvTimeoutThread. QuercusScriptEngine does not close the QuercusContext, so if a QuercusScriptEngine is garbage collected, the EnvTimeoutThread is left running which keeps the QuercusContext in memory. QuercusScriptEngine should probably at the very least have a finalize() method that calls QuercusContext.close(). Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4374 [Quercus] major always 02-04-11 07:34 02-04-11 07:34 Reporter: geleont Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: XMLWriter::openURI does not support streams Description: XMLWriter::openURI does not support streams,other words $xmlWriterObj = new XMLWriter(); $xmlWriterObj->openURI('php://output'); [^] cause java.lang.UnsupportedOperationException: openWrite:com.caucho.vfs.NotFoundPath Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4366 [Quercus] major always 01-27-11 01:05 02-02-11 08:21 Reporter: bodhuin Platform: Assigned To: OS: Priority: normal OS Version: Status: feedback Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: Missing: Warning: CURL option '75' unknown or unimplemented [curl_setopt] Description: There is a warning using tcpdf library (last version) in example 3 for example_003.php Warning: CURL option '75' unknown or unimplemented [curl_setopt] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 4370 [Quercus] major always 02-01-11 08:05 02-02-11 04:15 Reporter: geleont Platform: Assigned To: domdorn Priority: normal Status: resolved Product Build: Last Update: OS: OS Version: Product 4.0.14 Version: Resolution: fixed Projection: none ETA: none Summary: file_get_contents in quercus 4.0.11 has bug. Description: Minimal code to reproduce: <?php file_put_contents("123", "Hello",LOCK_EX); ?> Cause java.lang.NullPointerException com.caucho.quercus.lib.file.FileOutput.unlock(FileOutput.java:197) com.caucho.quercus.lib.file.FileModule.flock(FileModule.java:1087) com.caucho.quercus.lib.file.FileModule.file_put_contents(FileModule.java:1045) I reviewed source code of quercus FileModule module and I am sure it happens because we close [B]os[/B], which is linked on the same object as s(BinaryOutput os = (BinaryOutput) s;) and after that we trying to make flock(env, (LockableStream) s, LOCK_UN, null); on that stream.IN file_put_contents function from FileModule Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4368 [Quercus] minor always 02-01-11 07:51 02-01-11 07:51 Reporter: geleont Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: pg_fetch_array(result, row, field); with row fiels set to null never go to next row Description: Minimal code to reproduce: $sql = 'SELECT * FROM table '; $result = pg_query($res, $sql); while ($row = pg_fetch_array($result, NULL, PGSQL_ASSOC)) { print_r($row); } During research I found that this problem caused by this lines of code so if (row.isNull()) { if (result.getPassedNullRow()) { result.setPassedNullRow(); } else { // Step the cursor back to the previous position ResultSet rs = result.getResultSet(); rs.previous(); } } as we can see result.setPassedNullRow(); never be executed Also from researching quercus sources I found that we can set row argument equal -1 to make function work as expected Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4363 [Quercus] major always 01-26-11 13:29 01-29-11 08:20 Reporter: bodhuin Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: Missing log function with 2 parameters , second one as base as in the php documentation Description: Method log with 2 parameters is missing in the MathModule.java This does not permit to use the tcpdf library as it is used the two parameters method log. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4364 [Quercus] major always 01-26-11 13:33 01-26-11 13:33 Reporter: bodhuin Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: sprintf method with "F" formatting should be non localized... Description: The php method sprintf with usage of formatting non locale - aware should be treated without Locale consideration. F - the argument is treated as a float, and presented as a floating-point number (non-locale aware). Available since PHP 4.3.10 and PHP 5.0.3. Locale::setDefault(Locale::ITALIAN); echo sprintf('%.1F', 1.0) should produced 1.0 instead of 1,0 result. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3692 [Hessian] minor always 09-22-09 11:39 01-12-11 18:31 Reporter: lcwik Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.1 Version: Resolution: open Projection: none ETA: none Summary: MicroHessianOutput writeBytes wrong size Description: MicroHessianOutput writeBytes incorrectly encodes the size of the array into the stream. The "<<" is the wrong way. Steps To Reproduce: Additional Fix: Information: public void writeBytes(byte []buffer, int offset, int length) throws IOException { if (buffer == null) { os.write('N'); } else { } os.write('B'); os.write(length >> 8); os.write(length); os.write(buffer, offset, length); Previously: public void writeBytes(byte []buffer, int offset, int length) throws IOException { if (buffer == null) { os.write('N'); } else { os.write('B'); os.write(length << 8); os.write(length); os.write(buffer, offset, length); } Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 4345 [Documentation] major Reporter: Rania always Date Submitted: 01-12-11 15:55 Last Update: 01-12-11 15:55 Platform: Assigned To: Priority: normal Reproducibility: OS: OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: cannot run project Description: I followed all steps in the README file and I'm using Apache Tomcat 6.0.29 Server and hawtags0.1.9.1.1, but when I run it I get the following error: org.apache.jasper.JasperException: File "/tlds/hawtags.tld" not found org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116) org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:160) org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:386) org.apache.jasper.compiler.Parser.parseDirective(Parser.java:449) org.apache.jasper.compiler.Parser.parseElements(Parser.java:1396) org.apache.jasper.compiler.Parser.parse(Parser.java:130) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255) org.apache.jasper.compiler.ParserController.parse(ParserController.java:103) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:185) org.apache.jasper.compiler.Compiler.compile(Compiler.java:347) org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) org.apache.jasper.compiler.Compiler.compile(Compiler.java:314) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 4344 [Documentation] major Reporter: Rania Assigned To: Priority: normal Status: new Product Build: Severity: Reproducibility: always Date Submitted: 01-12-11 14:26 Last Update: 01-12-11 14:26 Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: project cannot run using hawtags-0.1.9.1.1 and Apache Tomcat 6.0.29 Server Description: I did all steps in the README file and when I run the project, I get the following error: org.apache.jasper.JasperException: File "/tlds/hawtags.tld" not found org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116) org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:160) org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:386) org.apache.jasper.compiler.Parser.parseDirective(Parser.java:449) org.apache.jasper.compiler.Parser.parseElements(Parser.java:1396) org.apache.jasper.compiler.Parser.parse(Parser.java:130) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255) org.apache.jasper.compiler.ParserController.parse(ParserController.java:103) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:185) org.apache.jasper.compiler.Compiler.compile(Compiler.java:347) org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) org.apache.jasper.compiler.Compiler.compile(Compiler.java:314) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 4343 [Hessian] feature always 01-12-11 13:08 01-12-11 13:08 Reporter: Aaron Pieper Last Update: Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: Expose HessianConnection's underlying HttpURLConnection Description: We have some code which uses Hessian, and which also wants access to the HTTP connection's cookies. In older versions of Hessian (2.1.3 and such) HessianConnection extended HttpURLConnection, which allowed us to write code like this: return ((HttpURLConnection)hessianConnection).getRequestProperty("Cookie"); In Hessian 4.0.7, HessianConnection does not extend HttpURLConnection, which is fine - I'm all for composition over inheritance. But it does make our code a lot uglier, as the HttpURLConnection can currently only be accessed via reflection: try { Field connField = ReflectionUtils.getDeclaredField(HessianURLConnection.class, "_conn"); connField.setAccessible(true); return ((HttpURLConnection)connField.get(obj)).getRequestProperty("Cookie"); } catch (IllegalArgumentException e) { throw new ReflectionException(e); } catch (IllegalAccessException e) { throw new ReflectionException(e); } Could you consider exposing this field somehow? Perhaps with a getter? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4339 [Quercus] minor always 01-11-11 09:16 01-11-11 09:16 Reporter: ButtaKnife Assigned To: Platform: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.14 Version: Resolution: open Projection: none ETA: none Summary: exec family of functions Description: All of the exec family of functions (exec, shell_exec, system were tested) appear to send the output of the command to the browser, even if the function is supposed to catch the output, such as shell_exec (which is supposed to only return the full output as a string rather than echo-ing it). Tagged as minor since most applications wouldn't use these functions, but it does create problems for applications such as a server administration/control panel, and could be problematic for command-line usage. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4074 [Quercus] minor always 06-10-10 02:11 01-06-11 13:31 Reporter: hm2k Platform: Assigned To: domdorn Priority: normal OS: OS Version: Status: resolved Product Build: Product Version: Resolution: fixed Projection: none ETA: none Summary: var_dump(__FILE__); // returns string(7) string: Description: var_dump(__FILE__); // returns string(7) string: should return the path and filename of the working file... Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4330 [Quercus] minor always 12-17-10 14:22 01-05-11 20:02 Reporter: gbruins Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: Multidimensional arrays not working properly Description: $arr = array(); $arr['one'] = array(); $arr['one']['two'] = 2; $arr['one']['three'] = 3; print_r($arr); Expected result: Array ( [one] => Array ( [two] => 2 [three] => 3 ) ) However this is being printed: Array ( [one] => Array ) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3972 [Quercus] crash always 03-29-10 09:37 01-05-11 08:57 Reporter: rodchyn Assigned To: Priority: normal Status: new Product Build: Projection: none ETA: none Platform: OS: OS Version: Product 4.0.5 Version: Resolution: open Summary: Namespace error Description: There are no way to write code with namespaces. Code that throw error. namespace identifier is not allowed at '\DomElement' in static public function convertDomElementToArray(\DomElement $element) { } Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4064 [Quercus] minor always 06-02-10 03:34 12-20-10 10:34 Reporter: hm2k Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: strtodate does not work correctly Description: <?php echo date('d-M-Y',strtotime('2009/07/14')); //expected 14-Jul-2009, gave 07-May-2014 echo date('d-M-Y',strtotime('14-Aug-2009')); //expected 14-Aug-2009, gave 30-Jan-2016 ?> Steps To Reproduce: Additional @see http://php.net/strtotime [^] Information: @see http://cvs.php.net/viewvc.cgi/php-src/ext/date/tests/strtotime.phpt?view=co [^] @see http://cvs.php.net/viewvc.cgi/php-src/ext/date/tests/strtotime_basic.phpt?view=co [^] @see http://cvs.php.net/viewvc.cgi/php-src/ext/date/tests/strtotime_basic2.phpt?view=co [^] @see http://cvs.php.net/viewvc.cgi/php-src/ext/date/tests/strtotime2.phpt?view=co [^] @see http://cvs.php.net/viewvc.cgi/php-src/ext/date/tests/strtotime3.phpt?view=co [^] Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4320 [Hessian] minor always 12-08-10 01:44 12-08-10 01:47 Reporter: ccampo Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.2.0 Version: Resolution: open Projection: none ETA: none Summary: Catching ClassNotFoundException and continue in SerializerFactory Description: I recently fell over a piece of code in the SerializerFactory that looks like this try { Class cl = Class.forName(type, false, loader); derserializer = getDeserializer(cl); } catch (Exception e) { log.warning("Hessian/Burlap: '" + type + "' is an unknown class in " + loader +":\n" + e); log.log(LEVEL.FINER, e.toString(), e); } I am a little puzzeled about this piece of code. So a class cannot be found and the code prints out a log and continues as if nothing happens so it'll be only harder to find 3 steps later when interpreting the hessian protocol will fail with some other exception ? Who would do something like this ? Wouldnt it be way better and really the only way to deal with this, to pack the Exception into a RuntimeException that you throw ? This problem is also in version 4.0.7 (the current one) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4312 [Quercus] minor always 12-01-10 10:32 12-07-10 03:15 Reporter: ferg Assigned To: Priority: urgent Status: new Product Build: Projection: none ETA: none Platform: OS: OS Version: Product 4.0.13 Version: Resolution: open Summary: array_replace missing Description: (rep by Homayoun Zariv) array_replace function doesn't seem to be implemented. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4306 [Hessian] minor always 11-29-10 10:58 11-29-10 10:58 Reporter: ferg Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: EnumSet with null deserialization Description: (rep by skoppolu) Getting below error message when calling service from hessian client proxy. Service invoking the object which having EnumSet references. But checked whether referring enumset having null references or not, through java test methods to call same service and getting results as expected, and found enumset having values and there is no null references . But through hessian service getting below error message. com.caucho.hessian.client.HessianRuntimeException: com.caucho.hessian.io.HessianFieldException: com.macys.platform.providers.promotion.PromotionBO .promotionSource: java.util.EnumSet cannot be assigned from null at com.caucho.hessian.client.HessianProxy.invoke(Hess ianProxy.java:232) at $Proxy9.getPromotionHistory(Unknown Source) at com.macys.platform.providers.promotion.service.Pro motionServiceComponentMgrTest.testGetPromotionHist oryByHessianEndPoint(PromotionServiceComponentMgrT est.java:959) at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.junit.runners.model.FrameworkMethod$1.runRefle ctiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallabl e.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExpl osively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod .evaluate(InvokeMethod.java:20) at org.junit.internal.runners.statements.RunBefores.e valuate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.ev aluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runNotIgn ored(BlockJUnit4ClassRunner.java:79) at org.junit.runners.BlockJUnit4ClassRunner.runChild( BlockJUnit4ClassRunner.java:71) at org.junit.runners.BlockJUnit4ClassRunner.runChild( BlockJUnit4ClassRunner.java:49) at org.junit.runners.ParentRunner$3.run(ParentRunner. java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRu nner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentR unner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRu nner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRu nner.java:184) at org.junit.internal.runners.statements.RunBefores.e valuate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.ev aluate(RunAfters.java:31) at org.junit.runners.ParentRunner.run(ParentRunner.ja va:236) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestR eference.run(JUnit4TestReference.java:45) at org.eclipse.jdt.internal.junit.runner.TestExecutio n.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRu nner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRu nner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRu nner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRu nner.main(RemoteTestRunner.java:196) Caused by: com.caucho.hessian.io.HessianFieldException: com.macys.platform.providers.promotion.PromotionBO .promotionSource: java.util.EnumSet cannot be assigned from null at com.caucho.hessian.io.JavaDeserializer.logDeserial izeError(JavaDeserializer.java:596) at com.caucho.hessian.io.JavaDeserializer$ObjectField Deserializer.deserialize(JavaDeserializer.java:391 ) at com.caucho.hessian.io.JavaDeserializer.readObject( JavaDeserializer.java:233) at com.caucho.hessian.io.JavaDeserializer.readObject( JavaDeserializer.java:157) at com.caucho.hessian.io.Hessian2Input.readObjectInst ance(Hessian2Input.java:2051) at com.caucho.hessian.io.Hessian2Input.readObject(Hes sian2Input.java:1692) at com.caucho.hessian.io.Hessian2Input.readObject(Hes sian2Input.java:1679) at com.caucho.hessian.client.HessianProxy.invoke(Hess ianProxy.java:220) ... 29 more Caused by: java.lang.UnsupportedOperationException: com.caucho.hessian.io.CollectionDeserializer@feecc a at com.caucho.hessian.io.AbstractDeserializer.readObj ect(AbstractDeserializer.java:103) at com.caucho.hessian.io.Hessian2Input.readObjectInst ance(Hessian2Input.java:2051) at com.caucho.hessian.io.Hessian2Input.readObject(Hes sian2Input.java:1692) at com.caucho.hessian.io.Hessian2Input.readObject(Hes sian2Input.java:1679) at com.caucho.hessian.io.JavaDeserializer$ObjectField Deserializer.deserialize(JavaDeserializer.java:387 ) ... 35 more Edit/Delete Message Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4297 [Quercus] minor always 11-17-10 18:45 11-17-10 18:45 Reporter: JackyChan Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.13 Version: Resolution: open Projection: none ETA: none Summary: ArrayObject can't access property with -> operator, like $arrayObject->property Description: ArrayObject as an object instance, can't access it's property with -> operator, for example, $arrayObject->property. Only support index access operator,like $arrayObject['property']. I found this issue when use Zend_Config_Ini to get the configurations. db.ini -------------------[db] host = "localhost" user = "root" password = "" dbname = "mydb" $config = new Zend_Config_Ini('db.ini'); print_r($config->db); no luck,but print_r($config['db']) is ok. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 4213 [Hessian] minor always 09-15-10 22:22 11-17-10 09:56 Reporter: swiegersf Assigned To: Last Update: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.10 Version: Resolution: open Projection: none ETA: none Summary: Conversation Context not active when using HessianServlet Description: When invoking a ConversationScoped bean via Hessian, the following error is thrown: Caused by: javax.enterprise.context.ContextNotActiveException: com.caucho.server.webbeans.ConversationContext cannot be used because it's not currently active at com.caucho.config.scope.AbstractScopeContext.get(AbstractScopeContext.java:91) at com.caucho.config.inject.InjectManager$NormalInstanceReferenceFactory.create(InjectManager.java:4330) at com.caucho.config.inject.InjectManager$ReferenceFactory.create(InjectManager.java:4089) at forum.UserBean$UserBeanImpl__ResinScopeProxy.start(Unknown Source) Steps To Reproduce: Additional Forum topic: http://forum.caucho.com/showthread.php?t=16518 [^] Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4296 [Quercus] major always 11-16-10 16:15 11-16-10 16:15 Reporter: fredo Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.13 Version: Resolution: open Projection: none ETA: none Summary: file_get_contents ignores offset parameter Description: php docs say: string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] ) This function is similar to file(), except that file_get_contents() returns the file in a string, starting at the specified offset up to maxlen bytes. On failure, file_get_contents() will return FALSE. BUT the implementation in Quercus will always return the file-contents from the start of the file Steps To Reproduce: Additional should be fixed like: Information: @ReturnNullAsFalse public static StringValue file_get_contents(Env env, StringValue filename, @Optional boolean useIncludePath, @Optional Value context, @Optional("-1") long offset, @Optional("4294967296") long maxLen) { if (filename.length() == 0) { env.warning(L.l("file name must not be null")); return null; } BinaryStream s = fopen(env, filename, "r", useIncludePath, context); if (! (s instanceof BinaryInput)) return null; BinaryInput is = (BinaryInput) s; if(offset>0) { } is.seek(offset, BinaryInput.SEEK_SET); StringValue bb = env.createLargeBinaryBuilder(); bb.appendReadAll(is, maxLen); } s.close(); return bb; Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4292 [Quercus] major always 11-14-10 17:02 11-14-10 17:02 Reporter: db Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.13 Version: Resolution: open Projection: none ETA: none Summary: PDO constructor fails to throw PDOException Description: In native PHP, connection errors experienced during a call to the PDO constructor trigger a PDOException which can be caught and handled by the application; in Quercus, however, only a "warning" message is emitted and the application incorrectly proceeds as though nothing has gone wrong. This behaviour has been confirmed in Quercus 4.0.7 as distributed within Resin 4.0.13. This bug can be easily demonstrated with the attached code; under native PHP the output is: Error! SQLSTATE[08006] [7] FATAL: no pg_hba.conf entry for host "127.0.0.1", user "wronguser", database "mydb", SSL off Unfortunately with Quercus, the output is: /opt/resin/var/www/webapps/testphp/PDOExceptionTest.php:10: Warning: FATAL: no pg_hba.conf entry for host "127.0.0.1", user "wrong-user", database "mydb", SSL off PDO connection success! This bug is proving to be a show-stopper as it is allowing PHP code to continue running under the false belief that the PDO connection was successful. Steps To Reproduce: Additional Information: Attached Files: PDOExceptionTest.php (1 KB) 11-14-10 17:02 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3683 [Quercus] minor always 09-09-09 18:23 11-14-10 16:34 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: PDO Can not connect Pgsql ,when pg port is not 5432. Description: (rep by junphine) check the source ,it seems have a bug in DataSource getPgsqlDataSource(Env env, String dsn){ StringBuilder url = new StringBuilder(); url.append("jdbc:postgresql://" [^] url.append(host); if (port != null){ url.append(port); } url.append('/'); url.append(dbname); } should add "url.append(':')" before "url.append(port)". Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4282 [Quercus] major always 11-04-10 02:05 11-04-10 02:05 Reporter: thmarx Assigned To: Priority: normal Status: new Product Build: Projection: none Platform: OS: OS Version: Product 4.0.11 Version: Resolution: open ETA: none Summary: Unable to read wordpres language files Description: I'm using quercus-php to run wordpress in my tomcat and jetty server. The english version runs without problem but for the german Version wordpress can not read the language files and all texts are still in english and not in german like expected. The problem appears in the appended php file in the method "import_from_reader" at line 172/173. It seems to me that the unpack-method doesn't realy works here. Steps To Reproduce: Additional Information: Attached Files: mo.php (7 KB) 11-04-10 02:05 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4273 [Hessian] major always 10-27-10 07:57 10-31-10 20:41 Reporter: p_wright Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: Serialization fails for java.net.URI and java.net.URL Description: When serialising java.net.URI or java.net.URL types the serialiser creates bad objects which behave incorrectly (losing their internal fields). Serialising+deserialising a URI results in an object whose toString() method returns the same as before however whose getScheme(), getHost(), etc. methods return different values (null). This problem can be very difficult to detect. URL has a more obvious failure mode, throwing a NullPointerException on toString() Result of running the attached Test.java code (Java 1.6.0_22-b04 64-bit VM). The values before and after should not change (and equals() should return true, obviously) toString() http://www.example.com [^] => http://www.example.com [^] getScheme() http => null getHost() www.example.com => null isAbsolute() true => false equals() false Steps To Reproduce: Additional Information: Attached Files: Test.java (1 KB) 10-27-10 07:57 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 4277 [Quercus] block always Reporter: kdecherf Assigned To: Date Submitted: 10-29-10 04:55 Last Update: 10-29-10 04:55 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.10 Version: Resolution: open Projection: none ETA: none Summary: Malformed header content-type with cURL extension Description: curl_setopt($this->curl,CURLOPT_HTTPHEADER,array("Content-Type: application/json")); Content-Type is ignored when request is executed, default Content-Type: application/x-www-formurlencoded Steps To Reproduce: Additional Fixed with Information: http://github.com/CleverCloud/Quercus/commit/a9f82d81901136835fccab974c53b346f675a0ee [^] Working branch: http://github.com/CleverCloud/Quercus/tree/i10-curl [^] Other issues are suspected with curl_setopt and CURLOPT_HTTPHEADER, but not found for this time. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4255 [Quercus] minor have not tried 10-09-10 07:39 10-27-10 05:00 Reporter: domdorn Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.10 Version: Resolution: open Projection: none ETA: none Summary: json_encode(double) not working like in native php Description: rep by siruslan http://forum.caucho.com/showthread.php?t=18816 [^] <?php $arr = array (10.1); echo json_encode($arr); ?> standart PHP -> [10.1] quercus PHP -> [10,100000000000] Steps To Reproduce: Additional I found problem in com.caucho.quercus.env.DoubleValue Information: method toString() contains next code Code: String v = String.format("%." + digits + "f", _value); if change this code to Code: DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(); dfs.setDecimalSeparator('.'); DecimalFormat df = new DecimalFormat(); df.setMaximumFractionDigits(digits); df.setDecimalFormatSymbols(dfs); String v = df.format(_value); result will be normal Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4268 [Quercus] minor always 10-21-10 17:53 10-21-10 17:53 Reporter: javajman Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.11 Version: Resolution: open Projection: none ETA: none Summary: Security Algorithm Issue. Description: Let me know if you need more information: OS: Mac Snow Leopard Java: 1.6 Servers tested on: Resin and Tomcat. Problem: ERROR: hash_init: HmacSHA-256 is an unknown algorithm Fix: Changed HashModule static Map loading to fix finding algorithm. static { _algorithmMap.put("md2", "MD2"); _algorithmMap.put("md5", "MD5"); _algorithmMap.put("sha1", "SHA"); _algorithmMap.put("sha256", "SHA256"); // Fix for not found algorythm _algorithmMap.put("sha384", "SHA-384"); _algorithmMap.put("sha512", "SHA-512"); } Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4260 [Quercus] minor sometimes 10-14-10 12:04 10-19-10 15:10 Reporter: domdorn Platform: Assigned To: OS: Priority: normal OS Version: Status: feedback Product Build: Product 4.0.11 Version: Resolution: open Projection: none ETA: none Summary: Dynamic properties not working correctly Description: Dynamic properties do not behave the same as in native PHP (version ?) <?php class Foo { public function __construct() {} } class Bar { public $name = "Greg"; public function __construct() {} } $foo = new Foo(); $foo->bar = new Bar(); echo " TEST 1: "; print_r($foo); // Foo Object ( [bar] => Bar Object ( [name] => Greg ) ) echo " TEST 2: "; echo $foo->bar; // Bar[] echo " TEST 3: "; $barVariable = "bar"; echo $foo->$barVariable; // Bar[] echo " TEST 4: "; echo $foo->$barVariable->name; // (blank) echo " TEST 5: "; $testBarVar = $foo->$barVariable; echo $testBarVar->name; // Greg echo " TEST 6: "; echo $foo->bar->name; // Greg ?> Additional information: http://www.krisjordan.com/2008/11/27/dynamic-properties-in-php-with-stdclass/ [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3971 [Quercus] minor always 03-28-10 13:42 10-07-10 10:41 Reporter: klakegg Assigned To: domdorn Priority: normal Status: resolved Product Build: Projection: none ETA: none Platform: OS: OS Version: Product 4.0.11 Version: Resolution: unable to reproduce Summary: Variable $_SESSION doesn't exists before session_start() Description: Unlike official PHP, the variable $_SESSION is not set before calling session_start(). This script gives "true" in PHP, "false" in Quercus. <?php echo isset($_SESSION) ? "true" : "false"; ?> Detected while testing packacking of phpMyAdmin on Glassfish 3. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3310 [Quercus] block always 01-30-09 17:18 10-07-10 07:15 Reporter: koreth Platform: Assigned To: OS: Priority: normal OS Version: Status: assigned Product Build: Product 4.0.0 Version: Resolution: no change required Projection: none ETA: none Summary: mysql_fetch_assoc() discards data types Description: mysql_fetch_assoc() returns an array of string values even when the database columns are numeric. This messes up some equality tests because, e.g., 0 == null but '0' != null. Patch attached. Steps To Reproduce: Additional Information: Attached Files: patch.txt (1 KB) 01-30-09 17:18 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4244 [Quercus] minor always 10-06-10 17:42 10-06-10 17:42 Reporter: ferg Assigned To: Platform: OS: Priority: urgent OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: zen_links with Quercus and Drupal Description: (rep by James Masson) > > > I'm trying to run Drupal with Resin via Quercus > > http://wiki.caucho.com/Quercus:_Drupal [^] > > I'm running into... > > com.caucho.quercus.QuercusRuntimeException: 'zen_links' is an unknown function. [call_user_func_array] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4229 [Quercus] minor always 09-27-10 14:07 09-28-10 06:25 Reporter: domdorn Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.11 Version: Resolution: open Projection: none ETA: none Summary: Refactor: MergePath does not include WEB-INF/lib/*.jar in Glassfish v3/non-resin Description: MergePath does not include WEB-INF/lib/*.jar in a Glassfish v3 environment. Currently only libs in glassfish's module directory currently get scanned. MergePath -> _root -> _pathList = [jar:(/home/domdorn/tmp/glassfish/release/server/glassfishv3/glassfish/modules/glassfish.jar)/, jar:(/home/domdorn/tmp/glassfish/release/server/glassfishv3/glassfish/lib/monitor/btrace-agent.jar)/, jar:(/home/domdorn/tmp/glassfish/release/server/glassfishv3/glassfish/modules/endorsed/jaxb-api-osgi.jar)/, jar:(/home/domdorn/tmp/glassfish/release/server/glassfishv3/glassfish/modules/endorsed/javax.annotation.jar)/, jar:(/home/domdorn/tmp/glassfish/release/server/glassfishv3/glassfish/modules/endorsed/webservices-apiosgi.jar)/, jar:(/opt/jdk/jdk1.6.0_21/jre/lib/resources.jar)/, jar:(/opt/jdk/jdk1.6.0_21/jre/lib/rt.jar)/, jar:(/opt/jdk/jdk1.6.0_21/jre/lib/jsse.jar)/, jar:(/opt/jdk/jdk1.6.0_21/jre/lib/jce.jar)/, jar:(/opt/jdk/jdk1.6.0_21/jre/lib/charsets.jar)/, jar:(/home/domdorn/tmp/glassfish/release/server/glassfishv3/glassfish/lib/monitor/btrace-boot.jar)/] but should include /WEB-INF/inject-16.jar /WEB-INF/javamail-141.jar /WEB-INF/quercus.jar /WEB-INF/resin.jar /WEB-INF/resin-kernel.jar Steps To Reproduce: Additional QA php/1t61.qa Information: would fail in a Glassfish Environment because com.caucho.quercus.lib.pdf.AfmParser.parse: MergePath mergePath = new MergePath(); mergePath.addClassPath(); does not add the WEB-INF/lib folder. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4224 [Quercus] block always 09-24-10 09:11 09-24-10 09:11 Reporter: ryagatich Assigned To: Platform: OS: Priority: normal Status: new OS Version: Product 4.0.8 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Cannot retrieve VARCHAR/VARCHAR2 columns from Oracle 11g database Description: Sample Code: $queries = Array("select cast('hello' as varchar2(100)) as a from dual", "select cast('hello' as char(100)) as a from dual"); $dbh = oci_pconnect($u, $p, $s); foreach ($queries as $query) { print "" . $query . " "; $stmt = oci_parse($dbh, $query); if (oci_execute($stmt)) { while ($row = oci_fetch_object($stmt)) { print_r($row); } } oci_free_statement($stmt); print " "; } oci_close($dbh); From the above, the first query reported returns a null string for the value "A", whereas the second query reports "hello" for the value "A". Expected results: "hello" is returned in both instances. Other tests against this same set of queries have been performed in the following manner: a) Using "php" brand php from the command line <-- works b) Using Quercus CLI (com.caucho.quercus.CliQuercus) <-- fails c) Using pure Java implementation of "oracle.jdbc.xa.client.OracleXADataSource" <-- works d) Using pure Java implementation of oracle.jdbc.driver.OracleDriver <-- works e) Using Quercus deployed via Weblogic Application Server <-- fails By "works", I mean that the string "hello" is reported in both instances. Steps To Reproduce: Additional This is actually one of many issues we are having connecting to our Oracle (i.e. honoring of Information: tnsnames.ora), and seems that we are missing any relevant documentation pertaining to such installation. We're willing to accept not having various settings correct in our environment, but do need to have a clear understanding of how to execute this detail. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4219 [Quercus] crash always 09-17-10 19:22 09-17-10 19:22 Reporter: remotenemesis Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.11 Version: Resolution: open Projection: none ETA: none Summary: com.caucho.quercus.lib.db.PDO.setAttribute: This functionality has not been implemented. Description: com.caucho.quercus.lib.db.PDO.setAttribute: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtracking system at http://bugs.caucho.com [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 4200 [Documentation] minor Reporter: emil Reproducibility: Date Submitted: Last Update: always 09-02-10 12:11 09-02-10 12:11 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: Custom protocol docs broken Description: (rep by Per Wiklander) > > > > > > > > > Hi, > > I was reading this page: > http://caucho.com/resin-3.1/examples/custom-protocol/index.xtp [^] > > and it looks like some links to classes in the text have been broken, there >are anchor tags in the HTML source of the page but they do not contain any >text. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4192 [Quercus] feature always 08-30-10 11:42 08-30-10 11:42 Reporter: emil Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.10 Version: Resolution: open Projection: none ETA: none Summary: environmental parameters in php.ini Description: Allow the use of parameters such as the webapp's content root etc. in php.ini as variables. Currently only other ini-values are available. Specifically, this should work: include_path=${webapp.root}/WEB-INF/php Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4184 [Quercus] feature always 08-23-10 09:06 08-23-10 09:06 Reporter: emil Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.10 Version: Product Build: Resolution: open Projection: none ETA: none Summary: enable spy & save-allocation-stack-trace dynamically Description: add jmx operations on database pool Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 4165 [Hessian] major always Reporter: ebourg Assigned To: Date Submitted: 08-05-10 16:00 Last Update: 08-05-10 16:00 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: ArrayStoreException on deserializing a class with an unknown field Description: If a Hessian 2 stream contains an object definition with more fields than the class known locally, an ArrayStoreException is triggered: java.lang.ArrayStoreException: com.caucho.hessian.io.JavaDeserializer$NullFieldDeserializer at com.caucho.hessian.io.Hessian2Input.readObjectDefinition(Hessian2Input.java:2306) at at at at at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2212) com.caucho.hessian.io.CollectionDeserializer.readLengthList(CollectionDeserializer.java:97) com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1713) com.caucho.hessian.io.Hessian2Input.readReply(Hessian2Input.java:157) com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:190) This is annoying because if a class is updated on the server with an optional field, it crashes the clients that haven't been updated yet a rely on a older version of the class. It doesn't happen with a Hessian 1 stream. This happens because NullFieldDeserializer in JavaDeserializer doesn't extend FieldDeserializer, so it's not possible to assign its instance to the array of FieldDeserializers created in the JavaDeserializer#createFields(int) method. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 3821 [Quercus] major always 12-20-09 18:39 08-04-10 02:25 Reporter: domdorn Assigned To: Last Update: Platform: OS: Priority: normal Status: resolved Product Build: OS Version: Product 4.0.9 Version: Resolution: open Projection: none ETA: none Summary: Deployment fails on Glassfish with "new" web.xml Description: When using a "new" web.xml in glassfish v3 starting with <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" [^] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" [^] xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [^] http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" [^] version="3.0"> When I now try to deploy the app, glassfish tells me: Exception while deploying the app : java.lang.RuntimeException: WEB9033: Unable to load class with name [com.caucho.jms.queue.AbstractTopic], reason: java.lang.NoClassDefFoundError: javax/jms/Topic and in the console I get an endless loop showing [#|2009-1221T01:43:00.248+0100|WARNING|glassfishv3.0|com.caucho.util.Alarm|_ThreadID=38;_ThreadName=alarmcoordinator;|java.lang.NullPointerException java.lang.NullPointerException |#] [#|2009-12- 21T01:43:00.248+0100|WARNING|glassfishv3.0|com.caucho.util.Alarm|_ThreadID=38;_ThreadName=alarmcoordinator;|java.lang.NullPointerException java.lang.NullPointerException |#] I think, this may be a problem of quercus not compatible with Servlet 3.0 after changing the start of web.xml to <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" [^] > <web-app> it works again and is restartable. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4144 [Quercus] minor always 07-28-10 08:16 07-28-10 08:16 Reporter: sblommers Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Typecasting (array) is not taking the whole object tree to array Description: $test = (object)"test"; $obj = (object) array('property' => $test); $array = (array)$obj; echo json_encode($array); var_dump($array); Steps To $test = (object)"test"; Reproduce: $obj = (object) array('property' => $test); $array = (array)$obj; echo json_encode($array); var_dump($array); Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4142 [Quercus] tweak always 07-26-10 18:35 07-26-10 18:35 Reporter: is Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.9 Version: Product Build: Resolution: open Projection: none ETA: none Summary: array_search is not work correctly when array and object element mixed in the array. Description: <? $c = new stdClass(); $andy = array('1', '2', '3'); $andy2 = array(); $andy2[0] = $andy; $key = array_search($andy, $andy2, false); print("B:"); print($key); print("\n"); $key = array_search($c, $andy2, true); print("A:"); print($key); print("\n"); print("C:"); print($c); print("\n"); print($andy); print("\n"); print($andy2); print("\n"); ?> -When an ObjectExtValue(stdClass) is compared with ArrayValue(Array). it will cause a error raise in array_search. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4141 [Quercus] text always 07-26-10 18:29 07-26-10 18:29 Reporter: is Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.9 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Quercus backslash in string is not fully compatible with PHP Description: Try following code: <? echo "\15"; ?> reference from http://php.net/manual/en/language.types.string.php [^] Sequence: \[0-7]{1,3} means characters matching the regular expression is a character in octal notation. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4140 [Hessian] minor N/A 07-26-10 11:48 07-26-10 11:48 Reporter: p_wright Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Patch: HTTPS Connection Factory (allows for certificate security between client and server) Description: I've written an HTTPS Connection Factory which allows key and trust managers to be configured; this is a useful feature for us -- and I suspect anyone else who uses certificate authentication. I can't find information on contributions so I thought I would file a bug report and hope the recipient of the report can submit the patch. Steps To Reproduce: Additional The patch is very low impact, largely being a duplication of the existing Information: HessianURLConnectionFactory type (since the only thing that's truely required in the hessian codebase is something that will set up the SSLSocketFactory on the HttpsURLConnection type). The main modifications start are line 74-82 (and 50-55 which is the constructor and space to store its param) If you choose not to apply this patch it would be very useful if the HessianURLConnection constructor was made protected and HessianURLConnectionFactory had a protected void setCustomOptions(URL, URLConnection) -- this would minimise the amount of duplication we have from the hessian codebase Attached Files: HessianHTTPSURLConnectionFactory (5 KB) 07-26-10 11:48 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4139 [Quercus] minor always 07-25-10 10:00 07-25-10 10:00 Reporter: kdecherf Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.8 Version: Resolution: open Projection: none ETA: none Summary: "unknown lexeme:/ in" error when a comment is between 'implements' keyword and '{' Description: An error 500 is caught when a comment is between 'implements' keyword and '{' (class declaration beginning). Error report: ---com.caucho.quercus.parser.QuercusParseException: /home/kdecherf/Working/Workspaces/quercus-4.0.8/build/web/quercus.php:8: unknown lexeme:/ in quercus.php:6: quercus.php:7: class MyClass implements quercus.php:8: /* Implementation class */ quercus.php:9: Implement { quercus.php:10: ---I fixed it with two new functions : ignoreMultilineComment() and ignoreSinglelineComment() to ignore comments during execution of parseNamespaceIdentifier(). You can find a patch proposal in attachment (source based on SVN repo). Steps To Reproduce: Additional Example file to reproduce error: Information: <?php class Implement { function _test() { echo __CLASS__.':'.__FUNCTION__.'()'; } } class MyClass implements /* Implementation class */ Implement { } function __construct() { echo $this->_test(); } $Class = new MyClass(); ?> Attached Files: QuercusParser.patch (2 KB) 07-25-10 10:00 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4137 [Quercus] minor always 07-23-10 07:47 07-23-10 07:48 Reporter: sblommers Platform: Linux Assigned To: OS: Ubuntu Priority: normal OS Version: 10.04 Status: new Product 4.0.9 Version: Product Build: SVN Resolution: open Projection: none ETA: none Summary: hash_hmac always returning false Description: Reason: Mac.getInstance always fails because it resolves the sha* to SHA-* which is incorrect (HashModule.java) static { _algorithmMap.put("md2", "MD2"); _algorithmMap.put("md5", "MD5"); _algorithmMap.put("sha1", "SHA"); _algorithmMap.put("sha256", "SHA-256"); _algorithmMap.put("sha384", "SHA-384"); _algorithmMap.put("sha512", "SHA-512"); } Steps To Run drupal services with APIKEY check on, the hash_mac(sha256 always fails because the Reproduce: context in HashModule won't ever be filled. Additional Information: static { _algorithmMap.put("md2", "MD2"); _algorithmMap.put("md5", "MD5"); _algorithmMap.put("sha1", "SHA"); _algorithmMap.put("sha256", "SHA256"); _algorithmMap.put("sha384", "SHA384"); _algorithmMap.put("sha512", "SHA512"); } fixed it Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3764 [Quercus] minor always 11-16-09 12:07 07-20-10 10:47 Reporter: dobes_vandermeer Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: fread() on a regular file doesn't return all requested bytes? Description: I recently encountered an issue where calls to fread() on a regular file returned fewer bytes than requested. This causes issues in code which relies on the PHP core implementation's behavior where fread() and fwrite always write completely for regular files, despite the documentation saying that it may read or write fewer bytes. I submitted an issue with WordPress http://core.trac.wordpress.org/ticket/11154 [^] about their false assumptions around fread() but I think it would make easier to run existing apps on Quercus if it showed the same behavior as the core PHP app rather than making everyone else fix their PHP code. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4121 [Quercus] minor always 07-13-10 23:15 07-13-10 23:15 Reporter: GT500 Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: Adding Custom BBCode Causes Strange Text in phpBB 3.0.7-PL1 Description: When adding a custom BBCode to phpBB 3.0.7-PL1, regardless of what custom tag you try to add, the text inside the new BBCode tag always reads "${0. (1 + $pad) ." Steps To Reproduce: Additional As an example, I attempted to add the following: Information: BBCode: [indent]{TEXT}[/indent] HTML Replacement: <span style="padding-left: 1em;">{TEXT}</span> If I were to try and post the following: Quick [indent]test of[/indent] indentation. It would display as the following: Quick ${0. (1 + $pad) . indentation. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3823 [Quercus] minor always Reporter: domdorn Date Submitted: 12-22-09 09:08 Last Update: 07-13-10 14:54 Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: unserialize not compatible with php unserialize Description: See attached testcase. tar zxf unserialize_testcase.tar.gz cd unserialize_testcase php test.php -> nothing printed call test.php with quercus: /home/domdorn/work/lyrix/branches/quercus/htdocs/unserialize_testcase/test.php:7: Warning: Assertion "" failed [assert] /home/domdorn/work/lyrix/branches/quercus/htdocs/unserialize_testcase/test.php:8: Warning: Assertion "" failed [assert] Steps To Reproduce: Additional Information: Attached unserialize_testcase.tar.gz (4 KB) Files: 12-22-09 09:08 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4119 [Quercus] minor always 07-13-10 08:16 07-13-10 08:16 Reporter: dancras Assigned To: Platform: OS: Priority: normal OS Version: Status: new Product 4.0.8 Version: Product Build: Resolution: open Projection: none ETA: none Summary: token_get_all() parses interface as a string Description: When using token_get_all() with a file containing an interface declaration, in PHP on apache the token index matches T_INTERFACE, but on quercus it matches T_STRING Replicate using the following code: <?php echo "Interface: ".T_INTERFACE; echo " Class: ".T_CLASS; echo " String: ".T_STRING; $class = " <?php class MyClass { }"; $interface = " <?php interface MyInterface { }"; echo " Class Tokens: "; print_r(token_get_all($class)); echo " Interface Tokens: "; print_r(token_get_all($interface)); ?> Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4118 [Quercus] minor Reporter: emil Assigned To: always 07-12-10 10:29 07-12-10 10:29 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.8 Version: Resolution: open Projection: none ETA: none Summary: Wordpress on GAE tries to access /dev/urandom Description: (rep by Sheldon) When I upload the wordpress-on-gae-quercus application to appengine, The php page is runing good, but when I login, there is a 500 internal server error shown. And I found the error log in appengine logs shown like below, waiting for your reply, thanks. /wordpress-2.7.1/wp-login.php java.security.AccessControlException: access denied (java.io.FilePermission /dev/urandom read) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:355) at java.security.AccessController.checkPermission(AccessController.java:567) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkRead(Unknown Source) at java.io.FileInputStream.<init>(FileInputStream.java:133) at com.caucho.vfs.FilePath.openReadImpl(FilePath.java:543) at com.caucho.vfs.Path.openRead(Path.java:1082) at com.caucho.quercus.lib.file.FileInput.<init>(FileInput.java:71) at com.caucho.quercus.lib.file.FileModule.fopen(FileModule.java:1399) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Method.java:43) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:135) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:670) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:605) at com.caucho.quercus.env.AbstractJavaMethod.callCopy(AbstractJavaMethod.java:138) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150) at com.caucho.quercus.expr.SuppressErrorExpr.evalCopy(SuppressErrorExpr.java:145) at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:501) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:381) at com.caucho.quercus.program.Function.call(Function.java:310) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:375) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:794) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) at com.caucho.quercus.expr.Expr.evalCopy(Expr.java:405) at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:64) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:381) at com.caucho.quercus.program.Function.call(Function.java:310) at com.caucho.quercus.function.AbstractFunction.callMethod(AbstractFunction.java:375) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:794) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) at com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:68) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:381) at com.caucho.quercus.program.Function.callCopy(Function.java:315) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150) at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:64) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:381) at com.caucho.quercus.program.Function.call(Function.java:310) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:64) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:381) at com.caucho.quercus.program.Function.call(Function.java:310) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:501) at com.caucho.quercus.expr.NotExpr.evalBoolean(NotExpr.java:72) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:381) at com.caucho.quercus.program.Function.callCopy(Function.java:315) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150) at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:64) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:381) at com.caucho.quercus.program.Function.callCopy(Function.java:315) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150) at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:64) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.SwitchStatement.execute(SwitchStatement.java:121) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:400) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePageTop(Env.java:3443) at com.caucho.quercus.env.Env.executeTop(Env.java:3389) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:173) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:445) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:97) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnecti Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3033 [Quercus] minor always 10-31-08 09:00 07-12-10 07:04 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: DirectoryIterator from SPL Description: (rep by wizhippo) http://forum.caucho.com/?q=node/149 [^] The Zend frame work using the DirectoryIterator from the php SPL and looking at the svn the complete SPL is not yet implemented. Am I correct when I say this or am I missing something? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4060 [Quercus] major always 06-01-10 15:38 07-09-10 17:48 Reporter: copart Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.1.10 Version: Resolution: open Projection: none ETA: none Summary: Using quercus' curl module, CURLOPT_SSL_VERIFYPEER false does not work Description: Code is: $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 2); ... but the result is sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target If the ability to not verify an SSL cert available? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4079 [Quercus] minor always 06-15-10 17:15 07-09-10 17:21 Reporter: alex Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: quercus PDO with jndi name relative to java:comp/env Description: construct PDO("jdbc/mysql") should work. new InitialContext().lookup("java:comp/env/jdbc/mysql") fails in GFv3 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4114 [Quercus] minor always 07-09-10 08:02 07-09-10 08:02 Reporter: domdorn Platform: Assigned To: OS: Priority: low OS Version: Status: new Product 4.0.9 Version: Product Build: Resolution: open Projection: none ETA: none Summary: update "PHP API" and "PHP Extension" to current version Description: phpinfo displays the following information currently PHP API => 20031224 PHP Extension => 20041030 this is quite outdated and some apps may check this, so we should update it to the current version Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4077 [Quercus] minor always 06-12-10 04:07 07-09-10 07:38 Reporter: domdorn Platform: Assigned To: domdorn OS: Priority: normal OS Version: Status: resolved Product Build: Product 4.0.9 Version: Resolution: fixed Projection: none ETA: none Summary: NPE in Env during cleanup Description: it is possible to generate a NPE in Env.java in the cleanup method: AbstractFunction []fun = _fun; _fun = null; if (fun != null) { boolean isUsed = false; if (_page.setRuntimeFunction(fun)) { isUsed = true; } here it is not checked if _page is null, which could be the case if the Class is created with the Constructor(QuercusContext) where everything except the context is null. I propose to change the line to if (_page != null && _page.setRuntimeFunction(fun)) { Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4101 [Hessian] trivial always 07-01-10 10:25 07-01-10 10:25 Reporter: qrilka Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: Fix Hessian PHP link Description: Website links to outdated hessian PHP from sf.net New version can be found on http://code.google.com/p/hessianphp/ [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4100 [Hessian] minor always 07-01-10 08:08 07-01-10 08:08 Reporter: ferg Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: replace StringBuffer with StringBuilder for Android Description: (rep by dilbert.elbonia) I ran into this issue while using Hessian on the Android platform. Android version 1.6 is severely affected and the problem is less serious on 2.1. In short the Hessian class com.caucho.hessian.io.Hessian2Input uses (and reuses) a private member StringBuffer _sbuf. Here is a snippet from said class: case 0x30: case 0x31: case 0x32: case 0x33: _isLastChunk = true; _chunkLength = (tag - 0x30) * 256 + read(); _sbuf.setLength(0); while ((ch = parseChar()) >= 0) _sbuf.append((char) ch); return _sbuf.toString(); This piece of code reads a char from the input and appends it to the _sbuf. When finished it returns the string to the caller via the toString() call. Due to an error in the Andriod implementation (for details check: http://code.google.com/p/android/issues/detail?id=9435) [^] it is possible that the call will return a string that occupies far more memory space than needed which is very bad on mobile devices. Also it seems that earlier Java implementations suffered from a similar problem: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4259569 [^] Since this is not strictly a Hessian bug I am reluctant to post a bug report but maybe a replacement of StringBuffer with a local StringBuilder should be considered. I made the replacement in my version and it solved the problem. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4098 [Quercus] minor always 07-01-10 00:54 07-01-10 00:54 Reporter: domdorn Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: Fatal Error: 'levenshtein' is an unknown function. Description: http://de.php.net/manual/en/function.levenshtein.php [^] is missing. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4097 [Hessian] minor always 06-30-10 17:25 06-30-10 17:25 Reporter: ferg Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: hessian sesson management Description: (rep by sweigersf) and my client (which runs as a normal Java SE process using a SE bootstrapped CDI container like Weld or ResinContainer): Code: public class AppStart { } @Produces @ApplicationScoped public RemoteInvocationHandler getRemoteInvocationHandler() throws Exception { HessianProxyFactory factory = new HessianProxyFactory(); RemoteInvocationHandler remote = (RemoteInvocationHandler) factory .create(RemoteInvocationHandler.class, "http://localhost:8080/alchemy-no-test-app-web/remoteInvocation"); [^] return remote; } How can I enable the use of sessions from my SE application? I assume there must be some way to create and destroy a client session similar to what HttpClient does, but alas my knowledge of Hessian is a bit limited. Edit/Delete Message Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 4084 [Quercus] minor always Reporter: emil Assigned To: Date Submitted: 06-17-10 11:18 Last Update: 06-17-10 11:18 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: phpBB 3.0.7-PL1 bug with security option "Check IP against DNS Blackhole List" Description: (rep by GT500) I just found a new phpBB 3.0.7-PL1 bug in Quercus. When the option "Check IP against DNS Blackhole List:" in the "Security settings" section is set to 'Yes', Steps To Reproduce: Additional ???javax.naming.InvalidNameException: Empty label must be the last label in Information: a domain name; remaining name '4.97.1.184.sbl.spamhaus.org..' com.caucho.quercus.QuercusModuleException: javax.naming.InvalidNameException: Empty label must be the last label in a domain name; remaining name '4.97.1.184.sbl.spamhaus.org..' at com.caucho.quercus.lib.NetworkModule.dns_get(NetworkModule.java:547) at com.caucho.quercus.lib.NetworkModule.checkdnsrr(NetworkModule.java:575) 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:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:135) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:727) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:641) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:238) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:151) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:663) at com.caucho.quercus.expr.ConditionalExpr.eval(ConditionalExpr.java:70) at com.caucho.quercus.expr.Expr.evalValue(Expr.java:469) at com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:69) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:431) at com.caucho.quercus.program.Function.call(Function.java:349) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:238) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:151) at com.caucho.quercus.expr.BinaryEqualsExpr.evalBoolean(BinaryEqualsExpr.java:69) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:186) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:431) at com.caucho.quercus.program.Function.callMethod(Function.java:464) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:762) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:97) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:97) at com.caucho.quercus.expr.AbstractMethodExpr.evalCopy(AbstractMethodExpr.java:63) at com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) at com.caucho.quercus.expr.BinaryEqualsExpr.evalBoolean(BinaryEqualsExpr.java:69) at com.caucho.quercus.expr.UnaryNotExpr.evalBoolean(UnaryNotExpr.java:72) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:413) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePageTop(Env.java:3902) at com.caucho.quercus.env.Env.executeTop(Env.java:3845) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:187) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:582) at javax.servlet.http.HttpServlet.service(HttpServlet.java:96) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:183) at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:103) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:789) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:660) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:624) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:575) at com.caucho.network.listen.TcpSocketLink$AcceptTask.doTask(TcpSocketLink.java:1183) at com.caucho.network.listen.TcpSocketLink$ConnectionReadTask.runThread(TcpSocketLink.java:1118) at com.caucho.network.listen.TcpSocketLink$AcceptTask.run(TcpSocketLink.java:1150) at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:901) at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:866) Caused by: javax.naming.InvalidNameException: Empty label must be the last label in a domain name at com.sun.jndi.dns.DnsName.add(DnsName.java:283) at com.sun.jndi.dns.DnsName.parse(DnsName.java:435) at com.sun.jndi.dns.DnsName.<init>(DnsName.java:119) at com.sun.jndi.dns.DnsContext.fullyQualify(DnsContext.java:567) at com.sun.jndi.dns.DnsContext.c_getAttributes(DnsContext.java:410) at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(ComponentDirContext.java:213) at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:121) at com.sun.jndi.toolkit.url.GenericURLDirContext.getAttributes(GenericURLDirContext.java:85) at javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:123) at com.caucho.quercus.lib.NetworkModule.dns_get(NetworkModule.java:486) at com.caucho.quercus.lib.NetworkModule.checkdnsrr(NetworkModule.java:575) 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:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:135) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:727) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:641) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:238) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:151) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:663) at com.caucho.quercus.expr.ConditionalExpr.eval(ConditionalExpr.java:70) at com.caucho.quercus.expr.Expr.evalValue(Expr.java:469) at com.caucho.quercus.statement.ReturnStatement.execute(ReturnStatement.java:69) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:431) at com.caucho.quercus.program.Function.call(Function.java:349) at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:238) at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:151) at com.caucho.quercus.expr.BinaryEqualsExpr.evalBoolean(BinaryEqualsExpr.java:69) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.statement.ForeachStatement.execute(ForeachStatement.java:186) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:431) at com.caucho.quercus.program.Function.callMethod(Function.java:464) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:762) at com.caucho.quercus.expr.AbstractMethodExpr.eval(AbstractMethodExpr.java:97) at com.caucho.quercus.expr.ObjectMethodExpr.eval(ObjectMethodExpr.java:97) at com.caucho.quercus.expr.AbstractMethodExpr.evalCopy(AbstractMethodExpr.java:63) at com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88) at com.caucho.quercus.expr.BinaryEqualsExpr.evalBoolean(BinaryEqualsExpr.java:69) at com.caucho.quercus.expr.UnaryNotExpr.evalBoolean(UnaryNotExpr.java:72) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.statement.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:413) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:89) at com.caucho.quercus.env.Env.executePageTop(Env.java:3902) at com.caucho.quercus.env.Env.executeTop(Env.java:3845) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:187) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:582) at javax.servlet.http.HttpServlet.service(HttpServlet.java:96) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:183) at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:103) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:789) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:660) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:624) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:575) at com.caucho.network.listen.TcpSocketLink$AcceptTask.doTask(TcpSocketLink.java:1183) at com.caucho.network.listen.TcpSocketLink$ConnectionReadTask.runThread(TcpSocketLink.java:1118) at com.caucho.network.listen.TcpSocketLink$AcceptTask.run(TcpSocketLink.java:1150) at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:901) at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:866) Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4061 [Hessian] major always 06-02-10 00:06 06-16-10 01:13 Reporter: dilbert Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.6 Version: Resolution: open Projection: none ETA: none Summary: Security exceptions with Hessian on google app engine Description: I am having trouble with Hessian on Google App Engine. First I will describe the setup. I have a persistent class MessageDb declared as (It contains a String and an arraylist of strings): @PersistenceCapable public class MessageDb { @PrimaryKey private String user; } @Persistent private ArrayList<String> words = new ArrayList<String>(); /* getters and setters ...*/ I have the following service interface: public interface IService { ArrayList<String> testMessage(); /* Some other methods ... */ } The Service is implemented on App engine in the following way: public class Service extends HessianServlet implements IService { private static final PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory("transactions-optional"); @Override public ArrayList<String> testMessage() { PersistenceManager pm = null; try { pm = pmfInstance.getPersistenceManager(); } } MessageDb messageDb; try { messageDb = pm.getObjectById(MessageDb.class, "testMessage"); } catch (JDOObjectNotFoundException e) { return null; } return messageDb.getWords(); //return new ArrayList<String>(messageDb.getWords()); } finally { if (pm != null) pm.close(); } The service simply retrieves an MessageDb object by key and returns the object's ArrayList<String>. This code works fine on the local development server but it fails when deployed on remote Google servers with the following exception: java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is not allowed on private int java.util.ArrayList.size at com.google.appengine.runtime.Request.process-0c4ab611241850c6(Request.java) at java.lang.reflect.Field.setAccessible(Field.java:166) at com.caucho.hessian.io.JavaSerializer.introspect(JavaSerializer.java:122) at com.caucho.hessian.io.JavaSerializer.<init>(JavaSerializer.java:81) at com.caucho.hessian.io.JavaSerializer.create(JavaSerializer.java:95) at com.caucho.hessian.io.SerializerFactory.getDefaultSerializer(SerializerFactory.java:348) at com.caucho.hessian.io.SerializerFactory.loadSerializer(SerializerFactory.java:278) at com.caucho.hessian.io.SerializerFactory.getSerializer(SerializerFactory.java:224) at com.caucho.hessian.io.SerializerFactory.getObjectSerializer(SerializerFactory.java:197) at com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:418) at com.caucho.hessian.io.AbstractHessianOutput.writeReply(AbstractHessianOutput.java:558) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:323) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:202) at com.caucho.hessian.server.HessianServlet.invoke(HessianServlet.java:389) at com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:369) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:97) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135) at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:250) at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5838) at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5836) at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24) at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:398) at com.google.net.rpc.impl.Server$2.run(Server.java:852) at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:576) at com.google.net.rpc.impl.Server.startRpc(Server.java:807) at com.google.net.rpc.impl.Server.processRequest(Server.java:369) at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:442) at com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:319) at com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:290) at com.google.net.async.Connection.handleReadEvent(Connection.java:474) at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:831) at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207) at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:103) at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251) at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:413) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalAccessException: Reflection is not allowed on private int java.util.ArrayList.size ... 55 more I am not sure if this security exception is a bug in Hessian (for using an "forbidden" API) or In App engine (too tight security check) so I would like to hear what You think about it. I think this is perhaps connected with the datanucleus enhancements of the persistent class MessageDb. When the arrayList elements are copied in a new arrayList (like so: return new ArrayList<String>(messageDb.getWords()); ) then the exception does not occur. Another problem that I ran into is similar but it has to do with exceptions. I will start with an example. First the exception declaration: public class TestException extends RuntimeException { } Next the service declaration: public interface IService { void testException(); } And finally the service implementation: public class Service extends HessianServlet implements IService { public void testException() { throw new TestException(); } } As You can see this is a trivial implementation to test the exception. When executed on Google servers it dies like this: java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is not allowed on private java.lang.Throwable java.lang.Throwable.cause at com.google.appengine.runtime.Request.process-9880ff155b30e983(Request.java) at java.lang.reflect.Field.setAccessible(Field.java:166) at com.caucho.hessian.io.JavaSerializer.introspect(JavaSerializer.java:122) at com.caucho.hessian.io.JavaSerializer.<init>(JavaSerializer.java:81) at com.caucho.hessian.io.ThrowableSerializer.<init>(ThrowableSerializer.java:59) at com.caucho.hessian.io.SerializerFactory.loadSerializer(SerializerFactory.java:301) at com.caucho.hessian.io.SerializerFactory.getSerializer(SerializerFactory.java:224) at com.caucho.hessian.io.SerializerFactory.getObjectSerializer(SerializerFactory.java:197) at com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:418) at com.caucho.hessian.io.Hessian2Output.writeFault(Hessian2Output.java:400) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:314) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:202) at com.caucho.hessian.server.HessianServlet.invoke(HessianServlet.java:389) at com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:369) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:97) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135) at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:250) at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5838) at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5836) at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24) at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:398) at com.google.net.rpc.impl.Server$2.run(Server.java:852) at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:576) at com.google.net.rpc.impl.Server.startRpc(Server.java:807) at com.google.net.rpc.impl.Server.processRequest(Server.java:369) at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:442) at com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:319) at com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:290) at com.google.net.async.Connection.handleReadEvent(Connection.java:474) at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:831) at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207) at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:103) at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251) at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:413) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalAccessException: Reflection is not allowed on private java.lang.Throwable java.lang.Throwable.cause ... 54 more On the client I get something like this: java.lang.reflect.UndeclaredThrowableException at $Proxy0.testException(Unknown Source) at com.noveideje.testHessian.client.Main.main(Main.java:37) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:110) Caused by: java.io.EOFException: readObject: unexpected end of file at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2133) at com.caucho.hessian.io.MapDeserializer.readMap(MapDeserializer.java:114) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1653) at com.caucho.hessian.io.Hessian2Input.readReply(Hessian2Input.java:348) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:194) ... 7 more The ArrayList case also ends in an java.io.EOFException on the client. Tell me what do You think about this issue. If you have any additional questions do not hesitate to ask. Thank you for your time. P.S. The attachment contains a test project which contains the code needed to reproduce the errors. The project uses GAE 1.3.2 and Hessian 4.0.6 Steps To Reproduce: Additional Information: Attached testHessian.zip (22 KB) Files: 06-02-10 00:06 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4080 [Hessian] major always 06-16-10 01:12 06-16-10 01:12 Reporter: dilbert Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.6 Version: Resolution: open Projection: none ETA: none Summary: SecurityException thrown when serializing Throwable on Google App Engine Description: When an exception is thrown on GAE (a servlet that extends HessianServlet) it is not forwarded to the client, instead a SecurityException is thrown. Here is an example. First the exception declaration: public class TestException extends RuntimeException { } Next the service declaration: public interface IService { void testException(); } And finally the service implementation: public class Service extends HessianServlet implements IService { public void testException() { } throw new TestException(); } As You can see this is a trivial implementation to test the exception. When executed on Google servers it dies like this: java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is not allowed on private java.lang.Throwable java.lang.Throwable.cause at com.google.appengine.runtime.Request.process-9880ff155b30e983(Request.java) at java.lang.reflect.Field.setAccessible(Field.java:166) at com.caucho.hessian.io.JavaSerializer.introspect(JavaSerializer.java:122) at com.caucho.hessian.io.JavaSerializer.<init>(JavaSerializer.java:81) at com.caucho.hessian.io.ThrowableSerializer.<init> ThrowableSerializer.java:59) at com.caucho.hessian.io.SerializerFactory.loadSerializer(SerializerFactory.java:301) at com.caucho.hessian.io.SerializerFactory.getSerializer(SerializerFactory.java:224) at com.caucho.hessian.io.SerializerFactory.getObjectSerializer(SerializerFactory.java:197) at com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:418) at com.caucho.hessian.io.Hessian2Output.writeFault(Hessian2Output.java:400) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:314) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:202) at com.caucho.hessian.server.HessianServlet.invoke(HessianServlet.java:389) at com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:369) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:97) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135) at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:250) at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5838) at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5836) at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24) at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:398) at com.google.net.rpc.impl.Server$2.run(Server.java:852) at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:576) at com.google.net.rpc.impl.Server.startRpc(Server.java:807) at com.google.net.rpc.impl.Server.processRequest(Server.java:369) at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:442) at com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:319) at com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:290) at com.google.net.async.Connection.handleReadEvent(Connection.java:474) at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:831) at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207) at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:103) at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251) at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:413) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalAccessException: Reflection is not allowed on private java.lang.Throwable java.lang.Throwable.cause ... 54 more On the client I get something like this: java.lang.reflect.UndeclaredThrowableException at $Proxy0.testException(Unknown Source) at com.noveideje.testHessian.client.Main.main(Main.java:37) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:110) Caused by: java.io.EOFException: readObject: unexpected end of file at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2133) at com.caucho.hessian.io.MapDeserializer.readMap(MapDeserializer.java:114) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1653) at com.caucho.hessian.io.Hessian2Input.readReply(Hessian2Input.java:348) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:194) ... 7 more I have found a workaround by using a custom serializer. Here is how. First the Serializer: public class ThrowableSerializer extends AbstractSerializer { @Override public void writeObject(Object obj, AbstractHessianOutput out) throws IOException { if (obj != null) { final Class cl = obj.getClass(); if (out.addRef(obj)) return; int ref = out.writeObjectBegin(cl.getName()); Throwable tr = (Throwable) obj; ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); try { oos.writeObject(tr); } } if (ref < -1) { out.writeString("value"); out.writeBytes(bos.toByteArray()); out.writeMapEnd(); } else { if (ref == -1) { out.writeInt(1); out.writeString("value"); out.writeObjectBegin(cl.getName()); } out.writeBytes(bos.toByteArray()); } } finally { oos.close(); bos.close(); } } else out.writeNull(); The other class we need is the Deserializer: public class ThrowableDeserializer extends AbstractDeserializer { @Override public Class getType() { return Throwable.class; } @Override public Object readMap(AbstractHessianInput in) throws IOException { int ref = in.addRef(null); byte[] initValue = null; while (!in.isEnd()) { String key = in.readString(); } } if (key.equals("value")) initValue = in.readBytes(); else in.readString(); in.readMapEnd(); ByteArrayInputStream bis = new ByteArrayInputStream(initValue); ObjectInputStream ois = new ObjectInputStream(bis); try { Object value = ois.readObject(); in.setRef(ref, value); return value; } catch (ClassNotFoundException e) { throw new RuntimeException(e); } finally { ois.close(); bis.close(); } @Override public Object readObject(AbstractHessianInput in, Object[] fieldNames) throws IOException { int ref = in.addRef(null); byte[] initValue = null; for (Object o : fieldNames) { if (o instanceof String) { final String key = (String) o; if (key.equals("value")) initValue = in.readBytes(); else in.readObject(); } } ByteArrayInputStream bis = new ByteArrayInputStream(initValue); ObjectInputStream ois = new ObjectInputStream(bis); try { Object value = ois.readObject(); in.setRef(ref, value); return value; } catch (ClassNotFoundException e) { throw new RuntimeException(e); } finally { ois.close(); bis.close(); } } } I'm not sure if the readMap part is actually needed since I rearranged this code from another example. Also, a ThrowableSerializerFactory is needed: public class ThrowableSerializerFactory extends AbstractSerializerFactory { @Override public Serializer getSerializer(Class cl) throws HessianProtocolException { if (Throwable.class.isAssignableFrom(cl)) { return new ThrowableSerializer(); } return null; } @Override public Deserializer getDeserializer(Class cl) throws HessianProtocolException { if (Throwable.class.isAssignableFrom(cl)) { return new ThrowableDeserializer(); } return null; } } What this code essentially does is take a Throwable (which implements Serializable), serializes it to a byte[] and pushes it over to the other side. This serialization does not use the problematic setAccessible method (like com.caucho.hessian.io.ThrowableSerializer) and works correctly on App engine (I tested it). The only part left to do is to plug all this into the servlet and the client. Here is how to do it on the servlet: public class Service extends HessianServlet implements IService { @Override public void init(ServletConfig config) throws ServletException { super.init(config); getSerializerFactory().addFactory(new ThrowableSerializerFactory()); } // implement IService methods... } And here is how to do it on the client: String url = "http://whatever.appspot.com/service"; [^] HessianProxyFactory factory = new HessianProxyFactory(); factory.getSerializerFactory().addFactory(new ThrowableSerializerFactory()); IService service = (IService) factory.create(IService.class, url); If you have any additional questions do not hesitate to ask. Thank you for your time. The attachment contains an example project in which the bug is reproduced. Steps To Reproduce: Additional This bug report obsoletes this bug: http://bugs.caucho.com/view.php?id=4061 [^] Information: Some forums where this bug was discussed: http://groups.google.com/group/google-appengine-java/browse_thread/thread/0ccb9d0ff6b88545/ [^] http://forum.caucho.com/showthread.php?t=9999 [^] Attached testHessian.zip (21 KB) Files: 06-16-10 01:12 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4072 [Quercus] minor always 06-08-10 09:14 06-08-10 09:14 Reporter: sblommers Assigned To: Priority: normal Status: new Product Build: Platform: Linux OS: Ubuntu OS Version: 10.04 Product 4.0.8 Version: Resolution: open Projection: none ETA: none Summary: unset value does not seem to work correctly Description: After unsetting array_key_exists still returns true but should be false. Steps To <?php Reproduce: unset($c); //force $c to be unset $a=&$c; // NULL, but this actually sets $a and $c to the 'same' NULL. $a = 5; unset($c); $a=&$c; unset($c); $a = 5; ?> In the following example, we see an alternate method of testing if a variable is actually set or not: <?php var_dump(array_key_exists('c',get_defined_vars())); // SHOULD BE false unset($c); // actually unset it var_dump(array_key_exists('c',get_defined_vars())); // SHOULD BE false ?> Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4071 [Quercus] major always 06-08-10 08:48 06-08-10 08:48 Reporter: sblommers Platform: Linux Assigned To: OS: Ubuntu Priority: normal OS Version: 10.04 Status: new Product Build: Product 4.0.8 Version: Resolution: open Projection: none ETA: none Summary: Creating array with "string" as key dissappears Description: When creating array(null => 1, false => 2, true => 3, 4.6 => 4, "08" => 5, "8" => 6); "08" seems to dissapear. Steps To <?php Reproduce: $array = array(null => 1, false => 2, true => 3, 4.6 => 4, "08" => 5, "8" => 6); var_export($array); var_dump($array); echo count($array); echo " null is " . (array_key_exists(null, $array) ? '' : 'not ') . "a key.\n"; echo ' false is ' . (array_key_exists(false, $array) ? '' : 'not ') . "a key.\n"; echo ' true is ' . (array_key_exists(true, $array) ? '' : 'not ') . "a key.\n"; echo ' 4.6 is ' . (array_key_exists(4.6, $array) ? '' : 'not ') . "a key.\n"; echo ' "08" is ' . (array_key_exists("08", $array) ? '' : 'not ') . "a key.\n"; echo ' "8" is ' . (array_key_exists("8", $array) ? '' : 'not ') . "a key.\n"; ?> Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4059 [Quercus] block always 06-01-10 09:13 06-08-10 08:26 Reporter: sblommers Assigned To: Platform: Linux OS: Ubuntu Priority: normal OS Version: 10.04 Status: new Product 4.0.8 Version: Product Build: SVN Resolution: open Projection: none ETA: none Summary: PHP Type comparison not the same Description: Differences in type comparison between Quercus and PHP that are possibly causing most incompatibilities in existing PHP applications running on Quercus. Some of the type checks that are different on Quercus are causing major inconsistencies in data (I filed some bugs for Drupal). Steps To Run this script on both PHP and Quercus and see the difference (or download from Reproduce: https://streamconsulting.nl/drop/php-type-comparison.php) [^] <?php $tests = array(); /* Testing equalty */ $tests['=='] = create_function('$a, $b', 'return $a==$b;'); $tests['!='] = create_function('$a, $b', 'return $a!=$b;'); $tests['<>'] = create_function('$a, $b', 'return $a<>$b;'); $tests['<'] = create_function('$a, $b', 'return $a<$b;'); $tests['>'] = create_function('$a, $b', 'return $a>$b;'); $tests['<='] = create_function('$a, $b', 'return $a<=$b;'); $tests['>='] = create_function('$a, $b', 'return $a>=$b;'); /* Testing identity */ $tests['==='] = create_function('$a, $b', 'return $a===$b;'); $tests['!=='] = create_function('$a, $b', 'return $a!==$b;'); $comparison = array(); $comparison['TRUE'] = true; $comparison['FALSE'] = false; $comparison['1'] = 1; $comparison['0'] = 0; $comparison['-1'] = -1; $comparison['3,14'] = pi(); $comparison['"1"'] = '1'; $comparison['"0"'] = '0'; $comparison['"-1"'] = '-1'; $comparison['NULL'] = null; $comparison['array()'] = array(); $comparison['"php"'] = 'php'; print '<h1>PHP version '.PHP_VERSION.' type comparison tables</h1>'; foreach ($tests as $test=>$function) { print "<h2>Comparisons with $test</h2>"; print "<table border='1'>"; print "<tr>"; print "<th> </th>"; foreach (array_keys($comparison) as $name) { print "<th>$name</th>"; } print "</tr>"; foreach ($comparison as $arg_1_name => $arg_1_value) { print '<tr>'; print "<th>$arg_1_name</th>"; foreach ($comparison as $arg_2_value) { print '<td>'; print $function($arg_1_value, $arg_2_value)==true ? '<span style="color:00F;">TRUE</span>' : '<span style="color:#F00;">FALSE</span>'; print '</td>'; } print "</tr>"; } print "</table>"; } ?> Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4070 [Quercus] minor always 06-04-10 06:06 06-06-10 04:01 Reporter: sblommers Platform: Linux Assigned To: OS: Ubuntu Priority: normal OS Version: 10.04 Status: new Product 4.0.8 Version: Product Build: SVN Resolution: open Projection: none ETA: none Summary: strtotime not returning correct value-type Description: Incorrect return type when uring strtotime with a incorrect string (format?) Steps To $date=strtotime('1149585733 +5 days'); Reproduce: var_dump($date); //should return bool(false); QUERCUS returns a int with +5 PHP returns false Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4062 [Quercus] block always 06-02-10 02:45 06-02-10 05:52 Reporter: sblommers Platform: Linux Assigned To: OS: Ubuntu Priority: normal OS Version: 10.04 Status: new Product 4.0.8 Version: Product Build: SVN Resolution: open Projection: none ETA: none Summary: Quercus array() type check on != not fully compatible with PHP Description: When checking the following: $var = array(); $var != "" => FALSE (but should be TRUE) $var != true => FALSE (but should also be TRUE) $var2 = array("A", "B"); $var2 != true => TRUE (but this should be FALSE) Steps To Use the type checking table against APACHE+PHP and on QUERCUS Reproduce: https://streamconsulting.nl/drop/array-notequals-checking.php [^] here is the code if you are not able to download it: <?php $TEST_VAR = array( '|NULL' => NULL, '|"NULL"' => "NULL", '|false' => false, '|true' => true, '|FALSE' => FALSE, '|TRUE' => TRUE, '|"false"' => "false", '|"true"' => "true", '|0' => 0, '|1' => 1, '|"0"' => "0", '|"1"' => "1", '|NotExsist' => $notexist, '|""' => "", '|array()' => array(), '|array("A", "B")' => array("A", "B"), '|$_GET' => $_GET, '|$_POST' => $_POST, '|count($_GET)' => count($_GET), '|count($_POST)' => count($_POST), '|1.5' => 1.5, '|1e7' => 1e7, '|-14' => -14, '|005' => 005, '|(object) "Halo"' => (object) "Halo", '|fopen("php://stdin")' [^] => fopen("php://stdin", [^] "r") ); $CASE = array( '$var != ""', '!isset($var)', '!is_null($var)', '$var != NULL', '$var !== NULL', '!empty($var)', '$var != true', '$var !== true', '$var != false', '$var !== false', '!is_bool($var)', '!is_numeric($var)', '!is_int($var)', '!is_float($var)', '!is_array($var)', '!is_object($var)', '!is_resource($var)', ); $T = 'TRUE'; $F = 'FALSE'; /* CSS */ $lf = "\r\n"; $ds = " "; $gt = '>'; $q = '"'; $ac = ' align="center"'; $t = ' style='; $b = 'background-'; $c = 'color:'; $c1 = $t.$q.$b.$c.'#EBEBEB'.$q; $w = 'white-space:nowrap;'; $br = ' '; $s1 = '<span'; $s2 = '</span>'; $T = $s1.$t.$q.$c.'0000FF'.$q.$gt.$T.$s2; $F = $s1.$t.$q.$c.'#FF0000'.$q.$gt.$F.$s2; $t1 = '<table border="1" cellspacing="2" cellpadding="5"'.$t.$q; $t1 .= 'font-weight:bold; font-size:9px; font-family:Tahoma,Arial;'.$q.$gt; $t2 = '</table>'; $r1 = '<tr'; $r2 = '</tr>'; $d1 = '<td'; $d2 = '</td>'; $K = array_keys($TEST_VAR); $n = count($K); $m = count($CASE); $da = $ds.$ds.$d1.$ac.$gt; $dz = $d2.$lf; echo $t1.$lf; $v = 14; for ($i=0; $i<$n; $i++) { if ( ($i != ($n-1)) && ($v > 13) ) { echo $ds.$r1.$t.$q.$b.$c.'#CCCCCC'.$q.$gt.$lf; echo $ds.$ds.$d1.$ac.$gt .'$VAR/IF NOT' .$dz; for ($j=0; $j<$m; $j++) { echo $ds.$ds.$d1.$ac.$t.$q.$w.$q.$gt .htmlspecialchars($CASE[$j],ENT_QUOTES) .$dz; } echo $ds.$ds.$d1.$ac.$gt .'$VAR/IF NOT' .$dz; echo $ds.$r2.$lf; $v = 0; } $v += 1; echo $ds.$r1.(($ch=(($ch)?false:true))?'':$c1).$gt.$lf; echo $ds.$ds.$d1.$ac.$t.$q.$w.$q.$gt .(htmlspecialchars(trim($K[$i],"|"),ENT_QUOTES)) .$dz; /* ($var != "")? */ echo $da .(( $TEST_VAR[($K[$i])] != "" ) ? $T:$F) .$dz; /* (!isset($var))? */ echo $da .(( !isset($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_null($var))? */ echo $da .(( !is_null($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* ($var != NULL)? */ echo $da .(( $TEST_VAR[($K[$i])] != NULL ) ? $T:$F) .$dz; /* ($var !== NULL)? */ echo $da .(( $TEST_VAR[($K[$i])] !== NULL ) ? $T:$F) .$dz; /* (!empty($var))? */ echo $da .(( !empty($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* ($var != true)? */ echo $da .(( $TEST_VAR[($K[$i])] != true ) ? $T:$F) .$dz; /* ($var !== true)? */ echo $da .(( $TEST_VAR[($K[$i])] !== true ) ? $T:$F) .$dz; /* ($var != false)? */ echo $da .(( $TEST_VAR[($K[$i])] != false ) ? $T:$F) .$dz; /* ($var !== false)? */ echo $da .(( $TEST_VAR[($K[$i])] !== false ) ? $T:$F) .$dz; /* (!is_bool($var))? */ echo $da .(( !is_bool($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_numeric($var))? */ echo $da .(( !is_numeric($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_int($var))? */ echo $da .(( !is_int($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_float($var))? */ echo $da .(( !is_float($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_array($var))? */ echo $da .(( !is_array($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_object($var))? */ echo $da .(( !is_object($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_resource($var))? */ echo $da .(( !is_resource($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; echo $ds.$ds.$d1.$ac.$t.$q.$w.$q.$gt .(htmlspecialchars(trim(trim($K[$i],"|")),ENT_QUOTES)) .$dz; echo $ds.$r2.$lf; } echo $t2.$lf; @fclose($file_handle); function n0t($var=false) { return (( (!isset($var)) || ((!$var) && ($var !== "0")) )? true: false); } ?> Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4058 [Quercus] minor always 06-01-10 03:11 06-01-10 03:11 Reporter: sblommers Assigned To: Platform: OS: Priority: normal OS Version: Status: new Product 4.0.8 Version: Product Build: SVN Resolution: open Projection: none ETA: none Summary: print_r not going through whole array when references are used Description: OUTPUT on APACHE+PHP: BEFORE SANITIZE: Array ( [0] => Array ( [0] => Array ( [0] => 0 [1] => 1 [2] => 2 ) [1] => 3 [2] => 4 ) [1] => 5 [2] => 6 ) AFTER SANITIZE: Array ( [0] => Array ( [0] => Array ( [0] => \0 [1] => \1 [2] => \2 ) [1] => \3 [2] => \4 ) [1] => \5 [2] => \6 ) OUTPUT on QUERCUS: BEFORE SANITIZE: Array ( [0] => Array ( [0] => Array ( [0] => 0 [1] => 1 [2] => 2 ) [1] => 3 [2] => 4 ) [1] => 5 [2] => 6 ) AFTER SANITIZE: Array ( [0] => Array [1] => \5 [2] => \6 ) Steps To <?php Reproduce: // Sanitize as a function to allow recursing; original array passed by reference function sanitize(&$array) { foreach ($array as &$data) { if (!is_array($data)) // If it's not an array, clean it $data = '\\' . $data; // addslashes(), mysql_real_escape_string() or whatever you wish to use, this is merely a simple example else // If it IS an array, call the function on it sanitize($data); } } // Test case $test = array( array( ), 5, 6 array( 0, 1, 2 ), 3, 4 ); // Output echo "BEFORE SANITIZE: "; print_r($test); sanitize($test); echo " AFTER SANITIZE: "; print_r($test); ?> Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4056 [Quercus] major sometimes 05-28-10 15:26 05-28-10 15:26 Reporter: sblommers Assigned To: Priority: normal Status: new Product Build: SVN (latest) Platform: Linux OS: Ubuntu OS Version: 10.04 Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: Env.getCookies crashing on _request (nullpointer exception) when in scriptcontext mode (JSR) Description: Running Drupal 6.16 functions in SC mode (running node_load etc from script). Sometimes Env.getCookies is called but in this SC the request and session variables are null (not initialized). I don't know if I'm doing something wrong here but I created a patch for it to not make it crash. Steps To Get cookies in php script when there is no servlet serving the php files but a QuercusEngine or Reproduce: using javax.script .. Additional DIFF against latest SVN 7166 Information: diff -r 0c58513dd2cb modules/quercus/src/com/caucho/quercus/env/Env.java --- a/modules/quercus/src/com/caucho/quercus/env/Env.java Fri May 28 11:54:18 2010 +0200 +++ b/modules/quercus/src/com/caucho/quercus/env/Env.java Sat May 29 00:21:19 2010 +0200 @@ -2641,6 +2641,9 @@ ArrayValue array = new ArrayValueImpl(); boolean isMagicQuotes = getIniBoolean("magic_quotes_gpc"); + if(_request == null) + return array; + Cookie []cookies = _request.getCookies(); if (cookies != null) { for (int i = 0; i < cookies.length; i++) { Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3594 [Quercus] major always 07-10-09 07:14 05-28-10 10:01 Reporter: sblommers Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Drupal 6 update.php messes up database Description: When I upgrade drupal 6.x to for example 6.10 to 6.13 i must update the database schema, this is where i loose all my data but i cannot find anything in the logs that explain why. Is anyone else having this issue. If i have more info i will post it here if it helps. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4053 [Quercus] minor always 05-28-10 04:46 05-28-10 04:47 Reporter: sblommers Assigned To: Priority: normal Status: new Product Build: SVN (latest + all in history) Platform: Linux + Microsoft OS: Ubuntu + Windows OS Version: 10.04 + Windows7 Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: CCK3 content multigroup in Drupal 6.16 not working correctly when viewing data (only first row-data is used to view) Description: See http://drupal.org/node/794602 [^] for a more clear explanation. Here you can see that after saving the data only the first row-data is used to represent it. Steps To Create a CCK content multigroup, this works. Reproduce: Save Drupal node Additional Running Quercus, 4.0.3, 4.0.4, 4.0.6, 4.0.7, 4.0.8-SNAPSHOT all result in the same Information: inconsistency when showing the data. It however is correctly written to the database. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4043 [Quercus] block always 05-17-10 09:44 05-28-10 04:41 Reporter: sblommers Platform: x86 Assigned To: OS: Ubuntu Priority: normal OS Version: 10.04 Status: new Product Build: Quercus SVN latest (today) Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: First value in Array is ignore when posting data Description: Hi, I'm using Drupal and from the Content Manager I choose to filter by node type, this is ignored. When using the permission table from drupal and deselecting the top row from the table and submitting this is ignored. Hopefully this is noticed/fixed soon. Steps To Post a page with array post data. Reproduce: Additional Information: 05-18-10 01:51 05-18-10 01:51 Screenshot3.png (142 KB) 05-18-10 01:51 Screenshots.tar.gz (364 KB) 05-18-10 01:53 Screenshots.zip (364 KB) 05-18-10 01:54 Attached Files: Screenshot1.png (140 KB) Screenshot2.png (138 KB) Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3990 [Quercus] minor always 04-10-10 09:13 05-23-10 06:02 Reporter: Xr Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.6 Version: Resolution: open Projection: none ETA: none Summary: isset issues an E_NOTICE on unset variable Description: Hi, The following code issues a notice in Quercus 4.0.6 (also tested in 4.0.3). <?php error_reporting(E_NOTICE); var_dump(isset($foo)); ?> Such a notice is not shown using the regular PHP distribution. I believe this is the correct behavior: checking if a variable is set should not issue a warning of any kind if it's not set. Note that Quercus returns the correct result (i.e. false). Regards, Xr Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4046 [Hessian] major always 05-22-10 19:55 05-22-10 19:55 Reporter: zluspai Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: Hessian serializer incorrectly serializes objects when field is overloaded Description: I've found this bug when serializing an ant's BuildException through hessian. The test case: import java.io.ByteArrayInputStream; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.tools.ant.BuildException; import com.caucho.hessian.io.Hessian2Input; import com.caucho.hessian.io.Hessian2Output; public class HessianSerializerBug { public static void main(String[] args) { try { ByteArrayOutputStream buf = new ByteArrayOutputStream(); Hessian2Output out = new Hessian2Output(buf); BuildException ex = new BuildException(); out.writeObject(ex); out.close(); Hessian2Input in = new Hessian2Input(new ByteArrayInputStream(buf.toByteArray())); BuildException clone = (BuildException) in.readObject(); in.close(); clone.printStackTrace(); } catch (Throwable ex) { ex.printStackTrace(); } } } The output will show an infinite loop at line "clone.printStackTrace()". This happens because the BuildException class has two "cause" fields: one inherited from the Throwable base class, and other one is defined in BuildException itself. Before the serialization the "cause" value is in the Throwable class's field, after the serialization the "cause" will be in the BuildException's field. Affects latest version, but detected in 3.1.6. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4045 [Hessian] minor always 05-19-10 09:32 05-19-10 09:32 Reporter: ferg Assigned To: Priority: normal Status: new Product Build: Projection: none ETA: none Summary: Hessian SSL client Platform: OS: OS Version: Product Version: Resolution: open Description: (rep by Enric Delgado) First of all, congratulations and thanks for the Hessian protocol! I think that it's wonderful! I've read here http://permalink.gmane.org/gmane.text.xml.hessian.interest/69 [^] that "We've been very successful in getting SSL to working with Hessian using client certificate authentication. I've also added a servlet filter to pre-process Hessian requests to so I can restrict access based on method names.". I'm about to use Hessian in my current Java Project and I wonder if that servlet filter has been published somewhere? I'm really interested in it because I need this kind of authentication in my project. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4041 [Hessian] minor always 05-14-10 16:12 05-14-10 16:14 Reporter: emil Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.7 Version: Resolution: open Projection: none ETA: none Summary: Remove flex imports from Hessian2Input/Output for ActionScript Description: (req by netsql) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4040 [Hessian] major always 05-13-10 18:35 05-13-10 18:35 Reporter: brandon Assigned To: Priority: normal Status: new Platform: OS: OS Version: Product 3.2.1 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Hessian servlet returns unencapsulated fault messages Description: When running Hessian 3.2.1, fault messages are returned without a proper "r 0x01 0x00" ... "z" reply container. The same behavior is *not* exhibited by Hessian 4.0.3. ( hex dumps available here: http://dpaste.com/hold/194411/ [^] ) Steps To Reproduce: Additional Information: Attached Files: hessian321.pcap (5 KB) hessian403.pcap (9 KB) 05-13-10 18:35 05-13-10 18:35 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 4036 [Quercus] major always Reporter: javaguy44 Assigned To: Date Submitted: 05-12-10 06:03 Last Update: 05-12-10 06:03 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.3 Version: Resolution: open Projection: none ETA: none Summary: Wordpress 3 dashboard broken with Tomcat compression Description: Hi, My original post + environment is here on forums: http://forum.caucho.com/showthread.php?t=8844 [^] I've managed to reproduce the error consistently. The issue is when I add tomcat compression to my tomcat_home/conf/server.xml <Connector executor="tomcatThreadPool" port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="9400" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css"/> When adding the above, wordpress dashboard no longer renders correctly. Screenshot of broken dashboard render is in the forum post(same as in beginning of this description) http://forum.caucho.com/showthread.php?t=8844 [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4027 [Hessian] major always 05-05-10 00:12 05-05-10 00:12 Reporter: halid Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.3 Version: Resolution: open Projection: none ETA: none Summary: Client gets RemoteException instead of BusinessException Description: Description: Our service on the server site throws a declared BusinessException. Hessian Skeleton on the server site does not correct serialize the exception and we get a RemoteAccessException on the client site instead of BusinessException. Possible Fix -----------Root of the problem seems to be a bug in following code-snippet inside of HessianSkeleton: 8<-------------------------------------------------------------------297 try { 298 result = method.invoke(service, values); 299 } catch (Exception e) { 300 Throwable e1 = e; 301 if (e1 instanceof InvocationTargetException) 302 e1 = ((InvocationTargetException) e).getTargetException(); 303 304 log.log(Level.FINE, this + " " + e1.toString(), e1); 305 306 out.writeFault("ServiceException", e.getMessage(), e); 307 out.close(); 308 return; 309 } -------------------------------------------------------------------------->8 In the line 301 is an InvocationTargetException (e) detected and in the following line is the target exception (exception throwed by service) extracted and assigned to the variable e1. But in the line 306 (out.writeFault....) the InvocationTargetException (e) will be serialized instead of extracted BusinessException (e1). We fixed the issue by replacing the variable e with the variable e in this line: out.writeFault("ServiceException", e.getMessage(), e); Steps To Reproduce: Additional Java Runtime: Sun jdk1.5.0_16 Information: OS: Windows XP Hessian: 4.0.3 Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4016 [Hessian] minor always 04-27-10 08:13 04-27-10 08:13 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: utf-8 toString conversion Description: (rep by Tahi Walcher) ppears we have hit a bug in Hessian relating to UTF-8 encoding. When UTF-8 strings are received by Hessian, they ?lose? their encoding and turn into rubbish characters. We have isolated the bug to the following: com.caucho.hessian.io. HessianInput.readString(), line 795 (v4.0.1 of hessian): return _sbuf.toString(); should correctly handle UTF-8 strings, i.e. return new String(_sbuf.toString().getBytes(), "UTF-8"); Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 4015 [Hessian] major always Reporter: stefanthurnherr Assigned To: Date Submitted: 04-26-10 06:00 Last Update: 04-26-10 06:00 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: Exception: expected binary at 0x41 (when trying to read an InputStream in a Hessian Client) Description: Using Hessian 3.2.1 on both server side and client side, I am trying to download a file from the server using this API: public interface IPackageCreatorService{ InputStream createPackage(String inputString, boolean aFlag); } When trying to read from the InputStream, I am getting the following exception: Exception in thread "main" com.caucho.hessian.client.HessianRuntimeException: com.caucho.hessian.io.HessianProtocolException: expected binary at 0x41 [B ([B@1ac1fe4) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:258) at $Proxy0.createPackage(Unknown Source) at com.company.packager.testing.client.HessianDownloadClient.main(HessianDownloadClient.java:37) Caused by: com.caucho.hessian.io.HessianProtocolException: expected binary at 0x41 [B ([B@1ac1fe4) at com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2714) at com.caucho.hessian.io.Hessian2Input.expect(Hessian2Input.java:2685) at com.caucho.hessian.io.Hessian2Input.readInputStream(Hessian2Input.java:2556) at com.caucho.hessian.io.InputStreamDeserializer.readObject(InputStreamDeserializer.java:65) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1696) at com.caucho.hessian.io.Hessian2Input.readReply(Hessian2Input.java:328) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:236) ... 2 more Steps To Reproduce: Additional The following [hessian-interest] mailing list thread seems to describe the exactly same problem - with Information: no helpful answer so far: http://maillist.caucho.com/pipermail/hessian-interest/2009-February/000641.html [^] Hessian v4.x is not usable neither due to this bug: http://bugs.caucho.com/view.php?id=3655 [^] So we'd be forced to use Hessian v3.1.6, which will very soon celebrate its second anniversary. Since that release, two major versions (3.2.x and 4.0.x) were released, which sounds like I should not use such an "old" version anymore. Btw: I'd really like to use Hessian: it looks simple, light-weight and efficient. Keep up the good work, but improve on marketing/communications! Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 4014 [Quercus] block always 04-25-10 14:15 04-25-10 14:29 Reporter: tanvir Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.6 Version: Resolution: open Projection: none ETA: none Summary: Quercus incompatible with CodeIgniter Description: We are trying to use Quercus for our CodeIgniter project and are getting spurious "Call to undefined method" errors. Even simple tutorial CodeIgniter projects are getting the same error. The same project running with the same PHP.INI on a standard PHP setup works fine (against the exact same database running on the same machine using the same code, except for the "base_url" config). Download this project and setup the database to see the issue (http://www.bambooinvoice.org/video_files/ci_sample_app.zip). [^] Is Quercus compatible with CodeIgniter? Steps To Reproduce: Additional Information: 04-25-10 14:15 php.ini (44 KB) 04-25-10 14:26 Attached Files: ci_sample_app.zip (879 KB) Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3030 [Hessian] major always 10-30-08 01:43 04-21-10 05:37 Reporter: shawnchain Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: 3.1.5 Resolution: open Projection: none ETA: none Summary: Server side exception could not be serialized to cilent side. Description: I have a service setup and exposed with Spring-Remoting/Hessian. The server side API might throw some IOException or FileNotFoundException. But at client side, I got the HessianProtocolException instead of the desired IOException. The problem is gone after revert back to hessian 3.1.3. Below is the error stack trace com.caucho.hessian.io.HessianProtocolException: readObject: unexpected end of file at com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2701) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2010) at com.caucho.hessian.io.AbstractMapDeserializer.readObject(AbstractMapDeserializer.java:67) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1756) at com.caucho.hessian.io.ArrayDeserializer.readList(ArrayDeserializer.java:95) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1703) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:387) at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:233) at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:157) at com.caucho.hessian.io.SerializerFactory.readObject(SerializerFactory.java:376) at com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2054) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1980) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1972) at com.caucho.hessian.io.Hessian2Input.readFault(Hessian2Input.java:1629) at com.caucho.hessian.io.Hessian2Input.prepareFault(Hessian2Input.java:428) at com.caucho.hessian.io.Hessian2Input.startReply(Hessian2Input.java:417) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:218) at $Proxy0.createFile(Unknown Source) 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:585) at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:219) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy1.createFile(Unknown Source) at com.alibaba.platform.aranda.client.HessianClientTest.testCreateFile(HessianClientTest.java:62) 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:585) at junit.framework.TestCase.runTest(TestCase.java:164) at junit.framework.TestCase.runBare(TestCase.java:130) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:120) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) org.springframework.remoting.RemoteAccessException: Cannot access Hessian remote service at [http://localhost:8080/aranda/service/hessian]; [^] nested exception is com.caucho.hessian.io.HessianFieldException java.lang.Throwable.stackTrace: readObject: unexpected end of file at org.springframework.remoting.caucho.HessianClientInterceptor.convertHessianAccessException(HessianClientInterce at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:225) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy1.createFile(Unknown Source) at com.alibaba.platform.aranda.client.HessianClientTest.testCreateFile(HessianClientTest.java:62) 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:585) at junit.framework.TestCase.runTest(TestCase.java:164) at junit.framework.TestCase.runBare(TestCase.java:130) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:120) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: com.caucho.hessian.io.HessianFieldException: java.lang.Throwable.stackTrace: readObject: unexpected e at com.caucho.hessian.io.JavaDeserializer.logDeserializeError(JavaDeserializer.java:590) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:391) at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:233) at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:157) at com.caucho.hessian.io.SerializerFactory.readObject(SerializerFactory.java:376) at com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2054) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1980) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1972) at com.caucho.hessian.io.Hessian2Input.readFault(Hessian2Input.java:1629) at com.caucho.hessian.io.Hessian2Input.prepareFault(Hessian2Input.java:428) at com.caucho.hessian.io.Hessian2Input.startReply(Hessian2Input.java:417) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:218) at $Proxy0.createFile(Unknown Source) 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:585) at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:219) ... 20 more Caused by: com.caucho.hessian.io.HessianProtocolException: readObject: unexpected end of file at com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2701) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2010) at com.caucho.hessian.io.AbstractMapDeserializer.readObject(AbstractMapDeserializer.java:67) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1756) at com.caucho.hessian.io.ArrayDeserializer.readList(ArrayDeserializer.java:95) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1703) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:387) ... 36 more Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3984 [Quercus] major always 04-07-10 08:02 04-14-10 06:12 Reporter: chiefgeek Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product 4.0.5 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Querecus wordpressMU 2.9.1.1 title column in posts list is blank Description: I have attached a screen shot from resin-4.0.5 running the Querecus servlet for wordpressMU 2.9.1.1 and as you can see the "Post" columns all show "(no title)". Steps To Reproduce: Additional If I roll back resin to 4.0.4 the post titles display fine. Information: 04-07-10 08:02 04-07-10 08:03 wordpressMU_Posts.jpg (87 KB) 04-07-10 08:05 Attached Files: Screen shot 2010-04-07 at 9.58.39 AM.png (121 KB) wordpressMU_Posts.png (121 KB) Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3980 [Quercus] crash always Reporter: dleute Assigned To: Date Submitted: 04-03-10 20:19 Last Update: 04-11-10 16:30 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.3 Version: Resolution: open Projection: none ETA: none Summary: using php session_start() always causes a crash Description: I'm using quercus 4.0.3 from ColdFusion 8 and the cf_php tag provided by sean corfield. Whenever any php script calls session_start inside a cf_php tag it results in a crash. See the crash log snippet in additional information. I've worked around my issue temporarily by changing and subclassing some symfony core files to write the data to a standard array which is then serialized to the database the same way a php session would be. As a side effect I was also unable to use session_encode. It should be noted, I'm not expecting the session commands to communicate with the browser or set cookies. I'm happy to pass the session id back to CF to do that. I just need all the internal session functionality so I don't need to change symfony code. Steps To Reproduce: Additional My goal is to use enough of symfony php framework to let coldfusion pass some information to a Information: php session accessed by symfony for the same user logged into CF. My idea was to use symfony itself to do all the session handling so I'm not trying to replicate work already done. My hack has worked. All that remains is getting quercus to allow session_start() to work so I don't have to change symfony core files. java.lang.NullPointerException at com.caucho.quercus.lib.session.SessionModule.session_start(SessionModule.java:421) 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:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:135) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:686) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:605) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:187) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:127) at com.caucho.quercus.expr.Expr.evalTop(Expr.java:376) at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67) at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:396) at com.caucho.quercus.script.QuercusCompiledScript.eval(QuercusCompiledScript.java:96) at javax.script.CompiledScript.eval(CompiledScript.java:89) Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 3973 [Documentation] minor Reporter: yasin Reproducibility: Date Submitted: Last Update: always 03-30-10 11:48 03-30-10 11:48 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: Forum doesn't work Description: forum.caucho.com main page works but other pages like a thread doesn't work. A blank page comes. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3958 [Quercus] major always 03-22-10 14:04 03-24-10 17:24 Reporter: rmann Assigned To: Platform: OS: Priority: normal OS Version: Status: new Product 4.0.5 Version: Product Build: Resolution: open Projection: none ETA: none Summary: WordPress titles don't show up Description: When I run resin 4.0.4, WordPress works reasonably well (there are some parsing issues). But under 4.0.5, everywhere WordPress (2.9.2) wants to render a post title (be it in the blog, or in the admin pages), it simply renders nothing. AFAICT, nothing appears in the logs to indicate what's going on. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 3959 [Quercus] major always 03-22-10 14:40 03-24-10 17:24 Reporter: rmann Assigned To: Last Update: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.5 Version: Resolution: open Projection: none ETA: none Summary: PHP parsing errors Description: In both resin 4.0.4 and 4.0.5 (and I think 4.0.0), there is a bug in the PHP rendering that either results in a StackOverflowError (4.0.0), or IllegalArgumentException. The stack trace is: [03-22 14:18:06.284] {http://*:80-18} [^] WARNING (com.caucho.server.webapp.ErrorPageManager) java.lang.IllegalArgumentException [03-22 14:18:06.284] {http://*:80-18} [^] at java.lang.Character.toChars(Character.java:2584) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStringToken(QuercusParser.java:4757) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStringToken(QuercusParser.java:4738) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseToken(QuercusParser.java:4113) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseUnary(QuercusParser.java:3072) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseAssignExpr(QuercusParser.java:2911) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseMulExpr(QuercusParser.java:2883) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseAddExpr(QuercusParser.java:2855) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseShiftExpr(QuercusParser.java:2830) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseCmpExpr(QuercusParser.java:2791) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseEqExpr(QuercusParser.java:2762) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseBitAndExpr(QuercusParser.java:2740) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseBitXorExpr(QuercusParser.java:2718) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseBitOrExpr(QuercusParser.java:2696) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseAndExpr(QuercusParser.java:2681) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseOrExpr(QuercusParser.java:2652) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseConditionalExpr(QuercusParser.java:2618) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseWeakAndExpr(QuercusParser.java:2596) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseWeakXorExpr(QuercusParser.java:2574) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseWeakOrExpr(QuercusParser.java:2552) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseExpr(QuercusParser.java:2543) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseIf(QuercusParser.java:1160) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatementList(QuercusParser.java:683) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatement(QuercusParser.java:817) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseIf(QuercusParser.java:1174) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatementList(QuercusParser.java:683) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseSwitch(QuercusParser.java:1305) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatementList(QuercusParser.java:687) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseTop(QuercusParser.java:577) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parse(QuercusParser.java:478) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parse(QuercusParser.java:331) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.page.PageManager.parse(PageManager.java:256) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.page.PageManager.parse(PageManager.java:213) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.QuercusContext.parse(QuercusContext.java:1109) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:139) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:610) [03-22 14:18:06.284] {http://*:80-18} [^] at javax.servlet.http.HttpServlet.service(HttpServlet.java:96) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:183) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:103) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:775) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection.dispatchRequest(TcpConnection.java:600) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection.handleRequestsImpl(TcpConnection.java:566) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection.handleRequests(TcpConnection.java:519) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection$AcceptTask.doTask(TcpConnection.java:1100) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection$ConnectionReadTask.runThread(TcpConnection.java:1037) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection$AcceptTask.run(TcpConnection.java:1068) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:901) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:866) The PHP code that causes this is in WordPress 2.9.2, when attempting to save General Settings. The code that fails is wp_includes/plugin.php:336: do { foreach ( (array) current($wp_filter[$tag]) as $the_ ) if ( !is_null($the_['function']) ) call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args'])); } while ( next($wp_filter[$tag]) !== false ); It's actually the while clause that causes the failure, something in the !== comparison. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3098 [Quercus] block always 11-25-08 13:30 03-23-10 07:41 Reporter: catkins Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: mysql_connect hostname substition by mangling jndi name Description: I have this string in the php: mysql_connect("java:comp/env/jdbc/thecrossingchurch"); What happens is I get this error: Warning: A link to the server could not be established. url=jdbc:mysql://java:3306/?characterEncoding=ISO8859_1 [^] If I change the statement to: mysql_connect("localhost"); Warning: A link to the server could not be established. url=jdbc:mysql://localhost:3306/?characterEncoding=ISO8859_1 [^] In fact, I can change it to anything and have a similar result. However, if a non-word character is put in the string, then that appears to be the terminator as in the first example. I get: "jdbc/thecrossingchurch" is configured in resin.xml. I can confirm this by doing: $conn = jndi_lookup("java:comp/env/jdbc/thecrossingchurch"); print $conn; Which shows the name and this works as well: $db = new PDO("java:comp/env/jdbc/thecrossingchurch"); Returning a connection, but the site design expect a mysql_connect and mysql_select_db call to setup a current database. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3902 [Quercus] minor always 02-21-10 01:00 03-21-10 07:38 Reporter: blackdalhia Platform: Assigned To: Priority: normal Status: new Product Build: OS: OS Version: Product 3.1.6 Version: Resolution: open Projection: none ETA: none Summary: Problem using DomDocument Description: Hi ! I m using DomDocument in my php scripts and currently cannot run it with QUercus, i get the following error message : Fatal Error: 'DomDocument' is an unknown class name. After some research on the net i found that is because some classes are not in the QUercus package, but i don t know 1/ where to find those classes and 2/ how to activate those in the package properly. Can I get some step by step tutorial pls ? thanks in advance Steps To Reproduce: Additional Information: I m working under Windows 7 with Glassfish 2.0 Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3856 [Hessian] tweak always 01-22-10 02:12 03-19-10 09:49 Reporter: Javart Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.1 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Catering for NULLs passed to JavaDeserializer in place of SqlTime, SqlDate, SqlTimestamp Description: In com.caucho.hessian.io.JavaDeserializer there are 3 static classes named SqlDateFieldDeserializer, SqlTimestampFieldDeserializer, and SqlTimeFieldDeserializer. Each static class contains method 'void deserialize(AbstractHessianInput in, Object obj)' where 'in.readObject()' is cast to java.util.Date. Please check that the given object is not NULL before calling methods on it, hence avoiding NullPointerException. Steps To Reproduce: Additional Information: Attached Files: nulldate.patch (1 KB) 03-19-10 09:49 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3931 [Hessian] minor always 03-08-10 09:21 03-08-10 09:21 Reporter: ferg Assigned To: Priority: normal Status: new Platform: OS: OS Version: Product 4.0.3 Version: Product Build: Resolution: open Projection: none ETA: none Summary: expires in Hessian for rest-style responses Description: (rep by Riccardo Cohen) To limit requests to resources that rarely change, sometimes in http responses, I simply add response.setDateHeader("Expires",now+600000); But in hessian, I have no access to the response object (only request object through ServiceContext.getContextRequest()) Is it possible ? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3930 [Hessian] minor always Reporter: ferg Date Submitted: 03-08-10 09:20 Last Update: 03-08-10 09:20 Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.3 Version: Resolution: open Projection: none ETA: none Summary: Invocation exception in HessianServlet Description: (rep by Andrej Rippich) java.lang.reflect.UndeclaredThrowableException at $Proxy9.deleteUser(Unknown Source) ... at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.reflect.InvocationTargetException 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:597) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:298) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:194) at com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:372) ... Caused by: de.psi.pjf.auth.server.service.ServiceRuntimeException: // ------------------------------- This is the original Exception thrown by my service ------------------------------------------Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 3926 [Quercus] minor always 03-05-10 09:31 03-05-10 09:31 Reporter: emil Last Update: Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.5 Version: Resolution: open Projection: none ETA: none Summary: amfphp sees Java object names, not php Description: (rep by Brian Topping) The following zip shows the issue: http://sourceforge.net/projects/amfphp/files/amfphp/amfphp%201.9.zip [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3921 [Hessian] major always 02-27-10 21:03 02-27-10 21:09 Reporter: aloksingh Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product 4.0.3 Version: Product Build: Resolution: open Projection: none ETA: none Summary: SerializerFactory doesn't return the correct deserializer Description: In the class SerializerFactory, loadDeserializer() methods skips the deserializer returned from _factories.. Here is the current code, note the line "deserializer = factory.getDeserializer(cl);" The reference is not being returned from the method, and instead overwritten a couple of lines later. [code] protected Deserializer loadDeserializer(Class cl) throws HessianProtocolException { Deserializer deserializer = null; for (int i = 0; deserializer == null && _factories != null && i < _factories.size(); i++) { AbstractSerializerFactory factory; factory = (AbstractSerializerFactory) _factories.get(i); } deserializer = factory.getDeserializer(cl); // XXX: need test deserializer = _contextFactory.getDeserializer(cl.getName()); if (deserializer != null) return deserializer; [/code] Instead, it should be something like this [code] deserializer = factory.getDeserializer(cl); if (deserializer != null) return deserializer; } [/code] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3917 [Quercus] minor always 02-25-10 11:57 02-25-10 11:57 Reporter: emil Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.5 Version: Product Build: Resolution: open Projection: none ETA: none Summary: libxml2 for IP.Board Description: (rep by derickso) IP.Board 3.0 Requirements Checker Checking minimum version (5.2.1)...FAIL You must be running PHP v5.2.1 or greater to use IP.Board 3.0. You are currently running version 5.2.0. Please ask your host to move you to a server running PHP v5.2.1 or greater. Checking for SPL...Pass Checking for DOM XML Handling...FAIL The DOM XML Handling extension is required for IP.Board 3.0. Please ask your host to install the libxml2 library. Checking for GD library...Pass Checking for GD2...Pass Checking for mysql support...Pass Checking for JSON...Pass Please also remember that MySQL 4.1 or higher (MySQL 5.0 or higher preferred) is required for IP.Board 3.0. Ask your server administrator to check the version of MySQL on your server if you are unsure. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3910 [Quercus] minor always 02-22-10 18:37 02-22-10 18:37 Reporter: emil Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.4 Version: Resolution: open Projection: none ETA: none Summary: implement attribute setting functions in php oci8 1.4.1 Description: (Rep by Chris Jones) http://pecl.php.net/package/oci8/ [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3909 [Quercus] minor always 02-22-10 18:26 02-22-10 18:26 Reporter: emil Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.4 Version: Product Build: Resolution: open Projection: none ETA: none Summary: implement oci_fetch_array with OCI_RETURN_NULLS flag Description: (Rep by Chris Jones) oci_fetch_array with OCI_ASSOC+OCI_RETURN_NULLS does not give an error, but a plain OCI_RETURN_NULLS call fails. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3908 [Quercus] minor always 02-22-10 18:24 02-22-10 18:24 Reporter: emil Assigned To: Priority: normal Status: new Product Build: Projection: none ETA: none Platform: OS: OS Version: Product 4.0.4 Version: Resolution: open Summary: oci_field_name() fields should be 1 based Description: (Rep by Chris Jones) currently the fields are 0 based Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3907 [Quercus] minor always 02-22-10 18:24 02-22-10 18:24 Reporter: emil Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.4 Version: Product Build: Resolution: open Projection: none ETA: none Summary: oci_fetch_array OCI_ASSOC flag Description: (Rep by Chris Jones) oci_fetch_array() doesn't respect the OCI_ASSOC - it returns both associative and nonassociative fields. (This may be a change in behavior from the previous oci8.) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3906 [Quercus] minor always 02-22-10 18:22 02-22-10 18:22 Reporter: emil Assigned To: Priority: normal Status: new Product Build: Projection: none ETA: none Platform: OS: OS Version: Product 4.0.4 Version: Resolution: open Summary: easy connect syntax for oci_connect() Description: (Rep by Chris Jones) oci_connect() didn't support Easy Connect syntax: Failed if no leading "//". Failed if no port specified. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 3905 [Documentation] minor Reporter: emil Reproducibility: Date Submitted: Last Update: always 02-22-10 10:43 02-22-10 10:43 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: explain resin:import Description: (rep by Michael Ludwig) Okay, sounds like: The document element (top-level tag) of the imported file has to match the parent element of <resin:import> in the importing document. Correct? If that's the rule, maybe it would be useful to spell it out more explicitly here: http://www.caucho.com/resin/doc/env-tags.xtp#resin:import [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3840 [Quercus] major always 01-07-10 05:05 02-22-10 04:34 Reporter: rajesh Assigned To: Platform: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: com.caucho.quercus.QuercusModuleException: java.lang.StackOverflowError Description: I have successfully installed wordpress tomcat and quercus.. im getting the following error while running the application.I have attached the document with screenshot of the screens.. Steps To Reproduce: Additional Information: Attached Files: screenshot.doc (88 KB) 01-07-10 05:05 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3901 [Quercus] minor always Reporter: nam Assigned To: Date Submitted: 02-20-10 21:39 Last Update: 02-20-10 21:39 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.3 Version: Resolution: open Projection: none ETA: none Summary: JSR 223 javax.script ServletContext issue Description: (rep by liamr) http://forum.caucho.com/showthread.php?t=4354 [^] We're trying to use quercus as a JSR-223 compliant scripting language with Shibboleth (a java based web SSO package). In addition to being an SSO, Shibboleth provides "attribute" information about users for the purposes of making authorization decisions. Attribute values can be generated by JSR-223 compliant languages... My php script can see the information passed into it.. Code: $givenName->getValues()->get(0) But attribute data modified by the script doesn't make it back out of the script. Code: <?php import edu.internet2.middleware.shibboleth.common.attribute.provider.BasicAttribute; $phpAttr = new BasicAttribute("phpAttr"); $phpAttr->getValues()->add("some value"); ?> Other than invoking $attr->getValues()->add(), one shouldn't have to do anything to make the information available to the application. The equivalent script in ECMAscript would be.. Code: importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider); jsAttr = new BasicAttribute("jsAttr"); jsAttr.getValues().add("some value"); I'm not that Java savvy, but the Shib developers suggested that it could be a "context" issue. Quote: The JSR-223 APIs have you pass in a processing context in to the script execution engine. This context contains a map where the keys are the attribute IDs and the values are the created objects. The keys then get changed in to variables within the script. Shibboleth can see the updated value in the other JSR-223 compliant languages I've tried (jython, jruby, ECMAscript, groovy). My example script is essentially the same across all languages. I'd really like to be able to use PHP/Quercus for this purpose (PHP being my language of choice). I'm not sure if the behavior I'm seeing with Quercus is a bug or a configuration option. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3899 [Quercus] minor always 02-20-10 20:13 02-20-10 20:13 Reporter: nam Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.3 Version: Resolution: open Projection: none ETA: none Summary: NullPointerException in private message reply - phpBB3 3.0.6 Description: (rep by GT500) http://forum.caucho.com/showthread.php?t=4550 [^] I think the error is related to the blank field under 'To', which is for adding extra recipients to the PM. If I add my own screen name to that field, and click 'Submit', then the PM sends, but it also takes me back to the compose screen as if it were just a preview, so that's not a viable workaround (confusion factor is too high). Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3881 [Quercus] minor always Reporter: ice-breaker Date Submitted: 02-07-10 12:05 Last Update: 02-07-10 12:05 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: extending or implementing unknown classes does not create error messages or incorrect messages Description: In Resin only a blank page is displayed when extending/implementing unknown classes. In Jetty a very uninformative message is displayed: "java.io.FileNotFoundException: jar:" Steps To Reproduce: Additional php file: Information: class PHPUnit_Util_FilterIterator extends FilterIterator { public function accept() { return true; } } expected output: FilterIterator is an unknown class name resin output: *only a blank page* jetty output: Problem accessing /unknownClassBug.php. Reason: java.io.FileNotFoundException: jar: Caused by: com.caucho.quercus.QuercusException: java.io.FileNotFoundException: jar: at com.caucho.quercus.env.Env.executePage(Env.java:5199) at com.caucho.quercus.env.InternalAutoloadCallback.loadClass(InternalAutoloadCallback.java:68) ....... Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3868 [Quercus] minor always 01-29-10 12:28 01-29-10 12:28 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: symfony - Class "JobeetCategory" must implement a "getPrimaryKey" method Description: (rep by I. Homer) We've been trying to use Symfony (http://www.symfony-project.org/) [^] within resin. I've been working through the symfony tutorial (http://www.symfonyproject.org/jobeet/1_2/Propel/en/01) [^] and cannot get the app from day 03 in the tutorial working through resin. It works through apache OK. The error I get at the end of Day 03 is 'Class "JobeetCategory" must implement a "getPrimaryKey" method to be rendered in a "sfWidgetFormPropelChoice" widget'. I've also tried running through the tutorial on version 1.4 of symfony, but get a different error. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3413 [Quercus] major always 03-24-09 15:52 01-28-10 15:10 Reporter: markr Platform: Assigned To: nam OS: Priority: high OS Version: Status: assigned Product Build: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Support unicode blog titles in WordPress Description: setting a wordpress blog title (blog name) to a unicode string doesn't work under quercus (the blog title is displayed as question marks, hex: EF BF BD). this works fine in mod_php. Steps To Reproduce: Additional may or may not be related to http://bugs.caucho.com/view.php?id=3400 [^] Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3795 [Quercus] minor always 12-01-09 17:48 01-13-10 16:19 Reporter: nam Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: APC cache should not be an LRU cache Description: (rep by QuiddleDeeDoodler) I am using Quercus with compile set to true. I would like to store multiple site-particular variables in APC. This works fine, for a while. But after an indeterminable period the variables are lost. I've have the following settings in the web.xml ... <!-- QUERCUS --> <servlet-mapping url-pattern="*.php" servlet-name="resin-php"> <init> <compile>true</compile> <script-encoding>UTF-8</script-encoding> <php-ini> <apc.enabled>1</apc.enabled> <apc.shm_segments>400</apc.shm_segments> <apc.shm_size>30</apc.shm_size> <apc.write_lock>1</apc.write_lock> <apc.num_files_hint>1000</apc.num_files_hint> <apc.user_entries_hint>1000</apc.user_entries_hint> </php-ini> </init> </servlet-mapping> Any suggestions welcomed. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3845 [Hessian] minor always 01-11-10 20:06 01-11-10 20:10 Reporter: Peter Dettman Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: HessianServlet should pass debug setting to created HessianSkeleton objects Description: When HessianServlet creates it's internal HessianSkeleton object(s), it would seem to make sense for it to pass thru the setting of the debug flag. Steps To Reproduce: Additional Information: Attached Files: Hessian_0003845.patch (1 KB) 01-11-10 20:10 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3843 [Quercus] major always 01-10-10 23:52 01-10-10 23:52 Reporter: rajesh Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: com.caucho.quercus.QuercusModuleException: java.lang.StackOverflowError Description: I have successfully installed wordpress tomcat and quercus.. im getting the following error while running the application. com.caucho.quercus.QuercusModuleException: java.lang.StackOverflowError I have attached the document with screenshot of the screens.. Steps To Reproduce: Additional Information: Attached Files: screenshot.doc (88 KB) 01-10-10 23:52 Viewing Issue Advanced Details ID: Category: Severity: 3761 [Documentation] minor Reporter: alex Reproducibility: Date Submitted: Last Update: always 11-13-09 08:14 01-07-10 10:59 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 3.1.9 Version: Product Build: Resolution: open Projection: none ETA: none Summary: update resin schemas in documentation Description: http://caucho.com/resin-3.1/doc/resin-schema.xtp [^] update default values for accept-thread-min, accept-thread-max Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3836 [Hessian] minor always Reporter: alex Assigned To: Date Submitted: 01-05-10 13:09 Last Update: 01-07-10 10:22 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.1.9 Version: Resolution: open Projection: none ETA: none Summary: HessianDebugState ClassCastException Description: We're seeing two possibly related issues with the Hessian Debug facilities in our production environment. The first is the exception pasted below. The second is that hessian debug will run for a few hours after we restart the web app, then just die. We are running 3.1.19. Any ideas? java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.Integer at com.caucho.hessian.io.HessianDebugState$ObjectState.shift(HessianDebugState.java:1186) at com.caucho.hessian.io.HessianDebugState$DateState.next(HessianDebugState.java:649) at com.caucho.hessian.io.HessianDebugState.next(HessianDebugState.java:93) at com.caucho.hessian.io.HessianDebugOutputStream.write(HessianDebugOutputStream.java:96) at java.io.OutputStream.write(OutputStream.java:99) at com.caucho.hessian.io.Hessian2Output.flushBuffer(Hessian2Output.java:1541) at com.caucho.hessian.io.Hessian2Output.flush(Hessian2Output.java:1522) at com.caucho.hessian.io.Hessian2Output.printString(Hessian2Output.java:1450) at com.caucho.hessian.io.Hessian2Output.writeString(Hessian2Output.java:1060) at com.caucho.hessian.io.JavaSerializer$StringFieldSerializer.serialize(JavaSerializer.java:346) at com.caucho.hessian.io.JavaSerializer.writeInstance(JavaSerializer.java:213) at com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:177) at com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:490) at com.caucho.hessian.io.CollectionSerializer.writeObject(CollectionSerializer.java:102) at com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:490) at com.caucho.hessian.io.JavaSerializer$FieldSerializer.serialize(JavaSerializer.java:256) at com.caucho.hessian.io.JavaSerializer.writeInstance(JavaSerializer.java:213) at com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:177) at com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:490) at com.caucho.hessian.io.MapSerializer.writeObject(MapSerializer.java:100) at com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:490) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:199) at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:109) at com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:396) at com.caucho.server.dispatch.WebServiceFilterChain.doFilter(WebServiceFilterChain.java:101) at com.caucho.filters.GzipFilter.doFilter(GzipFilter.java:169) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:162) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265) at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:436) at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682) at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:743) at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:662) at java.lang.Thread.run(Thread.java:619) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3827 [Quercus] minor always 12-23-09 10:27 01-06-10 15:41 Reporter: alex Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.2 Version: Product Build: Resolution: open Projection: none ETA: none Summary: quercus standalone: does not switch to pro mode with tomcat 5.5 Description: -tomcat 5.5.28 -mac osx 10.6.2 --works fine with tomcat 6.0.20 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3833 [Quercus] block always Reporter: raragao Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: PDO not implemented method Description: Hi, Date Submitted: 12-31-09 06:56 Last Update: 12-31-09 06:56 I am attempting to execute a my system that implemented using Yii Framework. This use PDO to connect with mysql. The message error is in Addintional Information Steps To Reproduce: Additional 500 Servlet Exception Information: [show] com.caucho.quercus.UnimplementedException: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] com.caucho.quercus.QuercusException: com.caucho.quercus.QuercusException: com.caucho.quercus.lib.db.PDO.getAttribute: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] at com.caucho.quercus.program.TryStatement.execute(TryStatement.java:128) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.expr.Expr.evalCopy(Expr.java:398) at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) at com.caucho.quercus.expr.InstanceOfExpr.evalBoolean(InstanceOfExpr.java:79) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.expr.Expr.evalCopy(Expr.java:398) at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.ForeachStatement.execute(ForeachStatement.java:181) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.ForeachStatement.execute(ForeachStatement.java:99) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.QuercusClass.callNew(QuercusClass.java:698) com.caucho.quercus.expr.VarNewExpr.eval(VarNewExpr.java:104) com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.expr.ClassMethodExpr.eval(ClassMethodExpr.java:115) com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:557) com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:850) com.caucho.quercus.expr.StaticMethodExpr.eval(StaticMethodExpr.java:148) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:92) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:70) com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119) com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:149) com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:355) javax.servlet.http.HttpServlet.service(HttpServlet.java:91) com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187) com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265) com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273) at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682) at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:743) at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:662) at java.lang.Thread.run(Thread.java:619) Caused by: com.caucho.quercus.QuercusException: com.caucho.quercus.lib.db.PDO.getAttribute: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:116) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:606) at com.caucho.quercus.program.JavaClassDef.callMethod(JavaClassDef.java:536) at com.caucho.quercus.env.JavaValue.callMethod(JavaValue.java:279) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) at com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:417) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:170) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:468) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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:105) at com.caucho.quercus.program.TryStatement.execute(TryStatement.java:70) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.expr.Expr.evalCopy(Expr.java:398) at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) at com.caucho.quercus.expr.InstanceOfExpr.evalBoolean(InstanceOfExpr.java:79) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:80) at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:398) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.ForeachStatement.execute(ForeachStatement.java:181) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.ForeachStatement.execute(ForeachStatement.java:99) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.QuercusClass.callNew(QuercusClass.java:698) com.caucho.quercus.expr.VarNewExpr.eval(VarNewExpr.java:104) com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.expr.ClassMethodExpr.eval(ClassMethodExpr.java:115) com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:557) com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:850) com.caucho.quercus.expr.StaticMethodExpr.eval(StaticMethodExpr.java:148) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:92) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) 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.ResinQuercusServlet.service(ResinQuercusServlet.java:149) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:355) at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273) at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682) at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:743) at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:662) at java.lang.Thread.run(Thread.java:619) Caused by: com.caucho.quercus.UnimplementedException: This functionality has not been implemented. A more recent version of Quercus may be available at http://www.caucho.com/download [^] Requests for unimplemented features can be entered in the bugtrack http://bugs.caucho.com [^] at com.caucho.quercus.lib.db.PDO.getAttribute(PDO.java:366) 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:597) at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:109) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:606) at com.caucho.quercus.program.JavaClassDef.callMethod(JavaClassDef.java:536) at com.caucho.quercus.env.JavaValue.callMethod(JavaValue.java:279) at com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) at com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:417) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:170) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:468) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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:105) at com.caucho.quercus.program.TryStatement.execute(TryStatement.java:70) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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 at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:398) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.expr.InstanceOfExpr.evalBoolean(InstanceOfExpr.java:79) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:80) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.expr.Expr.evalCopy(Expr.java:398) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.ForeachStatement.execute(ForeachStatement.java:181) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.ForeachStatement.execute(ForeachStatement.java:99) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.QuercusClass.callNew(QuercusClass.java:698) com.caucho.quercus.expr.VarNewExpr.eval(VarNewExpr.java:104) com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:352) at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.expr.ClassMethodExpr.eval(ClassMethodExpr.java:115) com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:557) com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:850) com.caucho.quercus.expr.StaticMethodExpr.eval(StaticMethodExpr.java:148) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:92) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:70) com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119) com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:149) com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:355) javax.servlet.http.HttpServlet.service(HttpServlet.java:91) com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187) com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265) com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273) com.caucho.server.port.TcpConnection.run(TcpConnection.java:682) com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:743) com.caucho.util.ThreadPool$Item.run(ThreadPool.java:662) java.lang.Thread.run(Thread.java:619) Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3831 [Quercus] minor always 12-26-09 16:45 12-26-09 16:45 Reporter: ferg Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Quercus: simultaneous compilation Description: Need to ensure the preload/compile for a Quercus page only occurs once. (stack trace with multiple class loads simultaneously.) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3830 [Quercus] minor always 12-26-09 16:23 12-26-09 16:23 Reporter: domdorn Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: Quercus Parser too "nice": Type Hints & Default values Description: the code class someClass { ... public static function graphicImage(String $id, boolean $rendered, String $libraryName, String $resourceName, $width = 0, $height = 0, String $alttext = "", String $class="", String $style="") {....} } does work without problems in quercus, but executed with native php the following error is thrown: [27-Dec-2009 00:18:50] PHP Fatal error: Default value for parameters with a class type hint can only be NULL in /path/to/file.php on line 276 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3828 [Quercus] major always 12-24-09 05:05 12-24-09 05:05 Reporter: dl Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: wordpress import fails under quercus Description: I'm using latest Quercus SVN snapshot (24/12/2009) on Java EE5 SDK (GlassFish) to run the latest version of WordPress (2.9.0, and also tested with 2.8.6). I'm trying to import a WXR file created by a previous version of WordPress: in WordPress management console, under Tools->Import, choose import from "WordPress" and use the attached WXR file. WordPress reports the file is successfully imported along with 22 comments. However, the comments do not appear when viewing the imported post, and also do not appear under the comments section of the blog management console (or they do appear, but not connected to the imported post). The import works perfectly ok when used on a native PHP blog (without Quercus), including on wordpress.com blogs. This issue prevents me from moving a couple of high profile blogs that currently run native PHP to run Quercus. Steps To Reproduce: Additional Information: Attached Files: wordpress.2009-12-18.xml (36 KB) 12-24-09 05:05 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3824 [Quercus] minor always 12-22-09 10:13 12-22-09 10:13 Reporter: ferg Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: moodle bug Description: (rep by cayhorstmann) I am using Moodle 1.9.7, Quercus 4.0.2, PostgreSQL 7.4, and GlassFish 3.0. When I take a quiz in Moodle, there are SQL related issues that cause Moodle to fail. When I run the same with PHP Java Bridge instead of Quercus, all is well--which is why I am posting here :-) I started logging the PHP queries that are the proximate causes for the error messages, and indeed they give me errors when I issue them directly in PSQL. But they are caused by the fact that some records have been inserted more than once with the same ID. The Moodle code is rather messy, so I thought I'd ask for any hints first before digging deeper into it. What level of compatibility should I expect with respect to PHP and PostgreSQL? How can I most effectively debug this? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 3822 [Quercus] block always 12-20-09 19:46 12-21-09 05:23 Reporter: domdorn Last Update: Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: Variable scoping issues in loops!!!! Description: I have lots of code like this: while(list($dnow, $nusernr, $stitle, $stext, $nuserguestbooknr,$nstatusnr) = $rSQLGetEntries->fetchRow() ) { include("$sDocumentRoot/ly/tmpl/elements/dsp_GuestbookEntry.php"); unset($dnow, $nusernr, $stitle, $stext, $nuserguestbooknr,$nstatusnr); } where $rSQLGetEntries is a Pear::DB Object and fetchRow() is a method, returning an array (see http://pear.php.net/manual/en/package.database.db.db-result.fetchrow.php [^] ) this code does not work, because the list expression is not implemented correctly OR the scoping of variables in Loops is broken! I've narrowed it down to something like this (10 is the correct number of rows returned) for($i = 0; $i < 10; $i++) { $res = $rSQLGetEntries->fetchRow(); print_r($res); echo "<hr/>"; } this correctly executes print_r on each of the 10 rows... however, as soon as I do this: for($i = 0; $i < 10; $i++) { $res = $rSQLGetEntries->fetchRow(); print_r($res); echo "<hr/>"; $dnow = $res[0]; } the code stops after the first loop execution Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3669 [Quercus] minor always 09-03-09 03:17 12-20-09 19:22 Reporter: kenfoo Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Certain PHP 5.2 functions not available Description: spl_object_hash() error_get_last() Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3820 [Hessian] minor always 12-19-09 17:50 12-19-09 17:50 Reporter: nam Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: Hessian spec incorrectly has 0x41 for non-final binary encoding Description: (rep by ddrtn) http://forum.caucho.com/showthread.php?t=2455 [^] http://hessian.caucho.com/doc/hessian-serialization.html [^] I' m writinng Qt C++ realization of Hessian 2.0. And I'm found some specigication bags. Serialization grammar contains: binary ::= x41 b1 b0 <binary-data> binary # non-final chunk ::= 'B' b1 b0 <binary-data> # final chunk ::= [x20-x2f] <binary-data> # binary data of # length 0-15 ::= [x34-x37] <binary-data> # binary data of # length 0-1023 but in 4.1 binary ::= b b1 b0 <binary-data> binary ::= B b1 b0 <binary-data> ::= [x20-x2f] <binary-data> 'b' != x41 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3813 [Quercus] major always 12-15-09 06:50 12-17-09 18:35 Reporter: jcalfee Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: accessing an array element Description: Summary: Native php can assess an array element like this array{"element"}, however Caucho requires a more standard syntax array["element"]. I have more than 300 references in OpenEMR like this: $resvalue = $result[0]{"name"}; They work fine under apache and php. In Caucho however, I have to convert it to the following: $resvalue = $result[0]["name"]; Can you please support this php syntax? It is not an option for me to modify OpenEMR in such an extensive way. I'm not sure if you need the following, so here it is just in case: sqlFetchArray simply returns mysql_fetch_array($resource, MYSQL_ASSOC); This is how the $result array is populated: for ($iter = 0;$row = sqlFetchArray($res);$iter++) $result[$iter] = $row; Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 3816 [Documentation] minor Reporter: emil Reproducibility: Date Submitted: Last Update: always 12-16-09 20:23 12-16-09 20:23 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: update log docs for 4.0 Description: update http://caucho.com/resin-3.1/doc/config-log.xtp [^] for 4.0 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3809 [Quercus] major always 12-11-09 04:31 12-11-09 04:43 Reporter: Roland Kujundzic Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: Simple strpos of µ character fails Description: Verfied on current tomcat 5 with current java 1.6.0_17. Fails with UTF-8 and ISO-8859-1 encoding. Steps To Reproduce: Additional <?php Information: $txt = 'a µ b'; if (strpos($txt, 'µ') === false) { print "MAJOR BUG!\n"; } ?> Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3637 [Quercus] minor always 08-17-09 11:47 12-04-09 07:49 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.0 Version: Resolution: fixed Projection: none ETA: none Summary: phpBB3 - Links not displaying Description: (rep by GT500) Links are not appearing in the SubSilver style on my forum. I checked the page source, and the link is not even being added, so it's not a CSS issue. The links display fine in ProSilver. Here are screenshots: http://www.phpbb.com/community/viewtopic.php?f=46&t=1734595 [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3796 [Quercus] major always 12-02-09 01:52 12-02-09 01:52 Reporter: Heiko Assigned To: Priority: normal Status: new Platform: OS: OS Version: Product 4.0.2 Version: Product Build: Resolution: open Projection: none ETA: none Summary: pg_query_params doesn't return true value on non-select statements Description: When using update/insert/delete statements with pg_query_params, quercus returns a false value, even if the query was successful. It is therefore not possible to test the correctness of the query and the following code fails: $sqlsentence = 'UPDATE Sessions SET sessionstate = $1, accesstime = $2 ' . 'WHERE sessionid = $3'; $result = pg_query_params($mmDbConnection, $sqlsentence, array($s1, $AccessTime, $mmSessionId)); if (!$result) { ...handle error... } Steps To Reproduce: Additional http://php.net/manual/en/function.pg-query-params.php: [^] Information: Return Values A query result resource on success or FALSE on failure. /com/caucho/quercus/lib/db/PostgresModule.java #executeInternal: if (pstmt.getStatementType().equals("SELECT")) { PostgresResult result = new PostgresResult(env, null, pstmt.getResultSet(), null); conn.setResultResource(result); return result; } else { // XXX: ??? return type? return null; // return pstmt; } Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3788 [Quercus] major always 11-27-09 01:02 11-27-09 01:02 Reporter: mmetcalfe Platform: Assigned To: Priority: normal Status: new Product Build: OS: OS Version: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: Support Moodle with Quercus. Description: Moodle is an open source virtual learning environment widely used in education, enjoying widespread, and increasing adoption. Some time ago, Moodle support was announced by Caucho - http://www.caucho.com/news/press/2008-11-04/ [^] - though perhaps this claim is no longer maintained. In a development environment, I have successfully had Moodle 1.9.7 running on Resin 4.0.2 with a Postgres 8.4 database, though this environment has only seen limited action. There are particular issues with a "for real" deployment of Moodle. The first, Nam has already reported on my behalf: bug 2999 regarding the lack of LDAP module support in Quercus. Other modules that could be usefully implemented are the openssl and xmlrpc extensions, which are used in Moodle networking. (This feature is not terribly widely used in education as far as I know). Additionally, the soap extension should be supported, as this would allow using Moodle with a Shibboleth authenticator - something that is very important to higher education institutions in the US and the EU. Finally, the soon to be released Moodle 2.0 supports only PHP versions 5.2.8 and above. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3783 [Quercus] major always 11-23-09 19:06 11-23-09 21:59 Reporter: werelnon Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: array_keys function alters passed in array Description: The function array_keys works fine on a single dimension array, but a severe issue crops up if used on a sub array of a multi dimension array. For example execute the following code: <? $test = array( 'fruit' => array( 'apple' => 'crisp', 'banana' => 'break', 'orange' => 'sour' )); array_keys( $test['fruit'] ); print_r( $test ); ?> The output of this is: Array ( [fruit] => Array ) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3774 [Quercus] minor always 11-19-09 12:10 11-20-09 06:17 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Mysql too many connections Description: (rep by juancho_h) http://forum.caucho.com/showthread.php?t=2290 [^] I have a little problem currently i'm using resin 3.1.9 and don't have any problem. But when i move the same site to resin 4.0.1 I've an error "Mysql too many connections". Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3769 [Quercus] major always 11-17-09 10:56 11-19-09 03:22 Reporter: damien Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: Unable to read image data for some JPEGs, unable to generate valid GIFs Description: I've been experiencing some problems with PHP and scaling uploaded images. Some JPEG images cannot be identified by getimagesize (the JPEGs seem to be valid, but getimagesize does not return any information about the file), and it does not seem possible to generate GIF images using imagegif (I'm not sure if the problem stems from loading the source image using imagecreatefromgif), as the output file is always 0 bytes. Steps To Reproduce: Additional I'm using v4.0.1 on Mac OS X using Java 1.5. I've attached a simple web app that attempts to Information: identify and scale three images (two JPEG, one GIF). I will try to test on Linux and Windows if I get the chance. In my environment, I see the following output: Details: images/budgerigar-100.jpg 1024x768 mime:image/jpeg size:158708 Details: images/budgerigar-100.small.jpg 200x150 mime:image/jpeg size:5674 Details: images/world-map.gif 800x519 mime:image/gif size:91878 Unable to get details for images/world-map.small.gif size:0 Unable to get details for images/drink.jpg size:37517 The example can be executed using 'mvn jetty:run' on the command line, and the results can be viewed at http://localhost:8080/. [^] 11-17-09 10:56 11-19-09 02:39 drink.jpg (37 KB) 11-19-09 02:39 world-map-ff.gif (90 KB) 11-19-09 03:12 Attached Files: image-test.tar (320 KB) world-map.gif (90 KB) \\.host\Shared Folders\Downloads\world-map-ie.gif (90 KB) 11-19-09 03:17 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3771 [Quercus] minor always Reporter: nam Assigned To: Date Submitted: 11-18-09 12:20 Last Update: 11-18-09 12:20 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Error Adding BBCode Tags in phpBB3 Description: (rep by GT500) http://forum.caucho.com/showthread.php?t=2206 [^] Received the following exception after trying to add the YouTube video tag to my phpBB 3.0.5 forums. Error prevents adding the custom tag. com.caucho.quercus.QuercusExecutionException: com.caucho.quercus.QuercusException bad regexp com.caucho.quercus.QuercusException: bad regexp at com.caucho.quercus.lib.regexp.RegexpModule.compileReplacement(RegexpModule.java:1896) at com.caucho.quercus.lib.regexp.RegexpModule.pregReplaceString(RegexpModule.java:1167) at com.caucho.quercus.lib.regexp.RegexpModule.pregReplace(RegexpModule.java:956) at com.caucho.quercus.lib.regexp.RegexpModule.preg_replace(RegexpModule.java:905) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3755 [Quercus] minor always 11-11-09 10:47 11-11-09 10:47 Reporter: emil Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.2 Version: Product Build: Resolution: open Projection: none ETA: none Summary: modx 0.9.6.3 - strict mode check Description: mysql connector/j forces strict mode, but modx checks that strict mode is not enabled for compatibility with certain plugins. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3743 [Hessian] feature always 11-05-09 08:55 11-05-09 08:55 Reporter: emil Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: Hessian C# Description: (req by Leonid Geller) None of the 3rd party C# implementations of Hessian are compatible with the latest Hessian 2 protocol. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3742 [Quercus] minor always 11-04-09 11:18 11-04-09 11:18 Reproducibility: Date Submitted: Last Update: always 10-30-09 12:52 10-30-09 12:52 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Jetty 6 - Permgen OutOfMemoryError on redeploy Description: (rep by sblommers) http://forum.caucho.com/showthread.php?t=1887 [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 3735 [Documentation] minor Reporter: nam Assigned To: Severity: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: need 4.0 documentation for persistent-store and use-persistent-store Description: can't find docs for persistent-store for use-persistent-store, there's currently only: <use-persistent-store> enables clustered sessions. need info on db-backed sessions Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3734 [Quercus] minor always 10-30-09 11:51 10-30-09 11:51 Reporter: nam Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: JISQL: NullPointerException with Drupal and jetty Description: (rep by ibrahim_dia) The server is running at http://localhost:8080/ [^] [jiql DataSource created.] jiqlDataSource url NOT Set. jiqlDataSource user NOT Set. jiqlDataSource password NOT Set. ST.invoke ERROR: nullublic static com.caucho.quercus.env.Value com.caucho.quercus.lib.db.MysqlModule.mysql_query( com.caucho.quercus.env.Env,com.caucho.quercus.env. StringValue,com.caucho.quercus.lib.db.Mysqli)->:Env[]:SELECT 1 FROM nubian_access WHERE type = 'host' AND LOWER('127.0.0.1') LIKE LOWER(mask) AND status = 0 LIMIT 0, 1:Mysqli[ConnectionEntry[ds=jiqlDataSource[activeCount=-1, autoCommit=true, closed=false, driverClass=org.jiql.jdbc.Driver, loginTimeout=60, maxCount=200, minCount=1, password=null, readOnly=false, url=jdbc:jiql://local, [^] useCount=1, user=null], user=null]] Fri Oct 30 02:37:59 UTC 2009[ERROR]: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.caucho.quercus.module.StaticFunction.invoke(St aticFunction.java:135) at com.caucho.quercus.env.JavaInvoker.callMethod(Java Invoker.java:670) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoke r.java:605) at com.caucho.quercus.env.AbstractJavaMethod.callCopy (AbstractJavaMethod.java:138) at com.caucho.quercus.expr.FunctionExpr.evalImpl(Func tionExpr.java:180) at com.caucho.quercus.expr.FunctionExpr.evalCopy(Func tionExpr.java:150) at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr .java:86) at com.caucho.quercus.statement.ExprStatement.execute (ExprStatement.java:64) at com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Funct ion.java:381) at com.caucho.quercus.program.Function.call(Function. java:310) at com.caucho.quercus.expr.FunctionExpr.evalImpl(Func tionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(Function Expr.java:126) at com.caucho.quercus.statement.ReturnStatement.execu te(ReturnStatement.java:68) at com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Funct ion.java:381) at com.caucho.quercus.program.Function.call(Function. java:310) at com.caucho.quercus.expr.FunctionExpr.evalImpl(Func tionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(Function Expr.java:126) at com.caucho.quercus.program.Function.evalArguments( Function.java:210) at com.caucho.quercus.expr.FunctionExpr.evalImpl(Func tionExpr.java:170) at com.caucho.quercus.expr.FunctionExpr.eval(Function Expr.java:126) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java :501) at com.caucho.quercus.expr.AndExpr.eval(AndExpr.java: 68) at com.caucho.quercus.statement.ReturnStatement.execu te(ReturnStatement.java:68) at com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Funct ion.java:381) at com.caucho.quercus.program.Function.call(Function. java:310) at com.caucho.quercus.expr.FunctionExpr.evalImpl(Func tionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(Function Expr.java:126) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java :501) at com.caucho.quercus.statement.IfStatement.execute(I fStatement.java:80) at com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) at com.caucho.quercus.statement.SwitchStatement.execu te(SwitchStatement.java:99) at com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Funct ion.java:381) at com.caucho.quercus.program.Function.call(Function. java:310) at com.caucho.quercus.expr.FunctionExpr.evalImpl(Func tionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(Function Expr.java:126) at com.caucho.quercus.statement.ExprStatement.execute (ExprStatement.java:64) at com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) at com.caucho.quercus.statement.WhileStatement.execut e(WhileStatement.java:73) at com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Funct ion.java:381) at com.caucho.quercus.program.Function.call(Function. java:310) at com.caucho.quercus.expr.FunctionExpr.evalImpl(Func tionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(Function Expr.java:126) at com.caucho.quercus.statement.ExprStatement.execute (ExprStatement.java:64) at com.caucho.quercus.statement.BlockStatement.execut e(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute( QuercusProgram.java:400) at com.caucho.quercus.page.InterpretedPage.execute(In terpretedPage.java:89) at com.caucho.quercus.env.Env.executePageTop(Env.java :3443) at com.caucho.quercus.env.Env.executeTop(Env.java:338 9) at com.caucho.quercus.servlet.GoogleQuercusServlet.se rvice(GoogleQuercusServlet.java:214) at javax.servlet.http.HttpServlet.service(HttpServlet .java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(Ser vletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler.handle(Se rvletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle( SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(Se ssionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(Co ntextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebA ppContext.java:405) at com.google.apphosting.utils.jetty.DevAppEngineWebA ppContext.handle(DevAppEngineWebAppContext.java:54 ) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispa tcher.java:268) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispa tcher.java:126) at com.google.appengine.tools.development.StaticFileU tils.serveWelcomeFileAsForward(StaticFileUtils.jav a:80) at com.google.appengine.tools.development.LocalResour ceFileServlet.maybeServeWelcomeFile(LocalResourceF ileServlet.java:247) at com.google.appengine.tools.development.LocalResour ceFileServlet.doGet(LocalResourceFileServlet.java: 120) at javax.servlet.http.HttpServlet.service(HttpServlet .java:693) at javax.servlet.http.HttpServlet.service(HttpServlet .java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(Ser vletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1093) at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1084) at com.google.appengine.tools.development.StaticFileF ilter.doFilter(StaticFileFilter.java:121) at at com.caucho.quercus.statement.SwitchStatement.execu te(SwitchStatement.java:99) at ._drupal_bootstrap(C:\Users\ME\workspace\emobyl\wa r\includes\bootstrap.inc:996) at .drupal_bootstrap(C:\Users\ME\workspace\emobyl\war \includes\bootstrap.inc:986) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3724 [Quercus] major always 10-21-09 00:59 10-29-09 15:58 Reporter: mastergaurav Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.1.9 Version: Resolution: open Projection: none ETA: none Summary: include_once return value does not match specs Description: Hi, I just downloaded resin-3.1.9 and tried to run a simple include_once code (given in additional information). As per PHP website (www.php.net), the return value of include_once must be true if the inclusion was successful. I always get a return value as probably an empty string. Whatever be the value, it evaluates to "false"! Steps To Reproduce: Additional -------------------- main file ----------------------Information: <?php header('Content-Type: text/plain'); echo "Hello World\n"; echo 'Folder: '.dirname(__FILE__)."\n"; $x = include_once(dirname(__FILE__)."/hw2.php"); echo "Value of x: ".$x." => ".($x ? "Yes" : "No")."\n"; $x = include_once(dirname(__FILE__)."/hw2.php"); echo "Value of x: ".$x." => ".($x ? "Yes" : "No")."\n"; ?> -------------------- main file ----------------------- -------------------- included file (hw2.txt) ---------------<?php echo "Hello 2\n"; ?>-------------------- included file (hw2.txt) ---------------- Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3714 [Quercus] minor always 10-16-09 08:28 10-16-09 08:28 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: NullPointerException in ob_start() (Kohana framework) Description: (rep by L. Stanley) This is the line that it is crapping out on. ob_start(array(__CLASS__, 'output_buffer')); -commenting out this line, stuff starts to work again. Odd, the __CLASS__ is the class name, and output_buffer is a real method in the Kohana class But it never seems to even call the output_buffer method at all. Seems to get to ob_start which is expecting a callback object who is inherited its meaning from the value class. After I got to function isArray returning false, I was like hmm, lost me. I guess I need to review all off quercus source to understand the flow better. But these are the different forms I know ob_start takes now: ob_start(string MethodName); ob_start(array(string ObjectName, string MethodName)); ob_start(array(object* ObjectReference, string MethodName)); Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3713 [Hessian] minor always 10-16-09 01:22 10-16-09 01:22 Reporter: Marian Kolesar Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product 4.0.1 Version: Product Build: Resolution: open Projection: none ETA: none Summary: serialization/deserialization of java.math.BigDecimal Description: java.math.BigDecimal is serialized by com.caucho.hessian.io.JavaSerializer and deserialized by com.caucho.hessian.io.JavaDeserializer. Deserialization leads to: "com.caucho.hessian.io.HessianProtocolException: 'java.math.BigDecimal' could not be instantiated". In version 3.1.6 was used StringValueSerializer/StringValueDeserializer for serialization/deserialization of BigDecimal. I have tested workaround that uses StringValueSerializer/StringValueDeserializer for BigDecimalin with version 4.0.1 and it worked fine, so I propose to use these for serialization. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3707 [Quercus] minor always 10-13-09 11:09 10-13-09 11:09 Reporter: emil Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.2 Version: Product Build: Resolution: open Projection: none ETA: none Summary: ADOdb ADONewConnection in CMS made simple Description: (rep by wolf via forum) "CMS made simple" does not work in Quercus due to lack of support for ADOdb ADONewConnection Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3705 [Quercus] minor Reporter: nam always 10-06-09 18:53 10-06-09 18:53 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.2 Version: Product Build: Resolution: open Projection: none ETA: none Summary: ext/filter module not implemented (phpMyAdmin 2.5.x) Description: (req by ashamash) http://www.php.net/filter [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3698 [Quercus] minor always 09-27-09 14:24 09-27-09 14:24 Reporter: pablorg Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: get_browser different from php's Description: There are several differences in the output of this function between php and Quercus. Notably, Parent & Platform array keys should be lower-cased. Quercus: stdClass Object ( [Parent] => Chrome 3.0 [Platform] => WinVista [browser_name_pattern] => Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/* [browser_name_regex] => Mozilla/5\.0 \(Windows; U; Windows NT 6\.0; .*\) AppleWebKit/.* \(KHTML, like Gecko\) Chrome/3\.0\..* Safari/.* ) PHP: stdClass Object ( [browser_name_regex] => ^mozilla/5\.0 (windows; u; windows nt 6\.0; .*) applewebkit/.* (khtml, like gecko) chrome/3\.0\..* safari/.*$ [browser_name_pattern] => Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/* [parent] => Chrome 3.0 [platform] => WinVista [browser] => Chrome [version] => 3.0 [majorver] => 3 [win32] => 1 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [javaapplets] => 1 [javascript] => 1 [cssversion] => 3 [supportscss] => 1 [minorver] => 0 [alpha] => [beta] => [win16] => [win64] => [backgroundsounds] => [cdf] => [vbscript] => [activexcontrols] => [isbanned] => [ismobiledevice] => [issyndicationreader] => [crawler] => [aol] => [aolversion] => 0 ) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3697 [Hessian] major always 09-24-09 23:49 09-24-09 23:49 Reporter: mobbmaster Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.1 Version: Resolution: open Projection: none ETA: none Summary: java.util.Locale causes HessianProtocolException Description: Using a java.util.Locale will cause a HessianProtocolException (com.caucho.hessian.io.HessianProtocolException: 'java.util.Locale' could not be instantiated). The problem does not appear with 3.2.1. It seems, that the registration of LocaleSerializer in class SerializerFactory is missing in 4.0.1 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3370 [Quercus] minor always 03-05-09 10:56 09-22-09 12:58 Reporter: nam Assigned To: Priority: high Status: new Product Build: Projection: none ETA: none Platform: OS: OS Version: Product 4.0.0 Version: Resolution: open Summary: joomla 1.5.9 not working Description: (rep by O. Ramos) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3693 [Hessian] feature always 09-22-09 11:43 09-22-09 11:43 Reporter: lcwik Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.1 Version: Resolution: open Projection: none ETA: none Summary: Extend Micro Hessian to allow for larger arrays/strings Description: Currently Micro Hessian only allows for single part byte arrays, it only parses the 'B' tag once, thus limiting the maximum size of the array. Similar issue for strings. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 3689 [Documentation] minor Reporter: emil Last Update: always 09-17-09 18:06 09-17-09 18:06 OS: OS Version: Status: new Product Build: Date Submitted: Platform: Assigned To: Priority: normal Reproducibility: Product Version: Resolution: open Projection: none ETA: none Summary: Document using Drupal with geoserver Description: (req. by B. Youngblood) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3652 [Quercus] minor always 08-27-09 13:12 09-10-09 12:39 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: file_get_contents() fail if I mix up path names with '/' and '\' - Windows Description: (rep by kenfoo) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3682 [Quercus] minor always 09-09-09 18:21 09-09-09 18:21 Reporter: nam Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: joomla 1.5 - 'JObject' is an unknown class Description: (rep by mmp1) When running Joomla 1.5 on 4.0.1 get the message : com.caucho.quercus.QuercusException: 'JObject' is an unknown class Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3681 [Quercus] minor always 09-09-09 18:20 09-09-09 18:20 Reproducibility: Date Submitted: Last Update: always 09-04-09 16:01 09-04-09 16:01 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: php 5.3 namespaces support Description: (req by wmeler) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 3676 [Documentation] feature Reporter: emil Severity: Platform: Assigned To: Priority: normal Status: new Product Build: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Document using Drupal with Apache Solr Description: (Suggested by B Youngblood) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3661 [Quercus] minor always 09-01-09 13:04 09-01-09 13:04 Reporter: emil Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.2 Version: Resolution: open Projection: none ETA: none Summary: mail() does not set Message-ID header properly Description: for supportcenter Steps To Reproduce: Additional We may need to extend javax.mail.internet.MimeMessage to fix this, as the RI doesn't check Information: for this header. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3656 [Hessian] minor always 08-28-09 09:01 08-28-09 09:01 Reporter: ferg Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: hessian remove jndi dependencies Description: 'd like to second the request for all jndi refs to be removed as a dependency. Also as I previously advised I am no longer using hessian with http, so would prefer no dependency on http or URL's, I think this transport support should be supplied as a separate non required jar thanks Jason. Message: 2 Date: Wed, 26 Aug 2009 16:42:52 +0200 From: [email protected] Subject: [Hessian-interest] Hessian on Android To: [email protected] Message-ID: <[email protected]> Content-Type: text/plain; charset="iso-8859-1" Hi all. I am trying to get a small Android client up and running. Turns out is is quite hard in it's current form, since javax.naming.spi.ObjectFactory is missing on the Android platform for starters. So I ask; is there an older version of Hessian that do not have this requirement? I would also like to add the removal of this dependency as a feature request. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 3638 [Documentation] minor Reporter: nam Assigned To: Priority: normal Status: new Product Build: Attached Files: always 08-17-09 14:07 08-17-09 14:07 OS: Product Version: Resolution: open Summary: relaxng schema not available for 4.0 Additional Information: Last Update: OS Version: ETA: none Steps To Reproduce: Date Submitted: Platform: Projection: none Description: (req by floatingworld) Reproducibility: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3635 [Quercus] minor always 08-17-09 11:20 08-17-09 11:20 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 3.2.1 Version: Product Build: Resolution: open Projection: none ETA: none Summary: com.caucho.quercus.QuercusRuntimeException: bad UTF-8 sequence Description: (rep by B. Wu) utf-8 exception throw for regular express subject: " 'spotlight a great site' " TODO: double-check handling of bad utf-8 encodings Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3625 [Quercus] block always Reporter: mtourne Assigned To: Date Submitted: 08-04-09 20:50 Last Update: 08-04-09 20:50 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: Unable to use Oracle Database with oci8 Description: There is a defined way to "replace" calls to mysql_connect to the underlying jndi facility. But it look like this this method would fail for other SGBD drivers. I've got a php application which uses Oracle and the oci8 driver to connect to it, and I can't get it to work. I've tried to define the db this way in resin.conf : <database> <jndi-name>jdbc/test_oracle</jndi-name> <driver> <type>oracle.jdbc.pool.OracleConnectionPoolDataSource</type> <url>jdbc:oracle:thin:@localhost:1521:test</url> <user>test</user> <password>test/password> </driver> </database> And use it in quercus/WEB-INF/web.xml But I always get a StackOverflowError : Caused by: java.lang.StackOverflowError at com.caucho.jca.ConnectionPool.allocate(ConnectionPool.java:773) at com.caucho.jca.ConnectionPool.allocateConnection(ConnectionPool.java:567) at com.caucho.sql.DataSourceImpl.getConnection(DataSourceImpl.java:65) at com.caucho.sql.DBPool.getConnection(DBPool.java:701) at com.caucho.quercus.env.Env.getConnection(Env.java:716) at com.caucho.quercus.lib.db.Oracle.connectImpl(Oracle.java:106) at com.caucho.quercus.lib.db.JdbcConnectionResource.connectInternal(JdbcConnectionResource.java:195) at com.caucho.quercus.lib.db.Oracle.<init>(Oracle.java:64) at com.caucho.quercus.lib.db.OracleModule.connectInternal(OracleModule.java:2245) at com.caucho.quercus.lib.db.OracleModule.oci_pconnect(OracleModule.java:1610) at com.caucho.quercus.lib.db.OracleModule.ociplogon(OracleModule.java:2097) at sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3613 [Quercus] minor always 07-29-09 08:34 07-29-09 16:29 Reporter: skial Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: unknown lexeme:» Description: Working with haXe 2.04 php output with Quercus on Google App Engine. Try and view a simple php page made by haxe, following error from quercus com.caucho.quercus.QuercusModuleException: com.caucho.quercus.parser.QuercusParseException: D:\dev\quercus \haxephp\haxephp\war\lib\Std.class.php:7: unknown lexeme:» in D:\dev\quercus\haxephp\haxephp\war\lib\Std.class.php:6: $GLOBALS['%s']->push("Std::is"); D:\dev\quercus\haxephp\haxephp\war\lib\Std.class.php:7: $»spos = $GLOBALS['%s']>length; D:\dev\quercus\haxephp\haxephp\war\lib\Std.class.php:8: { Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3615 [Hessian] minor always 07-29-09 15:45 07-29-09 15:45 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.1 Version: Product Build: Resolution: open Projection: none ETA: none Summary: split hessianservlet Description: (rep by Harald Radi) I wrapped up a HessianServiceExporter for spring that uses asynchronous IO to be able to invoke methods that don't return results immediately (i.e. polling events from the server does not return a result as long as the event queue is empty). For that I had to break up HessianSkeleton.invoke into an invoke and reply part. The reply part is just the last four lines from the original HessianSkeleton (those four out.* calls), but I had to literally clone the whole class just to get rid of those four lines. Couldn't that be changed/splitted in the original implementation so that I wouldn't need to maintain my own copy of the HessianSkeleton class and would be able to call the invoke and the reply part independently? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 3614 [Documentation] minor Reporter: nam Assigned To: Severity: Platform: OS: Reproducibility: Date Submitted: Last Update: always 07-29-09 14:52 07-29-09 14:52 Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: Update Quercus debugging documentation Description: see http://bugs.caucho.com/view.php?id=3610 [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3611 [Quercus] minor always 07-27-09 10:43 07-27-09 10:47 Reporter: tlandmann Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Call Stack getting broken (apparently) Description: The script below prints an impossible result in Quercus: Suddenly the bottom of the call stack (invocation of some_function() from the end of the script) is gone. However it seems that the bug is only limited to debug_backtrace(), so there're no negative effect on programs that don't rely on this PHP function. I didn't prove that though. -------------------<?php function dump_trace() { foreach (debug_backtrace() as $cur_stack_element) { echo "# {$cur_stack_element['function']}() from {$cur_stack_element['file']}:{$cur_stack_element['line']}\n"; } echo "\n"; } function some_function($depth=0, $max_depth=5) { if ($depth<$max_depth) { dump_trace(); if ($depth==2) { $function_name='some_function'; $function_name($depth+1, $max_depth); // this syntax, although valid PHP, causes the problem } else { some_function($depth+1, $max_depth); // works // call_user_func_array($function_name, array($depth+1, $max_depth)); // may also want to try this one -> it also works } } } some_function(); dump_trace(); ?> ---------------Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3608 [Quercus] major always 07-24-09 03:38 07-24-09 03:38 Reporter: tlandmann Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: "private" access level ignored Description: The example program below (also attached as a file for your convenience) outputs the following in standard PHP 5.2.6: doing 1_a doing 1_b ..., which is the expected result. ----------------- In Quercus it prints: doing 2_a /var/www/htdocs_selbst_branch_v2/test.php:8: Warning: required argument missing doing 2_b ..., which means that Quercus ignores the "private" access (security issue!) and that my nice framework with a well-designed hierarchy of decorator classes currently doesn't work in Quercus. ====================================== Sourcecode: -------------------------------------class class_1 { public function do_something_1() { $this->do_it_a('dummy'); $this->do_it_b('dummy'); } private function do_it_a($param) { echo "doing 1_a\n"; } } private function do_it_b($param) { echo "doing 1_b\n"; } class class_2 extends class_1 { private function do_it_a($param) { echo "doing 2_a\n"; } } private function do_it_b($param1, $param2) { echo "doing 2_b\n"; } $object=new class_2; $object->do_something_1(); Steps To Reproduce: Additional Information: Attached Files: quercus_private_access_level_bug.php (0 KB) 07-24-09 03:38 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3606 [Hessian] minor Reporter: ferg always 07-22-09 10:43 07-22-09 10:43 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: hessian servlet deploy enhancements Description: (Jeremy Unruh) Hi, I started playing around with Hessian and love it. I want to expose a new client to our existing architecture and am going to leverage hessian. We run a JBoss app server. I have setup some services and clients and they work great so far. My question is: I'm writng a basic framework for our developers. Is there any tricks I can do that I can add to my base framework which will save the need to create a new servlet declaration per service? Ie.. HelloService needs a helloservice servlet. Or is there examples of having 1 Hessian servlet which understands many services based on URL's? Any help would be appreciated :) Also, if there are any gotchas I should avoid while creating this framework to expose a new client that would be great. So far my api's are clean and work well on serialization but just want to make sure. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3602 [Quercus] minor always 07-20-09 09:34 07-20-09 09:34 Reporter: emil Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: stack overflow on recursive class inheritance Description: class A extends A {} should print useful error message instead of giving stack overflow. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3538 [Quercus] major always 05-30-09 16:05 07-20-09 09:31 Reporter: Taylor Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: phpMyAdmin has problem with padding of cleartext for blowfish decryption Description: Trying to get phpmyadmin running on quercus on glassfish v2.1. There is failure due to padding for encryption, using blowfish, when it decrypts in MCrypt. I went to quercus source to change it to no-padding. I discovered that Quercus already chooses no-padding for all encryption methods, except that it has been commented out and replaced with PKCS5 for blowfish. I assume there is a reason for this, so I guess there is no point in changing it back? This is independent of digitalrinaldo's bug about invalid key length. Note: I was hoping to use this in a class I'm teaching, use glassfish+mysql and phpmyadmin. All those students would go out and tell their employers to take a look at quercus..... Steps To Reproduce: Additional From the glassfish logs: Information: PWC1406: Servlet.service() for servlet phpMyAdmin threw exception java.lang.RuntimeException: java.lang.RuntimeException: javax.crypto.BadPaddingException: Given final block not properly padded at com.caucho.quercus.lib.mcrypt.McryptModule.mcrypt_decrypt(McryptModule.java:177) 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:585) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:129) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:618) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:553) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:429) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:170) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:363) at com.caucho.quercus.program.Function.callCopy(Function.java:297) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150) 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:105) at com.caucho.quercus.program.Function.callImpl(Function.java:363) at com.caucho.quercus.program.Function.call(Function.java:292) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:467) at com.caucho.quercus.expr.NotExpr.evalBoolean(NotExpr.java:72) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:327) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:71) at com.caucho.quercus.env.Env.include(Env.java:4074) at com.caucho.quercus.env.Env.includeOnce(Env.java:4025) at com.caucho.quercus.expr.IncludeOnceExpr.eval(IncludeOnceExpr.java:89) at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:327) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:71) at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:167) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:407) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Caused by: java.lang.RuntimeException: javax.crypto.BadPaddingException: Given final block not properly padded at com.caucho.quercus.lib.mcrypt.Mcrypt.decrypt(Mcrypt.java:98) at com.caucho.quercus.lib.mcrypt.McryptModule.mcrypt_decrypt(McryptModule.java:173) ... 73 more Caused by: javax.crypto.BadPaddingException: Given final block not properly padded at com.sun.crypto.provider.SunJCE_h.b(DashoA12275) at com.sun.crypto.provider.SunJCE_h.b(DashoA12275) at com.sun.crypto.provider.BlowfishCipher.engineDoFinal(DashoA12275) at javax.crypto.Cipher.doFinal(DashoA12275) at com.caucho.quercus.lib.mcrypt.Mcrypt.decrypt(Mcrypt.java:96) ... 74 more Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3565 [Quercus] minor always 06-18-09 08:00 06-18-09 08:00 Reporter: waltercruz Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: get_object_vars don't respect PHP visibility Description: Running the example from php.net get_object_vars on http://php.net/get_object_vars [^] I get a different result. PHP: array(2) { ["b"]=> int(1) ["c"]=> NULL } array(4) { ["a"]=> NULL ["b"]=> int(1) ["c"]=> NULL ["d"]=> NULL } QUERCUS: array(4) { ["a"]=> NULL ["b"]=> int(1) ["c"]=> NULL ["d"]=> NULL } array(4) { ["a"]=> NULL ["b"]=> int(1) ["c"]=> NULL } ["d"]=> NULL quercus is not respecting private and static from PHP. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3562 [Quercus] minor always 06-16-09 18:59 06-16-09 18:59 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: $_SERVER SSL variables Description: (rep by Glenn Moss) I'm evaluating Quercus and one of the first issues I'm running in to is that the $_SERVER superglobal does not have the mod_ssl environment variables like Apache puts into mod_php's version of the $_SERVER variable. In order to get my app up and running as soon as possible, is there a way for me to write some code to inject this information before my request is processed? Perhaps in a servlet filter or something? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3558 [Quercus] major always 06-11-09 19:01 06-12-09 18:33 Reporter: moriyoshi Assigned To: Platform: OS: Priority: normal OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Marshalling cost estimation doesn't work with values represented by Var Description: In overloaded method resolution, JavaInvoker doesn't take the account of the container values (Var). This may end up with wrong choice of the method. The patch is attached. Steps To Reproduce: Additional Information: Attached Files: patch (0 KB) 06-11-09 19:01 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3551 [Quercus] major always 06-07-09 09:43 06-08-09 05:19 Reporter: Jose Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: Potential Encoding issues preventing the appropriate display of essential features in blog software b2evolution. Description: I have tried Quercus included in Resin 3.1.9 as well as the Quercus module quercus-3.2.1.war on the IBM WebSphere Application Server Community Edition (WASCE) version 2.1.1.2. MySQL Connector 3.1.14 and MySQL Connector 5.1.7 have been tried in Resin 3.1.9; the latter has been tried on WASCE. Installation of b2evolution 2.4.7 and 3.x and connection to MySQL database (mysql Ver 14.12 Distrib 5.0.81, for debian-linux-gnu (i486) using readline 5.2) are successful. Upon the first login screen I Resin 3.1.9 shows the error: 500 Servlet Exception [show] com.caucho.quercus.QuercusExecutionException: com.caucho.quercus.UnimplementedException `mb_detect_encoding' has not been implemented. [and a long Java exception error log] Notwithstanding trying once again to enter the administration log screen, I am able to log in. Notwithstanding issues like those below (also see snapshot), string::1: Warning: required argument missing [disp_coll_name] string::1: Warning: required argument missing [disp_coll_name] string::1: Warning: required argument missing [strmaxlen] admin string::1: Warning: required argument missing [disp_actions] PropertiesEditDel are prevalent which leads me to suspect ISO-8859-1 / UTF-8 related issues. I have tried setting explicitly both encodings in file php/quercus-war/WEB-INF/web.xml but the blog application visual results are the same nonetheless. I might mention that I have attempted to disable `mb_detect_encoding' in b2evolution inc/_ext/xmlrpc/_xmlrpc.inc.php (which is derived from http://phpxmlrpc.sourceforge.net/) [^] with not noticeable outcome. Steps To Reproduce: Additional Information: Attached Files: resin-3.1.9_06-07-2009.png (148 KB) resin-3.2.1_06-07-2009.png (232 KB) 06-07-09 09:43 06-08-09 05:19 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3471 [Quercus] minor always 04-30-09 15:40 06-05-09 02:32 Reporter: pablorg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: jndi naming broken/different Description: I looked in the docs but found no reason why my quercus <init> should have stopped working. This is the setup in resin-web.xml: <database jndi-name="jdbc/stdb"> <driver type="org.postgresql.Driver"> <url>jdbc:postgresql://127.0.0.1:5432/whatever</url> [^] <user>admin</user> <password>admin</password> </driver> </database> here's the error message: WEB-INF/resin-web.xml:17: com.caucho.quercus.servlet.QuercusServlet.setDatabase(): javax.inject.UnsatisfiedDependencyException: 'javax.sql.DataSource' does not match any configured beans with binding [@Name('java:comp/env/jdbc/stdb')] I also added to another bug b/c the resin 4 quercus docs are evidently incorrect: http://bugs.caucho.com/view.php?id=3450 [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3313 [Quercus] feature always 02-01-09 12:23 06-04-09 11:41 Reporter: jyeary Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: phpLDAPadmin application requires LDAP modules to be available in Quercus Description: I tried using Nick Barkas LDAP module ( http://dpw.threerings.net/projects/quercus-ldap/ [^] ), but it is not a complete implementation required for the application. It would be nice to have an implementation of LDAP in Quercus, or a bridge to use JNDI. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 3540 [Documentation] minor Reporter: fzappert Assigned To: Severity: Reproducibility: Date Submitted: Last Update: always 05-31-09 08:58 05-31-09 08:58 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Cannot print the resin-4.0-admin.pdf Description: Adobe will not print anything. While scrolling through the file, this message appears regularly: There was an error processing a page. There was a problem reading this document(14). Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3529 [Quercus] minor always Reporter: krovid Date Submitted: 05-22-09 08:07 Last Update: 05-22-09 08:07 Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: Using the QuercusScriptEngine on command line throws a fatal error. Description: I was trying to run a PHP script from command line using the QuercusScriptEngine as follows: QuercusScriptEngineFactory factory = new QuercusScriptEngineFactory(); ScriptEngine engine = factory.getScriptEngine(); String paramValue = ""; engine.put("param_name", paramValue); String script = "<some php script>"; engine.eval(script); I get the following error: Exception in thread "main" com.caucho.quercus.QuercusErrorException: eval::3: Fatal Error: header requires a http context [header] at com.caucho.quercus.env.Env.error(Env.java:4492) at com.caucho.quercus.env.Env.error(Env.java:4403) at com.caucho.quercus.env.Env.error(Env.java:4081) at com.caucho.quercus.lib.HttpModule.header(HttpModule.java:77) 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:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:129) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:606) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:541) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) at com.caucho.quercus.script.QuercusScriptEngine.eval(QuercusScriptEngine.java:113) at com.caucho.quercus.script.QuercusScriptEngine.eval(QuercusScriptEngine.java:152) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247) Could you please help? thanks. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 1579 [Quercus] minor always 01-22-07 09:10 05-21-09 17:12 Reporter: ferg Platform: Assigned To: OS: Priority: high OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: xmlrpc support Description: (rep by Schott Stewart) Ive poured over the docs (both Quercus and PHP) and I think the xmlrpc is included by default in PHP5 (usually). But I dont think it works at all under Quercus, is that true? What options are there for implementing a PHP xml-rpc server under Quercus? BTW ive tried this, http://phpxmlrpc.sourceforge.net/ [^] but it relies on some php functions (some of the mb_* stuff) that are not in Quercus, either. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 3526 [Quercus] crash always 05-20-09 14:21 05-20-09 14:21 Reporter: nam Assigned To: Priority: high Status: new Product Build: Platform: OS: OS Version: Product 3.1.8 Version: Resolution: open Last Update: Projection: none ETA: none Summary: resin restarts due to OutOfMemory heap (phpBB3) Description: (rep by A. Shah) c:\resin\webapps\ROOT\phpBB3\cache\data_global.php length is modified (6117 -> 61) [2009/05/20 12:16:29.709] Depend[/c:/resin/webapps/ROOT/phpBB3/cache/data_global.php 1242414005709 432979407] is modified [2009/05/20 12:16:29.709] c:\resin\webapps\ROOT\phpBB3\cache\data_global.php digest is modified. [2009/05/20 12:16:29.725] c:\resin\webapps\ROOT\phpBB3\cache\data_global.php digest is modified. ... [2009/05/20 12:19:34.475] Caused by: java.lang.OutOfMemoryError: Java heap space [2009/05/20 12:19:34.475] at java.lang.String.toCharArray(String.java:2726) [2009/05/20 12:19:34.475] at com.caucho.quercus.env.MethodMap.get(MethodMap.java:101) [2009/05/20 12:19:34.475] at com.caucho.quercus.env.QuercusClass.addMethod(QuercusClass.java:481) [2009/05/20 12:19:34.475] at com.caucho.quercus.program.JavaClassDef.initClass(JavaClassDef.java:716) [2009/05/20 12:19:34.475] at com.caucho.quercus.env.QuercusClass.<init>(QuercusClass.java:198) [2009/05/20 12:19:34.475] at com.caucho.quercus.env.Env.createQuercusClass(Env.java:3567) [2009/05/20 12:19:34.475] at com.caucho.quercus.env.JavaValue.<init>(JavaValue.java:63) [2009/05/20 12:19:34.475] at com.caucho.quercus.program.JavaClassDef.wrap(JavaClassDef.java:286) [2009/05/20 12:19:34.475] at com.caucho.quercus.env.Env.wrapJava(Env.java:3290) [2009/05/20 12:19:34.475] at com.caucho.quercus.env.Env.wrapJava(Env.java:3233) [2009/05/20 12:19:34.475] at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServl et.java:134) [2009/05/20 12:19:34.475] ... 10 more [2009/05/20 12:19:35.881] Quercus[/c:/resin/webapps/ROOT/phpBB3/cache/data_global.php] loading interpreted page instead because of compile error [2009/05/20 12:19:35.881] com.caucho.java.JavaCompileException: The system is out of resources. [2009/05/20 12:19:35.881] Consult the following stack trace for details. [2009/05/20 12:19:35.881] java.lang.OutOfMemoryError: Java heap space [2009/05/20 12:19:35.881] at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:45) [2009/05/20 12:19:35.881] at java.lang.StringBuilder.<init>(StringBuilder.java:68) [2009/05/20 12:19:35.881] at com.sun.tools.javac.util.DefaultFileManager$ZipArchive.getFileObject(Def aultFileManager.java:444) [2009/05/20 12:19:35.881] at com.sun.tools.javac.util.DefaultFileManager$SymbolArchive.getFileObject( DefaultFileManager.java:485) [2009/05/20 12:19:35.881] at com.sun.tools.javac.util.DefaultFileManager.listDirectory(DefaultFileMan ager.java:294) [2009/05/20 12:19:35.881] at com.sun.tools.javac.util.DefaultFileManager.list(DefaultFileManager.java :768) [2009/05/20 12:19:35.881] at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:2089) [2009/05/20 12:19:35.881] at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1778) [2009/05/20 12:19:35.881] at com.sun.tools.javac.code.Symbol.complete(Symbol.java:386) [2009/05/20 12:19:35.881] at com.sun.tools.javac.jvm.ClassReader.completeOwners(ClassReader.java:1790 ) [2009/05/20 12:19:35.881] at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1769) [2009/05/20 12:19:35.881] at com.sun.tools.javac.code.Symbol.complete(Symbol.java:386) [2009/05/20 12:19:35.881] at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:758) [2009/05/20 12:19:35.881] at com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:690) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:724) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:747) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:698) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod(Resolve.java:120 4) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Attr.selectSym(Attr.java:1924) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:1832) [2009/05/20 12:19:35.881] at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1522) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:377) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1241) [2009/05/20 12:19:35.881] at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:12 10) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Attr.attribArgs(Attr.java:421) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1233) [2009/05/20 12:19:35.881] at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:12 10) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Attr.attribArgs(Attr.java:421) [2009/05/20 12:19:35.881] at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1233) [2009/05/20 12:19:35.881] at com.caucho.java.InternalCompiler.executeInt(InternalCompiler.java:243) [2009/05/20 12:19:35.881] at com.caucho.java.InternalCompiler.compileInt(InternalCompiler.java:96) [2009/05/20 12:19:35.881] at com.caucho.java.AbstractJavaCompiler.run(AbstractJavaCompiler.java:102) [2009/05/20 12:19:35.881] at java.lang.Thread.run(Thread.java:619) [2009/05/20 12:19:35.897] Compiling _quercus/_cache/_data_0global__php.java [2009/05/20 12:19:39.538] Hmux[allorgwebapps:6] Q:quit [2009/05/20 12:19:39.553] allocate PoolItem[jdbc/phpbb3,113,ManagedConnectionImpl] [2009/05/20 12:19:40.038] Quercus[/c:/resin/webapps/ROOT/phpBB3/cache/data_global.php] loading interpreted page Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3519 [Quercus] block always 05-16-09 13:24 05-20-09 13:51 Reporter: koreth Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Reference not preserved in compiled mode Description: <?php function dostuff($args) { $ref = &$args['ref']; $ref = array('123'=>'abc'); } function foo() { $args = array('ref' => &$arr); dostuff($args); print_r($arr); } foo(); Regular PHP, and Quercus in interpreted mode, prints "Array ( [123] => abc )". Quercus in compiled mode prints nothing. If you assign a value to $arr before the call to dostuff(), that value is still present after the call. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3520 [Quercus] minor always 05-16-09 19:15 05-16-09 19:15 Reporter: koreth Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: imagettftext doesn't return bounding box Description: The imagettftext() function is supposed to return the bounding box of the rendered text a la imagettfbbox(). Instead it returns null under Quercus. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3446 [Quercus] feature always 04-15-09 12:59 05-13-09 19:48 Reporter: koreth Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Need post-send shutdown functions Description: In our version of regular PHP, we added a function analogous to register_shutdown_function() called register_postsend_function() that lets us schedule code to run after the response has been completely sent back to the user and the connection closed down. We use that to, e.g., do some of our database operations without making the user wait for them to finish. It would be great if there were a similar facility in Quercus; right now we fall back on register_shutdown_function() which means Quercus has artificially high page generation times as measured in "ab" because we're waiting around for stuff that happens asynchronously in regular PHP. Steps To Reproduce: Additional Information: Attached Files: patch.txt (6 KB) 04-28-09 22:53 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3495 [Hessian] minor always 05-09-09 02:44 05-09-09 02:44 Reporter: Peter Dettman Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: Delegate construction of HessianProxy to an overridable method Description: When subclassing HessianProxyFactory, it's common to want to also subclass HessianProxy. Currently, this requires overriding (and essentially re-implementing) all of HessianProxyFactory.create(Class,String,ClassLoader). If the superclass method changes in future, the subclass won't see those changes; a likely maintenance problem. I've attached a patch that would delegate the construction of the proxy to a protected method that is simpler and safer to override. Steps To Reproduce: Additional Information: Attached Files: Hessian_createInvocationHandler.patch (1 KB) 05-09-09 02:44 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3494 [Hessian] feature always 05-09-09 02:30 05-09-09 02:30 Reporter: Peter Dettman Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: Add SSLSocketFactory property on HessianProxyFactory Description: I have attached a patch that would add support for using an explicit SSLSocketFactory with https connections opened by HessianProxyFactory. Steps To Reproduce: Additional I am currently doing this by subclassing HessianProxyFactory and overriding openConnection, Information: which works well enough, but perhaps it is a common enough requirement to warrant inclusion in the default implementation. Attached Files: Hessian_SSLSocketFactory.patch (1 KB) 05-09-09 02:30 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3479 [Quercus] minor always 05-05-09 16:37 05-05-09 16:37 Reporter: emil Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: ArrayIndexOutOfBoundsException on bbPress install Description: java.lang.ArrayIndexOutOfBoundsException: 65533 at com.caucho.quercus.env.StringBuilderValue.create(StringBuilderValue.java:246) at com.caucho.quercus.env.Env.createString(Env.java:3924) at com.caucho.quercus.lib.HtmlModule.htmlentities(HtmlModule.java:329) at _quercus._bb_22dincludes._wp_22dfunctions__php$fun_wp_entities_4.call(home/emil/web/staging/resin-pro4.0.s090504/webapps/forum/bb-includes/wp-functions.php:113) at com.caucho.quercus.function.CompiledFunction_4.call(CompiledFunction_4.java:147) at _quercus._bb_22dincludes._wp_22dfunctions__php$fun_attribute_escape_9.call(home/emil/web/staging/resin4.0.s090504/webapps/forum/bb-includes/wp-functions.php:229) at _quercus._bb_22dadmin._class_22dinstall__php$quercus_BB_Install_0$fun_sanitize_form_data_18.callMethod(home pro-4.0.s090504/webapps/forum/bb-admin/class-install.php:887) at com.caucho.quercus.function.LazyMethod.callMethod(LazyMethod.java:278) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:830) at _quercus._bb_22dadmin._install__php.execute(home/emil/web/staging/resin-pro-4.0.s090504/webapps/forum admin/install.php:81) at com.caucho.quercus.env.Env.executePageTop(Env.java:3443) at com.caucho.quercus.env.Env.executeTop(Env.java:3389) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:172) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:445) at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106) at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:201) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:185) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:264) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:275) at com.caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:644) at com.caucho.server.port.TcpConnection$KeepaliveTask.run(TcpConnection.java:1368) at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:866) at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:779) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3478 [Quercus] block always 05-05-09 16:27 05-05-09 16:27 Reporter: andybags Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 3.2.1 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Joomla 1.5.10 on Quercus 3.2.1 gives mysql error on some pages and delivers broken pages Description: I am getting broken pages on Joomla 1.5.10 on some pages running in on Quercus. The /administrator page of Joomla does not log in at all. The following line is displayed at the end of the page that does not work. Note that is it working for many pages, but some pages are showing up as broken. So definitely the database connections are correct because the main page is coming and some others too appear fine. It is hard to debug because the admin page is broken and one cannot log in to analyze the problem. ...libraries/joomla/database/database/mysql.php:98: Warning: connection is either not connected or is already closed [mysql_close] Where do I go to see more details error messages? Steps To Reproduce: Additional Information: Attached Files: snapshot1.png (39 KB) 05-05-09 16:27 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3474 [Quercus] minor always Reporter: emil Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.0 Version: Resolution: open Date Submitted: 05-04-09 13:03 Last Update: 05-04-09 13:03 Projection: none ETA: none Summary: Write not supported exception with WordPress theme editor Description: WordPress 2.7.1 theme editor throws this exception on clicking "Update File" java.lang.UnsupportedOperationException: com.caucho.vfs.JniRandomAccessFile at com.caucho.vfs.JniRandomAccessFile.write(JniRandomAccessFile.java:125) at com.caucho.quercus.lib.file.FileInputOutput.write(FileInputOutput.java:326) at com.caucho.quercus.lib.file.AbstractBinaryOutput.write(AbstractBinaryOutput.java:83) at com.caucho.quercus.lib.file.FileModule.fwrite(FileModule.java:1719) at _quercus._wp_22dadmin._theme_22deditor__php.execute(home/emil/web/staging/resinpro-4.0.s090504/webapps/ROOT/wp-admin/theme-editor.php:57) at com.caucho.quercus.env.Env.executePageTop(Env.java:3443) at com.caucho.quercus.env.Env.executeTop(Env.java:3389) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:172) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:445) at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106) at com.caucho.server.rewrite.MatchFilterChain.doFilter(MatchFilterChain.java:90) at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:151) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:185) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:264) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:275) at com.caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:644) at com.caucho.server.port.TcpConnection$KeepaliveTask.run(TcpConnection.java:1368) at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:866) at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:779) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3473 [Quercus] feature always 05-01-09 16:47 05-01-09 16:47 Reporter: koreth Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: API to force a dependency check Description: Disabling dependency checks (by setting the dependency check interval impossibly high) is good for runtime performance, but prevents us from deploying updated PHP code without a web app restart. Enabling dependency checks means that with a large number of servers, we will almost certainly hit the race condition where a dependency check happens while we're in the middle of updating the PHP code base, which will cause inconsistent code to run (file A is checked and is unchanged, file B is checked and has just changed so gets reloaded, then file A gets updated by the code push and we end up running old-A with new-B until the next dependency check.) If there were an API to tell Resin (or just Quercus) to make the dependency check happen immediately, we could hit a script to call that method after the PHP files had all been updated, and set the interval to a year or somesuch so it'd never happen on its own. Restarting the whole webapp is not optimal because we lose the local cache and have to repopulate it. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3469 [Quercus] major always 04-29-09 19:46 04-30-09 15:45 Reporter: pablorg Platform: Assigned To: OS: Priority: normal Status: new OS Version: Product 3.2.1 Version: Product Build: Resolution: open Projection: none ETA: none Summary: quercus float/rounding bug Description: I have a report that accumulates odometer values it pulls from the db. You can see in the image it does some funky math while interpreting this code: while($rs->moveNext()) { $vehId = $rs->fields['veh_id']; } if ($showSummary) { if (!isset($odomCache[$vehId])) $odomCache[$vehId] = 0; $odomCache[$vehId] += $rs->fields['distance_from_last']; $rs->fields['odom'] = $odomCache[$vehId]; } I've put the list of values below. Steps To Reproduce: Additional distance_from_last Information: -------------------0 0 0.1 0.1 0.7 0.6 0 1.5 0 4.8 0.4 0 0.5 0.5 0.3 4.3 04-29-09 19:46 04-29-09 19:47 Attached Files: quercus-rounding.gif (11 KB) php-rounding.gif (10 KB) Viewing Issue Advanced Details ID: Category: 3450 [Documentation] minor Reporter: pablorg Severity: Reproducibility: Date Submitted: Last Update: always 04-17-09 07:12 04-30-09 15:34 Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: Inconsistent Documentation Description: Your documentation makes me doubt whether Resin is the right product for us. Quercus is very promising, but despite the client list that Resin boasts, the shoddy documentation leaves us with a bad impression. Since source is available, it is possible to figure this all out eventually. But it's a hassle and one never knows if it's alright to trust the docs. Specific examples: 1. Under <session-config>, use-persistent-store is not fully explained. How do I specify the store location/type? (jdbc/file)? If I click on http://localhost:8080/resindoc/doc/resin.xtp#persistent-store, [^] I get nowhere and the navigation links/TOC on the left disappear. 2. jvm-arg is only ever mentioned in the command-line configuration section. Meanwhile, it is not a command-line configuration at all. We are not told if it is a child of <cluster> or if it can be a child of <resin> directly. 3. the links on the left side (for navigating docs) change all the time in surprising and inconsistent ways. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3463 [Quercus] minor always 04-28-09 06:48 04-28-09 06:48 Reporter: pablorg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: regex error Description: this code works in PHP but not Quercus: function isValidEmail(&$value){ $atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; // allowed characters for part before "at" character $domain = '([a-z]([-a-z0-9]*[a-z0-9]+)?)'; // allowed characters for part after "at" character $email = $atom . '+' . // One or more atom characters. '(\.' . $atom . '+)*'. // Followed by zero or more dot separated sets of one or more atom characters. '@'. // Followed by an "at" character. '(' . $domain . '{1,63}\.)+'. // Followed by one or max 63 domain characters (dot separated). $domain . '{2,63}'; // or max 63 domain characters. $pattern = '^('.$email.'[,]{0,1}){1,5}$'; return ereg($pattern,$value); } Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 3461 [Quercus] minor always 04-27-09 16:10 04-27-09 16:10 Reporter: mysterious_stranger Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 4.0.0 Version: Resolution: open Last Update: Projection: none ETA: none Summary: Qcodo does not work with Quercus Description: I am trying to get Qcodo working under Quercus. Everything works until I try to run the Qcodo code generator, at which point I receive this error: Fatal Error: 'dom_import_simplexml' is an unknown function. Is the dom_import_simplexml function not implemented yet in Quercus? Steps To Reproduce: Additional There are 2 other bugs related to Qcodo under Quercus. They are both closed, but I believe the Information: SimpleXML issue is not yet resolved. http://bugs.caucho.com/view.php?id=1752 [^] http://bugs.caucho.com/view.php?id=1726 [^] Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3457 [Quercus] major always 04-24-09 09:10 04-26-09 10:12 Reporter: koreth Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Objects without TTLs still disappear from APC Description: Whenever I leave Quercus running on a test server for an extended period, I eventually find that the application log full of error messages about its configuration data being missing from APC (the config data is loaded at app startup.) I've configured APC to be large enough that it should never have to expire any entries via LRU, and in any case these configuration entries are pretty frequently used. I believe the root cause is that the values in APC are stored as UnserializeCacheEntry objects, which use soft references. So what's probably going on is that the garbage collector runs at some point and decides it needs to reclaim the memory from some or all of those soft references -- which is of course done without regard to where in the LRU queue those objects are. That is, an entry that gets used in every request is nearly as likely to be reaped as one that never gets used at all. There should be a way of making an object non-reapable, though obviously there's value in letting the GC clean up objects that can safely go away so I'm not suggesting getting rid of that aspect of Quercus' APC implementation altogether. (That said, given a choice between no GC reaping of APC objects and the current situation, the former would be preferable.) Maybe one way to tell the difference is by TTL? An APC entry with a nonzero TTL is probably safe to let the GC get rid of, whereas one with a zero TTL may be very expensive or impossible to recompute on the fly. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3459 [Quercus] minor always 04-25-09 23:12 04-25-09 23:12 Reporter: koreth Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: is_resource() returns true for closed connections Description: <?php $c = mysql_connect('dbname', 'username', 'password'); print 'after connect: '; print is_resource($c) ? 'true' : 'false'; mysql_close($c); print ' after close: '; print is_resource($c) ? 'true' : 'false'; Regular PHP prints after connect: true after close: false Quercus prints after connect: true after close: true Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3451 [Quercus] minor always 04-19-09 08:42 04-19-09 08:42 Reporter: pablorg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: java_bean does not work as documented Description: I have a class configured as a webbean in resin as such: <bean> <class>com.my.Server</class> <init> <name>myServer</name> </init> </bean> these lookups do not find anything: $server = java_bean("com.my.Server"); $server = java_bean("myServer"); only this one works (discovered after 15 mins of trial and error): $server = java_bean("server"); Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2544 [Quercus] minor always Reporter: nam Assigned To: 03-20-08 19:09 04-18-09 14:21 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.1.5 Version: Resolution: open Projection: none ETA: none Summary: Mint web analytics package installs but does not function correctly Description: (rep by willab) I have used Resin as a J2EE container for quite a while and I am very happy with it. Just recently I've had the opportunity to get into Quercus and it looks very promising. I am trying to install Mint, PHP/javascript based web analytics package (http://www.haveamint.com/). [^] Running Resin 3.1.5 Pro I passed their compatibility suite test (http://www.haveamint.com/about/requirements#compatibility-suite) [^] and I can actually go to mydomain.com/phpappdirectory and it loads the page. However, recording requests is failing and the author determined it must be something about the relative paths or special handling of $_GET variables by Quercus, but cou not get much further. I think this would be useful application for all other Resin users as well and any help is appreciated. Below is the code snippet and the exception. Cheers, Will com.caucho.quercus.QuercusExitException at com.caucho.quercus.env.Env.exit(Env.java:3852) at _quercus._mint._app._paths._auth._index__php.execute(_index__php.java:54) at com.caucho.quercus.env.Env.include(Env.java:3612) at _quercus._mint._app._path__php.execute(_path__php.java:101) at com.caucho.quercus.env.Env.include(Env.java:3612) at _quercus._mint._index__php.execute(_index__php.java:44) at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119) at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:146) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:353) at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) at com.atlassian.confluence.util.LoggingContextFilter.doFilter(LoggingContextFilter.java:49) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:192) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.atlassian.seraph.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:112) at com.atlassian.confluence.util.AbstractBootstrapHotSwappingFilter.doFilter(AbstractBootstrapHotSwappingFilter.java:2 at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:110) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.atlassian.confluence.util.ClusterHeaderFilter.doFilter(ClusterHeaderFilter.java:35) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.atlassian.core.filters.gzip.GzipFilter.doFilter(GzipFilter.java:61) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:181) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:269) at com.caucho.server.port.TcpConnection.run(TcpConnection.java:603) at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721) at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643) at java.lang.Thread.run(Thread.java:619) The code at th line looks like this: if ((! v_Mint.callMethod(env, 320930870, _qc_isLoggedIn, 10).toBoolean() && (v_Mint.getField(en qv_cfg_6).get(qv_mode_7).eq(qv_default_8) || (v_Mint.getField(env, qv_cfg_6).get(qv_mode_7).eq(qv_client_9) && ((((v__GET.get(qv_preferences_10).isset() || v__GET.get(qv_uninstall_11).isset()) || v__GET.get(qv_import_12).isset()) || v__GET.get(qv_moved_13).isset()) || v__GET.get(qv_visits_14).isset()))))) { (((v__POST = env.getGlobalVar("_POST")).get(qv_MintPath_15).isset() && v__POST.get(qv_MintPath_15).eq(qv_Auth_16))) { if (v_Mint.callMethod(env, 470942992, _qc_authenticate, 12).toBoolean()) { return NullValue.NULL; } } env.include(_quercus_selfDirectory, env.getConstant("MINT_ROOT").toStringBuilder(env).append(_qc_apppathsauthloginphp).toString(), false, false); env.exit(); // THIS IS THE LINE IN THE EXCEPTION } return LongValue.ONE; } The corresponding PHP code is: if ( !$Mint->isLoggedIn() && ( $Mint->cfg['mode'] == 'default' || ( $Mint->cfg['mode'] == 'client' && ( isset($_GET['preferences']) || isset($_GET['uninstall']) || isset($_GET['import']) || isset($_GET['moved']) || isset($_GET['visits']) ) ) ) ) { if (isset($_POST['MintPath']) && $_POST['MintPath'] == 'Auth') { if ($Mint>authenticate()) { return; } } include(MINT_ROOT.'app/paths/auth/login.php'); exit(); } Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3435 [Quercus] minor always 04-03-09 16:41 04-03-09 16:41 Reporter: nam Platform: Assigned To: OS: Priority: high OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: respect safe_mode=off setting Description: (req by B. Youngblood) We have a very old internal application that we'd like to move to quercus. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3433 [Quercus] minor always 04-02-09 14:47 04-02-09 14:47 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: CakePHP 1.2 on quercus Description: (req by K. Lancaster) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 3430 [Hessian] minor always 04-01-09 08:09 04-01-09 08:09 Reporter: jmartell7 Assigned To: Platform: OS: Last Update: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Hessian client fails to connect through proxy when using chunking Description: My problem seems very similar to 0001149 where there's an issue with connecting through a proxy server. I'm using version 3.2.0 connecting to a squid proxy. If do proxyFactory.setChunkedPost(false), I get no exception. If I leave the default (true), I get com.caucho.hessian.client.HessianConnectionException: 501: java.io.IOException: Server returned HTTP response code: 501 for URL: http://SERVERURLHERE [^] at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:197) at $Proxy1.getData(Unknown Source) Caused by: java.io.IOException: Server returned HTTP response code: 501 for URL: http://SERVERURLHERE [^] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructor AccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.jav a:1345) at java.security.AccessController.doPrivileged(Native Method) at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURL Connection.java:1339) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConne ction.java:993) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:179) My headers look the same as bug 0001149. Thanks, Joshua Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 3425 [Documentation] minor Reporter: nam Assigned To: Priority: normal Severity: Platform: OS: OS Version: Reproducibility: Date Submitted: Last Update: always 03-30-09 13:38 03-30-09 13:38 Status: new Product 3.1.4 Version: Product Build: Resolution: open Projection: none ETA: none Summary: broken links in http://www.caucho.com/resin-3.1/doc/index-tags.xtp [^] Description: (rep by R. Mann) linked tags: http://www.caucho.com/resin-3.1/doc/index-tags.xtp [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3419 [Quercus] minor always 03-26-09 07:03 03-26-09 07:03 Reporter: nam Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: pligg 9.9.5: Warning: Can't convert BooleanValue to BinaryOutput Description: (rep by C. Whalley) Resin Pro 3.2.1, Fed7 Linux. Running Pligg 9.9.5 under Quercus throws the above error. I will leave the site under the control of Quercus for a few days as it only manifests itself as the error message in the lower right of the page. class.template.php:740: Warning: compiled/c_73c0bf111c3d1ec647c4b73b69e03c1d.php cannot be written class.template.php:741: Warning: Can't convert com.caucho.quercus.env.BooleanValue to Java com.caucho.quercus.lib.file.BinaryOutput class.template.php:742: Warning: Can't convert com.caucho.quercus.env.BooleanValue to Java com.caucho.quercus.lib.file.BinaryStream Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3407 [Quercus] major always Reporter: dkyriakis Date Submitted: 03-22-09 12:27 Last Update: 03-22-09 12:27 Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 3.1.8 Version: Resolution: open Projection: none ETA: none Summary: NPE running ProjectPiewr Description: As specified in issue: http://bugs.caucho.com/view.php?id=3406 [^] ProjectPier can't be installed directly in Quercus. But if I install the application with PHP, and run it only in Quercus (so that it's doing the DB creation and all the stuff), than I get the following NPE trying to access it: ---------------------------------------------------java.lang.NullPointerException at com.caucho.quercus.expr.StaticMethodExpr.eval(StaticMethodExpr.java:148) at com.caucho.quercus.expr.AppendExpr.eval(AppendExpr.java:85) at com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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:850) 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:105) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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:850) 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:105) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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:850) 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:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.program.TryStatement.execute(TryStatement.java:124) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) at at at at at at at at at at at at at at at at at at at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:70) com.caucho.quercus.env.Env.include(Env.java:3742) com.caucho.quercus.expr.IncludeExpr.eval(IncludeExpr.java:86) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:70) com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119) com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:149) com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:355) javax.servlet.http.HttpServlet.service(HttpServlet.java:91) com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187) com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265) com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273) com.caucho.server.port.TcpConnection.run(TcpConnection.java:682) com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730) com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649) java.lang.Thread.run(Thread.java:619) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3400 [Quercus] minor always 03-20-09 06:43 03-20-09 06:45 Reporter: dl Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Setting "unicode.semantics = on" in php.ini fails WordPress Description: I am trying to run WordPress for a blog that uses Unicode strings. However, in the normal setup procedure for WordPress, on the first (and only) configuration screen - choosing a blog name that contains Unicode characters (e.g. "&0001494;&0001488;&0001514; &0001489;&0001491;&0001497;&0001511;&0001492;") results in the blog name appearing as question-marks after WordPress is installed. I figured this has something to do with Unicode support, so I tried using Quercus with a custom php.ini file and set "unicode.semantics = on". This, however, results in WordPress installation failing with the following error: /opt/SDK/domains/domain1/applications/j2ee-modules/blog/wp-load.php:43: Fatal Error: 'ABSPATH/wp-includes/classes.php' is not a valid path If the php.ini file exists, but that specific "unicode.semantics = on" line is omitted, the installation succeeds (however, the blog name issue happens). It seems as if setting unicode.semantics screws the working directory, or some other weird phenomena along these lines... I am attaching my WEB-INF directory (with web.xml and php.ini). Configuration: Linux Sun's Java EE5 SDK - latest version (GlassFish V2.1) Quercus - latest SVN version WordPress - latest version (2.7.1) Steps To Reproduce: Additional Information: Attached Files: WEB-INF.zip (1 KB) 03-20-09 06:43 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3395 [Quercus] major always 03-17-09 05:01 03-19-09 02:31 Reporter: tlandmann Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: substr() function returns wrong results and even breaks the whole script for certain utf-8 strings Description: Please note the attached script (in order to safely preserve its UTF-8 encoding, I decided to send it as a .zip file instead of plain .php). This is the content of the script: --------------------<?php header("Content-Type: text/plain; charset=utf-8"); $str="&0001724;&8541;&8542;&0001592;&0001758;"; echo "2 characters starting from 1 from '$str': ".substr($str, 1, 2); echo "\n\n\n"; if (isset($_REQUEST['2nd']) && $_REQUEST['2nd']=="true") { echo "2 characters starting from 0 from '$str': ".substr($str, 0, 2); } echo "\n\n"; ?> --------------------If called with the following URL: http://<domain_and_path>/exmpl4_quercus_bug.php [^] , it produces the following output: --------------------2 characters starting from 1 from '&0001724;&8541;&8542;&0001592;&0001758;': &8541;&8542; --------------------This output is also seen in Screenshot 1 (i'll upload that later). It is obviously wrong, because the two characters were extracted in the wrong order. This still looks like a minor bug. However, if I call the script as: http://<domain_and_path>/exmpl4_quercus_bug.php?2nd=true [^] , it produces the following output: --------------------2 characters starting from 1 from '&0001724;&8541;&8542;&0001592;&0001758;': &8541;&8542; 2 characters starting from 0 from '&0001724;&8541;&8542;&0001592;&0001758;': &0001724;&8541; --------------------This means that apart from not extracting the requested substrings and not handling the single quotes properly, the call even breaks the descriptive string "constant" before the substr() call. I played with this a little and found out that Quercus' behaviour is very weird. I didn't manage to find out any rules by which this happens. By the way: I verified that the problem is NOT a browser or operating specific issue (tried Mozilla on Windows and Ubuntu as well as IE on Windows - each time the problem was all the same). Steps To Reproduce: Additional Information: 03-17-09 05:01 03-17-09 05:01 screen2.PNG (43 KB) 03-17-09 05:02 Attached Files: exmpl4_quercus_bug.zip (0 KB) screen1.PNG (42 KB) Viewing Issue Advanced Details ID: Category: 3380 [Documentation] text Reporter: trzmiel Assigned To: Priority: normal Severity: Platform: OS: OS Version: Reproducibility: Date Submitted: Last Update: always 03-10-09 01:53 03-10-09 01:53 Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: Serialization Deflation tutorial typo Description: In http://www.caucho.com/resin-3.1/examples/hessian-serialize/index.xtp, [^] below "Deflation", there is: Deflation envelope = new Deflation(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); Hessian2Output out = new Hessian2Output(bos); out = out.wrap(out); I think it should be: Deflation envelope = new Deflation(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); Hessian2Output out = new Hessian2Output(bos); out = envelope.wrap(out); Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3368 [Quercus] feature N/A 03-03-09 23:38 03-05-09 11:39 Reporter: mingfai Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: Resolution: open Projection: none ETA: none Summary: Make Quercus JSR 45 Compatiable to allow PHP debugging with Java IDE Description: I fired a feature request to Intellij IDEA to support Grails PHP Plugin which is nothing more than a pre-configured Quercus for Grails. The guy in Jetbrains commented that we have to be compatible to JSR 45 http://www.jetbrains.net/jira/browse/GRVY-2024 [^] For sure, if Quercus supports JSR 45, then PHP debugging could be done against the Quercus servlet and it has got nothing to do with Groovy and Grails. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 3341 [Hessian] major always 02-13-09 11:45 03-01-09 13:47 Reporter: everflux Assigned To: Last Update: Platform: OS: Priority: normal Status: new OS Version: Product 3.2.1 Version: Product Build: Resolution: open Projection: none ETA: none Summary: hessian 3.2.1 does not work with phphessian while hessian 3.1.6 does Description: Using phphessian to create a hessian service in php and calling from java (groovy) it does not work using hessian-3.2.1.jar If using hessian-3.1.6.jar the very same application works. Steps To Reproduce: Additional using phphessian this is the sample service Information: <?php include_once 'HessianPHP/dist/HessianService.php'; $wrapper = &new HessianService(); //enable method browsing with http get $wrapper->setDisplayInfo(true); $wrapper->registerObject(new Demo()); $wrapper->service(); class Demo { function run($n1,$n2) { $result = ""; $result .= "hello $n1 $n2"; return $result; } function arrayResult($n1, $n2) { $result = array(); $result[0] = $n1; $result[1] = strlen($n1); $result[2] = $n2; $result[3] = strlen($n1); } return $result; function objectResult($n1, $n2) { $result; $result->nameOne = $n1; $result->nameTwo = $n2; } return $result; } ?> this is the call in groovy import com.caucho.hessian.client.HessianProxyFactory; def n1='tkruse' def n2='muenster' url ="http://localhost/~tkruse/hessianRules/server.php" [^] HessianProxyFactory factory = new HessianProxyFactory(); //factory.setDebug(true); factory.setChunkedPost(false); service = factory.create(DemoInterface.class, url); println (service.run(n1, n2)) service.arrayResult(n1, n2).each{println "entry: " + it} When having the debug mode on, it looks like there is something swallowing the first byte containing "r", so hessian does not recognize the response correctly: Exception in thread "main" com.caucho.hessian.client.HessianRuntimeException: com.caucho.hessian.io.HessianProtocolException: expected hessian reply at 0x1 ( ) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:258) at $Proxy0.run(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) Having a look on a tcpdump everything looks correctly. Since changeing just the hessian jar solves this issue there seems something changed between them. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3108 [Quercus] minor always 12-01-08 07:20 02-25-09 10:14 Reporter: ferg Platform: Assigned To: Priority: urgent OS: OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: IMAP module needed for SugarCRM Description: (rep by Matthew Schmidt) 2) After installation, it says that the IMAP module in PHP is not installed. Is that something you guys have planned? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2875 [Quercus] major always 08-27-08 04:40 02-22-09 20:22 Reporter: foxcold Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product Version: 3.2.1 Resolution: open Projection: none ETA: none Summary: OutOfMemoryError Description: &20005;&37325;: Servlet.service() for servlet Quercus Servlet threw exception com.caucho.quercus.QuercusModuleException: java.lang.OutOfMemoryError: Java heap space at com.caucho.quercus.QuercusModuleException.create(QuercusModuleException.java:64) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:159) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:604) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:539) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.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:105) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.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:105) at com.caucho.quercus.program.ForStatement.execute(ForStatement.java:76) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.Function.evalArguments(Function.java:194) com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:170) com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182) com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.callCopy(Function.java:297) com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150) com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:602) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:352) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:309) com.caucho.quercus.env.QuercusClass.callNew(QuercusClass.java:698) com.caucho.quercus.expr.NewExpr.eval(NewExpr.java:97) com.caucho.quercus.expr.Expr.evalRef(Expr.java:386) com.caucho.quercus.expr.AssignRefExpr.eval(AssignRefExpr.java:74) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:70) com.caucho.quercus.env.Env.include(Env.java:3730) com.caucho.quercus.env.Env.includeOnce(Env.java:3679) com.caucho.quercus.expr.IncludeOnceExpr.eval(IncludeOnceExpr.java:88) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:70) com.caucho.quercus.env.Env.include(Env.java:3730) com.caucho.quercus.env.Env.includeOnce(Env.java:3679) com.caucho.quercus.expr.IncludeOnceExpr.eval(IncludeOnceExpr.java:88) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:70) com.caucho.quercus.env.Env.include(Env.java:3730) com.caucho.quercus.env.Env.includeOnce(Env.java:3679) com.caucho.quercus.expr.IncludeOnceExpr.eval(IncludeOnceExpr.java:88) at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:70) at com.caucho.quercus.env.Env.include(Env.java:3730) at com.caucho.quercus.expr.IncludeExpr.eval(IncludeExpr.java:86) at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) 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:165) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:355) 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.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 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:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.OutOfMemoryError: Java heap space at com.caucho.quercus.env.StringBuilderValue.<init>(StringBuilderValue.java:71) at com.caucho.quercus.env.StringBuilderValue.subSequence(StringBuilderValue.java:667) at com.caucho.quercus.env.StringValue.substring(StringValue.java:1618) at com.caucho.quercus.lib.string.StringModule.substr(StringModule.java:3926) at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:129) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:604) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:539) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.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:105) at com.caucho.quercus.program.Function.callImpl(Function.java:352) at com.caucho.quercus.program.Function.call(Function.java:292) 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.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:105) at gettext_reader.load_tables(/F:/Work/java_workspace/.metadata/.plugins/com.genuitec.eclipse.easie.tomcat.myeclip includes/gettext.php:162) Steps To Reproduce: Additional <?php Information: /** * PHP-Gettext External Library: gettext_reader class * * @package External * @subpackage PHP-gettext * * @internal Copyright (c) 2003 Danilo Segan <[email protected]>. Copyright (c) 2005 Nico Kaiser <[email protected]> This file is part of PHP-gettext. PHP-gettext is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. PHP-gettext is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with PHP-gettext; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /** * Provides a simple gettext replacement that works independently from * the system's gettext abilities. * It can read MO files and use them for translating strings. * The files are passed to gettext_reader as a Stream (see streams.php) * * This version has the ability to cache all strings and translations to * speed up the string lookup. * While the cache is enabled by default, it can be switched off with the * second parameter in the constructor (e.g. whenusing very large MO files * that you don't want to keep in memory) */ class gettext_reader { //public: var $error = 0; // public variable that holds error code (0 if no error) //private: var $BYTEORDER = 0; // 0: low endian, 1: big endian var $STREAM = NULL; var $short_circuit = false; var $enable_cache = false; var $originals = NULL; // offset of original table var $translations = NULL; // offset of translation table var $pluralheader = NULL; // cache header field for plural forms var $select_string_function = NULL; // cache function, which chooses plural forms var $total = 0; // total string count var $table_originals = NULL; // table for original strings (offsets) var $table_translations = NULL; // table for translated strings (offsets) var $cache_translations = NULL; // original -> translation mapping /* Methods */ /** * Reads a 32bit Integer from the Stream * * @access private * @return Integer from the Stream */ function readint() { if ($this->BYTEORDER == 0) { // low endian $low_end = unpack('V', $this->STREAM->read(4)); return array_shift($low_end); } else { // big endian $big_end = unpack('N', $this->STREAM->read(4)); return array_shift($big_end); } } /** * Reads an array of Integers from the Stream * * @param int count How many elements should be read * @return Array of Integers */ function readintarray($count) { if ($this->BYTEORDER == 0) { // low endian return unpack('V'.$count, $this->STREAM->read(4 * $count)); } else { // big endian return unpack('N'.$count, $this->STREAM->read(4 * $count)); } } /** * Constructor * * @param object Reader the StreamReader object * @param boolean enable_cache Enable or disable caching of strings (default on) */ function gettext_reader($Reader, $enable_cache = true) { // If there isn't a StreamReader, turn on short circuit mode. if (! $Reader || isset($Reader->error) ) { $this->short_circuit = true; return; } // Caching can be turned off $this->enable_cache = $enable_cache; // $MAGIC1 = (int)0x950412de; //bug in PHP 5.0.2, see https://savannah.nongnu.org/bugs/?func=detailitem& $MAGIC1 = (int) - 1794895138; // $MAGIC2 = (int)0xde120495; //bug $MAGIC2 = (int) - 569244523; // 64-bit fix $MAGIC3 = (int) 2500072158; $this->STREAM = $Reader; $magic = $this->readint(); if ($magic == $MAGIC1 || $magic == $MAGIC3) { // to make sure it works for 64-bit platforms $this->BYTEORDER = 0; } elseif ($magic == ($MAGIC2 & 0xFFFFFFFF)) { $this->BYTEORDER = 1; } else { $this->error = 1; // not MO file return false; } // FIXME: Do we care about revision? We should. $revision = $this->readint(); } $this->total = $this->readint(); $this->originals = $this->readint(); $this->translations = $this->readint(); /** * Loads the translation tables from the MO file into the cache * If caching is enabled, also loads all strings into a cache * to speed up translation lookups * * @access private */ function load_tables() { if (is_array($this->cache_translations) && is_array($this->table_originals) && is_array($this->table_translations)) return; /* get original and translations tables */ $this->STREAM->seekto($this->originals); $this->table_originals = $this->readintarray($this->total * 2); $this->STREAM->seekto($this->translations); $this->table_translations = $this->readintarray($this->total * 2); } if ($this->enable_cache) { $this->cache_translations = array (); /* read all strings in the cache */ for ($i = 0; $i < $this->total; $i++) { $this->STREAM->seekto($this->table_originals[$i * 2 + 2]); $original = $this->STREAM->read($this->table_originals[$i * 2 + 1]); $this->STREAM->seekto($this->table_translations[$i * 2 + 2]); $translation = $this->STREAM->read($this->table_translations[$i * 2 + 1]); $this->cache_translations[$original] = $translation; } } /** * Returns a string from the "originals" table * * @access private * @param int num Offset number of original string * @return string Requested string if found, otherwise '' */ function get_original_string($num) { $length = $this->table_originals[$num * 2 + 1]; $offset = $this->table_originals[$num * 2 + 2]; if (! $length) return ''; $this->STREAM->seekto($offset); $data = $this->STREAM->read($length); return (string)$data; } /** * Returns a string from the "translations" table * * @access private * @param int num Offset number of original string * @return string Requested string if found, otherwise '' */ function get_translation_string($num) { $length = $this->table_translations[$num * 2 + 1]; $offset = $this->table_translations[$num * 2 + 2]; } if (! $length) return ''; $this->STREAM->seekto($offset); $data = $this->STREAM->read($length); return (string)$data; /** * Binary search for string * * @access private * @param string string * @param int start (internally used in recursive function) * @param int end (internally used in recursive function) * @return int string number (offset in originals table) */ function find_string($string, $start = -1, $end = -1) { if (($start == -1) or ($end == -1)) { // find_string is called with only one parameter, set start end end $start = 0; $end = $this->total; } if (abs($start - $end) <= 1) { // We're done, now we either found the string, or it doesn't exist $txt = $this->get_original_string($start); if ($string == $txt) return $start; else return -1; } else if ($start > $end) { // start > end -> turn around and start over return $this->find_string($string, $end, $start); } else { // Divide table in two parts $half = (int)(($start + $end) / 2); $cmp = strcmp($string, $this->get_original_string($half)); if ($cmp == 0) // string is exactly in the middle => return it return $half; else if ($cmp < 0) // The string is in the upper half return $this->find_string($string, $start, $half); else // The string is in the lower half return $this->find_string($string, $half, $end); } } /** * Translates a string * * @access public * @param string string to be translated * @return string translated string (or original, if not found) */ function translate($string) { if ($this->short_circuit) return $string; $this->load_tables(); if ($this->enable_cache) { // Caching enabled, get translated string from cache if (array_key_exists($string, $this->cache_translations)) return $this->cache_translations[$string]; else return $string; } } else { // Caching not enabled, try to find string $num = $this->find_string($string); if ($num == -1) return $string; else return $this->get_translation_string($num); } /** * Get possible plural forms from MO header * * @access private * @return string plural form header */ function get_plural_forms() { // lets assume message number 0 is header // this is true, right? $this->load_tables(); // cache header field for plural forms if (! is_string($this->pluralheader)) { if ($this->enable_cache) { $header = $this->cache_translations[""]; } else { $header = $this->get_translation_string(0); } $header .= "\n"; //make sure our regex matches if (eregi("plural-forms: ([^\n]*)\n", $header, $regs)) $expr = $regs[1]; else $expr = "nplurals=2; plural=n == 1 ? 0 : 1;"; } } // add parentheses // important since PHP's ternary evaluates from left to right $expr.= ';'; $res= ''; $p= 0; for ($i= 0; $i < strlen($expr); $i++) { $ch= $expr[$i]; switch ($ch) { case '?': $res.= ' ? ('; $p++; break; case ':': $res.= ') : ('; break; case ';': $res.= str_repeat( ')', $p) . ';'; $p= 0; break; default: $res.= $ch; } } $this->pluralheader = $res; return $this->pluralheader; /** * Detects which plural form to take * * @access private * @param n count * @return int array index of the right plural form */ function select_string($n) { if (is_null($this->select_string_function)) { $string = $this->get_plural_forms(); if (preg_match("/nplurals\s*=\s*(\d+)\s*\;\s*plural\s*=\s*(.*?)\;+/", $string, $matches)) { $nplurals = $matches[1]; $expression = $matches[2]; $expression = str_replace("n", '$n', $expression); } else { $nplurals = 2; $expression = ' $n == 1 ? 0 : 1 '; } $func_body = " \$plural = ($expression); return (\$plural <= $nplurals)? \$plural : \$plural - 1;"; $this->select_string_function = create_function('$n', $func_body); } return call_user_func($this->select_string_function, $n); } /** * Plural version of gettext * * @access public * @param string single * @param string plural * @param string number * @return translated plural form */ function ngettext($single, $plural, $number) { if ($this->short_circuit) { if ($number != 1) return $plural; else return $single; } // find out the appropriate form $select = $this->select_string($number); // this should contains all strings separated by NULLs $key = $single.chr(0).$plural; } if ($this->enable_cache) { if (! array_key_exists($key, $this->cache_translations)) { return ($number != 1) ? $plural : $single; } else { $result = $this->cache_translations[$key]; $list = explode(chr(0), $result); return $list[$select]; } } else { $num = $this->find_string($key); if ($num == -1) { return ($number != 1) ? $plural : $single; } else { $result = $this->get_translation_string($num); $list = explode(chr(0), $result); return $list[$select]; } } } ?> Attached Files: Viewing Issue Advanced Details ID: Category: Severity: 3322 [Documentation] minor Reporter: adriancole Reproducibility: Date Submitted: Last Update: always 02-05-09 12:16 02-05-09 12:16 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: reference documentation incorrect Description: http://www.caucho.com/resin/doc/env-tags.xtp#reference [^] element reference { factory & jndi-name & init-param* } should be: element reference { class & jndi-name & init* } factory is not supported... Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3307 [Quercus] major always 01-30-09 09:42 01-30-09 09:46 Reporter: tlandmann Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.1.8 Version: Resolution: open Projection: none ETA: none Summary: Serializing objects that contain an instance of themselves causes Java exception Description: Drupal 6 does exactly that in include/cache.inc around line 100 in function cache_set() when the Views module caches data. In other words: Drupal 6 is currently unusable with Caching and Views enabled (not nice). I also wanted to try Resin 3.2.1 and 4 but I didn't get it running, yet. Since they are development versions, I gave up after a couple of hours. I also tried copying quercus.jar but 3.2.1 and 4 don't seem to include this file. The only workaround at the moment seems to be to disable Drupal caching for certain Views data, which ends up to be a very nasty hack if you really try it. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3306 [Quercus] block always 01-29-09 23:34 01-29-09 23:34 Reporter: mingfai Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: Cannot proceed in the Database configuration step during Drupal 6.9 installation Description: no exception. after entered correct information for a MySQL database and pressed continue, the same database configuration page is displayed. The first few installation steps are actually look good. I believe it's a hard to fix problem. didn't try postgres Steps To Reproduce: Additional checked the steps in http://wiki.caucho.com/Quercus:_Drupal [^] Information: it doesn't seem to be relevant. Windows 2003 MySQL 5.1.26 on Windows Drupal 6.9 JDK 6 Jetty Quercus 3.2.1 should have tried both MySQL JDBC 3.1.14 and 5.1.6 Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3303 [Quercus] block always 01-29-09 21:36 01-29-09 21:36 Reporter: mingfai Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: ClassCastException exception upon logout in vanilla forum 1.1.5a Description: java.lang.ClassCastException: com.caucho.quercus.env.UnsetValue cannot be cast to com.caucho.quercus.env.ArrayValue In 1.1.5a Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3302 [Quercus] minor always 01-29-09 13:01 01-29-09 13:01 Reporter: eecolor Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: Download source link does not work Description: The link at http://quercus.caucho.com/ [^] to download the source of version 3.2.1 does not work. The link is: http://quercus.caucho.com/download/quercus-3.2.1-src.jar [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3300 [Quercus] minor always 01-28-09 05:01 01-28-09 08:02 Reporter: tolmi Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: mysqli_errno returns 0 when error happened Description: mysql_errno and mysqli_errno should return a non-zero value when something went wrong on the last time a mysql function was used. This turned out while running Drupal on Quercus and the database went offline. Drupal checks mysqli_errno() to be bigger than zero. Attached a patch to fix the issue. Steps To Reproduce: Additional Information: Attached Files: mysqli_errno_fix.patch (1 KB) 01-28-09 05:01 Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2999 [Quercus] block always 10-09-08 09:45 01-22-09 17:37 Reporter: nam Assigned To: Priority: high Status: new Product Build: Projection: none Platform: OS: OS Version: Product 3.2.1 Version: Resolution: open ETA: none Summary: LDAP for moodle Description: (req by M. Metcalfe) To integrate Moodle sign-in with directories. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3283 [Quercus] minor always 01-19-09 04:47 01-19-09 04:47 Reporter: philz Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 3.1.2 Version: Product Build: Resolution: open Projection: none ETA: none Summary: CData sections don't appear to work with SimpleElement Description: When using SimpleElement with CData sections, does not pick up data within CDATA section. When attempting to output the mapping element using the code below, content only appears for the first table element in Quercus. When using PHP on Apache, appears in both. Steps To Reproduce: Additional Using following PHP Information: // method declaration public function buildDoc($xmlString) { $content = file_get_contents($xmlString); $xml = new SimpleXMLElement($content); foreach ($xml->import as $import) { foreach ($import->table as $table) { $name = $table['name']; $filter = $table['filter']; $variable = $table['variable']; $mapping = $table->mapping; "; "; echo "Name: " . $name . " echo "Filter: " . $filter . " echo "Variable:" . $variable . " "; echo "Mapping: " . $mapping . " "; } } } Reading the following XML: <?xml version="1.0" encoding="ISO-8859-1"?> <imports> <import> <table name = "orders" filter = "order_id" variable = "order_id"> <mapping> order_reference=externalReference; contact_name=customer.contactName; </mapping> </table> <table name = "order_line" filter = "order_id" variable = "order_id"> <sql> select quantity, product_cfrom order_line, product where order_line.product_id = product.product_id </sql> <mapping> <![CDATA[ quantity=orderLine.[index].quantity product_code=orderLine.[index].quantity ]]> </mapping> </table> </import> </imports> Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3275 [Quercus] feature always 01-16-09 10:46 01-16-09 18:21 Reporter: koreth Assigned To: Priority: urgent Status: new Product Build: Platform: OS: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Function renaming / replacement Description: In our unit test framework, we use a PHP extension we wrote to allow functions to be replaced at runtime so we can, e.g., replace the error logging function with one that captures to a buffer for checking by the unit test code. Our API is pretty simple; it just takes current and new function names. Since this is just for unit tests, it doesn't really matter to us if it is super high-performance. We don't use it in production. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3266 [Hessian] minor always 01-15-09 12:56 01-15-09 13:52 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: Hessian custom serialization Description: (rep by Stephane Nicoll) We're using hessian as our remote API and after quite a lot of problems we end up with something that fit our needs. The client is exclusively a Java client at this stage. There's one problem left due to the fact that Hessian requires a non arg constructor (or a constructor accepting null arguments). For such type (java.net.URL being one of them) we need to write a custom serializer/deserializer and perform the plumbing. Very annoying. We have the same problem with the Hibernate Criteria API. As soon as we use some criterion, we get a serialization issue. Is there a way to configure hessian to use the Java serialization instead? I am using 3.1.6 with the protocol v.1 Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3246 [Quercus] minor always 01-13-09 12:38 01-15-09 13:07 Reporter: koreth Platform: Assigned To: OS: Priority: urgent OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Can't insert empty string into numeric column in MySQL Description: This is really a JDBC driver issue, but it is a behavior difference from normal PHP and its MySQL interface, so: If you have a table like CREATE TABLE stuff ( thing TINYINT(4) ); MySQL will let you do INSERT INTO stuff (thing) VALUES (''); and it turns the empty string into NULL internally. If you try that under Quercus, you get "Incorrect integer value: '' for column 'thing'" and the query fails. This is something the application shouldn't be doing in the first place and I am cleaning it up in our PHP code as I come across it, so this is not terribly high-priority. But there do seem to be a number of instances where we're doing this (usually thanks to building up queries programmatically) and it would be swell if it just worked under Quercus. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3249 [Quercus] major always 01-14-09 01:11 01-14-09 23:49 Reporter: haplo Assigned To: Priority: normal Status: new Product Build: Projection: none Platform: OS: OS Version: Product Version: Resolution: open ETA: none Summary: Serializable not supported Description: If an php class implements Serializable the serialization of an instance should be delegated to the instances serialize function. This does not happend. Here is a test: class foo implements Serializable { public $bar = "foobar"; public function unserialize($serialized){ echo "unserialize \n"; $array = unserialize($serialized); } foreach ($array as $name => $values) { $this->$name = "unserialized " .$values; } public function serialize(){ echo "serialize \n"; return serialize(get_object_vars($this)); } } $foo = new foo(); $data = serialize($foo); echo $data; $foo2 = unserialize($data); echo $foo2->bar; Quercus result: O:3:"foo":1:{s:3:"bar";s:6:"foobar";}foobar Apache result: serialize C:3:"foo":29:{a:1:{s:3:"bar";s:6:"foobar";}}unserialize unserialized foobar Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3211 [Quercus] minor Reporter: koreth always 12-30-08 11:37 01-04-09 14:44 Platform: Assigned To: OS: Priority: urgent OS Version: Status: new Product 4.0.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: mysql_connect timeout is too long Description: The timeout on mysql_connect in regular PHP is a few seconds; in Quercus it is the default TCP connection timeout, around 3 minutes on my Linux box. That means a down MySQL server more or less guarantees a script timeout. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3206 [Quercus] minor always 12-29-08 16:02 01-04-09 14:43 Reporter: nam Assigned To: Platform: OS: Priority: urgent Status: new Product Build: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: drupal page cache - bad gzip encoding Description: (rep by M. Schmidt) The database table "cache_page" has malformed gzip pages, causing the browser to choke on cached pages. Drupal 5.1.x Ubuntu 64-bit MySQL 5.1.30 enable Page Cache in Administer->Performance View module used Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3133 [Quercus] minor always 12-07-08 00:10 01-04-09 14:42 Reporter: koreth Platform: Assigned To: OS: Priority: urgent OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: mysql_query treats MySQL warnings as failures Description: If MySQL responds to a query with a warning, the vanilla PHP interpreter will still return results. Quercus seems to not distinguish between warning and error responses from MySQL. Since this is a DB thing it's kind of hard to paste in a simple test case; my real-world case is an INSERT ... ON DUPLICATE KEY UPDATE on a table where one of the columns is NOT NULL but has no default value. The row in question already exists and has a value in that column (so the update succeeds) but the column isn't listed in the initial part of the INSERT clause (and thus generates MySQL warning 1364, "Field 'X' doesn't have a default value.") This query, though it's arguably broken, works in vanilla PHP but in Quercus, mysql_queryf() returns false. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3175 [Quercus] minor always 12-13-08 13:17 01-04-09 14:41 Reporter: koreth Assigned To: Priority: urgent Status: new Product Build: Platform: OS: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Backtraces contain odd paths when using URL rewriting Description: In my resin-web.xml: <rewrite-dispatch> <forward regexp="^(.*)$" target="/html/$1" /> </rewrite-dispatch> Then I have <webapp_root>/html/test/backtrace.php (note this is in a subdirectory): <?php include_once "<webapp_root>/lib/foo2.php"; function foo1() { print_r(debug_backtrace()); } call_foo1(); And <webapp_root>/lib/foo2.php: <?php function call_foo1() { foo1(); } Quercus prints a backtrace that has a path of <webapp_root>/html/test/lib/foo2.php rather than <webapp_root>/lib/foo2.php for the function call_foo2(). This only happens if the requested page is in a subdirectory of <webapp_root>/html; the paths look fine for files that are directly in the html directory. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3173 [Quercus] feature always 12-13-08 09:42 01-04-09 14:41 Reporter: koreth Assigned To: Priority: urgent Status: new Product Build: Platform: OS: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Share PHP code between webapps Description: To support hosting multiple developer sandboxes on a single host as well as reduce the overhead of deploying multiple code versions in production, two webapps should be able to share the internal representation of a PHP file that is identical in both. Otherwise a large PHP app with multiple instances will chew through PermGen space like crazy with lots of identical class files. This will also presumably make it cheaper to restart a particular webapp (e.g., due to a signature change on a Java class) since the compiled PHP files won't have to be reloaded. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3172 [Quercus] feature always 12-13-08 09:35 01-04-09 14:41 Reporter: koreth Platform: Assigned To: OS: Priority: urgent OS Version: Status: new Product Build: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Add switch to ease content-length debugging Description: If a script outputs a Content-Length header, then something somewhere spits out a bit of unexpected output, you get an error like, "tried to write 220458 bytes with content-length 217387". There should be a way to dump the entire output out to a file when that error happens, so that the output can be examined manually to figure out where the extra data is coming from. Scott and I discussed having this be a debug switch of some kind, so you don't have the overhead of saving all scripts' output all the time, just when you're trying to track this kind of problem down. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3149 [Quercus] minor always 12-11-08 08:58 01-04-09 14:40 Reporter: ferg Platform: Assigned To: Priority: urgent OS: OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: code version switchover Description: (rep by Steven Grimm) I talked about the "deploy the new code at time X" idea with one of the engineers who does code pushes here, and though it's obviously a huge win to be able to flip our entire site to a new release at the same instant, there's a further wrinkle that would make it even cooler. Specifically, we have the problem right now as we're pushing new code that if a client loads, say, some JavaScript code from release 1, then does an AJAX request that happens to hit a server running release 2, it might get back a response that is intended for the release 2 JavaScript code. Flipping the entire site to release 2 at the same time will cut the severity of that problem way down, but given the fact that the client doesn't request all its resources simultaneously (especially on an AJAX-heavy site where the same page might stay open for a long time), it is still a possibility for a client to get mismatched resources. But we could eliminate it entirely if the client were able to specify a version number as part of the request (the exact mechanism is not important). Then the JS code would say, "I want to make this AJAX request to release 1 of the AJAX handler" and that's the code that'd get used even if release 2 was the default one. We'd impose some maximum time limit on that (a client would force a page refresh after noticing it was out of date) but during the processing of a single page, we could guarantee a consistent set of server code would get used even across multiple requests. The thought that occurred to me was that this would dovetail nicely with the developer sandbox stuff. In some sense each release could be considered a separate sandbox, and with the shared PHP class registry we discussed, the cost of that would be pretty low if most of the code is unchanged from one release to the next (which it usually is). Then we just need to be able to route to the right pseudo-sandbox -- which we could do, e.g., with our own servlet code -- and everything should work. Anyway, this isn't fully-formed yet as an idea, and in fact even if you gave it to us tomorrow we wouldn't be able to use it since it would require application code changes. But being able to do, essentially, a generational view of a site in the middle of a code upgrade seems like a pretty neat thing in general; it would completely remove a major recurring point of instability for lots of sites. If we had this and made the changes in our code to make use of it, we would almost certainly do far more code pushes than we do now, in fact; we try to limit it to once a day in part because it currently causes user-visible instability. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3207 [Quercus] major always Reporter: santino Assigned To: Priority: normal Status: new Product Build: Projection: none Platform: OS: OS Version: Product 3.2.1 Version: Resolution: open Date Submitted: 12-29-08 19:30 Last Update: 12-29-08 19:30 ETA: none Summary: javax.scripting using Quercus Engine and PHP includes Description: I'm trying to execute a PHP file which includes another PHP file using the javax.scripting API with the Quercus engine. I'm calling the javax.scripting APIs from a webapp/war file and all the php files are under the context root. For example: ******************CODE in a Servlet****************************** ScriptEngine engine = manager.getEngineByName("php"); InputStream in = getServletConfig().getServletContext().getResourceAsStream("/DebugMain.php"); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); engine.eval(reader); ****************DebugMain.php********************** <?php require "Class.php" Debug::logMessage("test", $msg); Debug::printLog(); ?> The require causes a QuercusException with a message that Class.php is not a valid path. The web container is Tomcat 6.0 and I'm using Quercus 3.1.2. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3196 [Quercus] minor always 12-26-08 11:53 12-26-08 11:53 Reporter: ferg Platform: Assigned To: Priority: normal Status: new Product Build: OS: OS Version: Product 4.0.0 Version: Resolution: open Projection: none ETA: none Summary: Quercus source from databases Description: (rep by santino) http://forum.caucho.com/?q=node/202 [^] We are working on a requirement whereby developers will upload their PHP code into either a MySQL database or a Java Content Repository(JSR 170). Is there a way to execute PHP code from these location using Quercus? Alternatively, is there a way to execute PHP in a Java string or Reader object? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date 3003 [Quercus] major always 10-11 Reporter: damjan Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product Version: 3.2.1 Resolution: open Projection: none ETA: none Summary: PostgreSQL support for Gallery Description: I tried with the latest snapshot resin-pro-3.2.s081008 if [0002506] had been really fixed. I don't get that exception a and both end up at the same query. Log trace is below. Steps To Reproduce: Additional [00:15:37.999]jdbc/Gallery2DS.2.1:getResultSet() -> org.postgresql.jdbc3g.Jdbc3gResultSet Information: [00:15:38.000] {http--8080-3} jdbc/Gallery2DS.2.1:getResultSet() -> org.postgresql.jdbc3g.Jdbc3gResultSet [00:15:38.006]jdbc/Gallery2DS.2.2:createStatement(type=1004,concurrency=1007) [00:15:38.006] {http--8080-3} jdbc/Gallery2DS.2.2:createStatement(type=1004,concurrency=1007) [00:15:38.006]jdbc/Gallery2DS.2.2:setEscapeProcessing(false) [00:15:38.006] {http--8080-3} jdbc/Gallery2DS.2.2:setEscapeProcessing(false) [00:15:38.015]jdbc/Gallery2DS.2.2:execute(SELECT g_userId, g_remoteIdentifier, g_creationTimestamp, g_modifica [00:15:38.015] {http--8080-3} jdbc/Gallery2DS.2.2:execute(SELECT g_userId, g_remoteIdentifier, g_creationTimes [00:15:38.015]jdbc/Gallery2DS.2.2:getResultSet() -> org.postgresql.jdbc3g.Jdbc3gResultSet [00:15:38.015] {http--8080-3} jdbc/Gallery2DS.2.2:getResultSet() -> org.postgresql.jdbc3g.Jdbc3gResultSet [00:15:38.047]jdbc/Gallery2DS.2.3:createStatement(type=1004,concurrency=1007) [00:15:38.048] {http--8080-3} jdbc/Gallery2DS.2.3:createStatement(type=1004,concurrency=1007) [00:15:38.048]jdbc/Gallery2DS.2.3:setEscapeProcessing(false) [00:15:38.048] {http--8080-3} jdbc/Gallery2DS.2.3:setEscapeProcessing(false) [00:15:38.060]jdbc/Gallery2DS.2.3:execute( [00:15:38.060] SELECT [00:15:38.060] g2_Group.g_id, [00:15:38.060] g2_Group.g_groupName [00:15:38.060] FROM [00:15:38.060] g2_UserGroupMap, g2_Group [00:15:38.060] WHERE [00:15:38.060] g2_Group.g_id = g2_UserGroupMap.g_groupId [00:15:38.060] AND [00:15:38.060] g2_UserGroupMap.g_userId = 5 [00:15:38.060] ORDER BY [00:15:38.060] g2_Group.g_groupName [00:15:38.060] ) -> true [00:15:38.062] {http--8080-3} jdbc/Gallery2DS.2.3:execute( [00:15:38.062] {http--8080-3} SELECT [00:15:38.062] {http--8080-3} g2_Group.g_id, [00:15:38.062] {http--8080-3} g2_Group.g_groupName [00:15:38.062] {http--8080-3} FROM [00:15:38.062] {http--8080-3} g2_UserGroupMap, g2_Group [00:15:38.062] {http--8080-3} WHERE [00:15:38.062] {http--8080-3} g2_Group.g_id = g2_UserGroupMap.g_groupId [00:15:38.062] {http--8080-3} AND [00:15:38.062] {http--8080-3} g2_UserGroupMap.g_userId = 5 [00:15:38.062] {http--8080-3} ORDER BY [00:15:38.062] {http--8080-3} g2_Group.g_groupName [00:15:38.062] {http--8080-3} ) -> true [00:15:38.064]jdbc/Gallery2DS.2.3:getResultSet() -> org.postgresql.jdbc3g.Jdbc3gResultSet [00:15:38.064] {http--8080-3} jdbc/Gallery2DS.2.3:getResultSet() -> org.postgresql.jdbc3g.Jdbc3gResultSet [00:15:38.066]jdbc/Gallery2DS.2.4:createStatement(type=1004,concurrency=1007) [00:15:38.066] {http--8080-3} jdbc/Gallery2DS.2.4:createStatement(type=1004,concurrency=1007) [00:15:38.067]jdbc/Gallery2DS.2.4:setEscapeProcessing(false) [00:15:38.067] {http--8080-3} jdbc/Gallery2DS.2.4:setEscapeProcessing(false) [00:15:38.071]jdbc/Gallery2DS.2.4:execute(SELECT g_module, g_permission, g_description, g_bits, g_flags FROM g [00:15:38.071] {http--8080-3} jdbc/Gallery2DS.2.4:execute(SELECT g_module, g_permission, g_description, g_bits [00:15:38.072]jdbc/Gallery2DS.2.4:getResultSet() -> org.postgresql.jdbc3g.Jdbc3gResultSet [00:15:38.072] {http--8080-3} jdbc/Gallery2DS.2.4:getResultSet() -> org.postgresql.jdbc3g.Jdbc3gResultSet [00:15:38.096]jdbc/Gallery2DS.2.5:createStatement(type=1004,concurrency=1007) [00:15:38.096] {http--8080-3} jdbc/Gallery2DS.2.5:createStatement(type=1004,concurrency=1007) [00:15:38.096]jdbc/Gallery2DS.2.5:setEscapeProcessing(false) [00:15:38.097] {http--8080-3} jdbc/Gallery2DS.2.5:setEscapeProcessing(false) [00:15:38.099]jdbc/Gallery2DS.2.5:exn-execute( [00:15:38.099] SELECT DISTINCT [00:15:38.099] g2_AccessMap.g_accessListId [00:15:38.099] FROM [00:15:38.099] g2_AccessMap [00:15:38.099] WHERE [00:15:38.099] g2_AccessMap.g_userOrGroupId IN (5,4) [00:15:38.099] AND [00:15:38.099] g2_AccessMap.g_permission & 'Postgres[localhost]' = 'Postgres[localhost]' [00:15:38.099] ) -> org.postgresql.util.PSQLException: ERROR: "P" is not a valid binary digit [00:15:38.100] {http--8080-3} jdbc/Gallery2DS.2.5:exn-execute( [00:15:38.100] {http--8080-3} SELECT DISTINCT [00:15:38.100] {http--8080-3} g2_AccessMap.g_accessListId [00:15:38.100] {http--8080-3} FROM [00:15:38.100] {http--8080-3} g2_AccessMap [00:15:38.100] {http--8080-3} WHERE [00:15:38.100] {http--8080-3} g2_AccessMap.g_userOrGroupId IN (5,4) [00:15:38.100] {http--8080-3} AND [00:15:38.100] {http--8080-3} g2_AccessMap.g_permission & 'Postgres[localhost]' = 'Postgres[localhost]' [00:15:38.100] {http--8080-3} ) -> org.postgresql.util.PSQLException: ERROR: "P" is not a valid binary digit [00:15:38.103]com.caucho.quercus.QuercusException: Query failed: ERROR: "P" is not a valid binary digit [00:15:38.103] at com.caucho.quercus.env.Env.warning(Env.java:4493) [00:15:38.103] at com.caucho.quercus.lib.db.PostgresModule.pg_query_impl(PostgresModule.java:2796) [00:15:38.103] at com.caucho.quercus.lib.db.PostgresModule.pg_query(PostgresModule.java:2757) [00:15:38.103] at com.caucho.quercus.lib.db.PostgresModule.pg_exec(PostgresModule.java:2772) [00:15:38.103] at _quercus._gallery2._lib._adodb._drivers._adodb_22dpostgres64__inc__php$quercus_ADODB_pos [00:15:38.103] at com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:1180) [00:15:38.103] at _quercus._gallery2._lib._adodb._drivers._adodb_22dpostgres7__inc__php$quercus_ADODB_postg [00:15:38.103] at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:782) [00:15:38.103] at _quercus._gallery2._lib._adodb._adodb__inc__php$quercus_ADOConnection_1$fun__Execute_39 [00:15:38.103] at com.caucho.quercus.program.CompiledMethodRef_2.callMethodRef(CompiledMethodRef_2.java:91 [00:15:38.103] at com.caucho.quercus.program.AbstractFunction.callMethodRef(AbstractFunction.java:593) [00:15:38.103] at com.caucho.quercus.env.ObjectExtValue.callMethodRef(ObjectExtValue.java:982) [00:15:38.103] at _quercus._gallery2._lib._adodb._adodb__inc__php$quercus_ADOConnection_1$fun_Execute_38.c [00:15:38.103] at com.caucho.quercus.program.CompiledFunctionRef.callMethod(CompiledFunctionRef.java:101) [00:15:38.103] at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:782) [00:15:38.103] at _quercus._gallery2._modules._core._classes._GalleryStorage__class$quercus_GalleryStorage_0$f [00:15:38.103] at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:813) [00:15:38.103] at com.caucho.quercus.env.Var.callMethod(Var.java:1402) [00:15:38.103] at _quercus._gallery2._modules._core._classes._Gallery__class$quercus_Gallery_0$fun_search_1.ca [00:15:38.103] at com.caucho.quercus.program.CompiledMethod_3.callMethod(CompiledMethod_3.java:122) [00:15:38.103] at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:782) [00:15:38.103] at com.caucho.quercus.env.Var.callMethod(Var.java:1390) [00:15:38.103] at _quercus._gallery2._modules._core._classes._helpers._GalleryPermissionHelper_0simple__class$quercus_GalleryPer [00:15:38.103] at com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:1210) [00:15:38.103] at _quercus._gallery2._modules._core._classes._GalleryCoreApi__class$quercus_GalleryCoreApi_0$f [00:15:38.103] at com.caucho.quercus.program.CompiledMethod_3.callMethod(CompiledMethod_3.java:122) [00:15:38.103] at com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:1180) [00:15:38.103] at _quercus._gallery2._modules._core._classes._GalleryDataCache__class$quercus_GalleryDataCach [00:15:38.103] at com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:1180) [00:15:38.103] at _quercus._gallery2._main__php$fun__GalleryMain_1.call(_main__php.java:570) [00:15:38.103] at _quercus._gallery2._main__php$fun_GalleryMain_0.call(_main__php.java:134) [00:15:38.103] at _quercus._gallery2._main__php.execute(_main__php.java:104) [00:15:38.103] at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119) [00:15:38.103] at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:152) [00:15:38.103] at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:407) [00:15:38.103] at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) [00:15:38.103] at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) [00:15:38.103] at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:201) [00:15:38.103] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:189) [00:15:38.103] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266) [00:15:38.103] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:292) [00:15:38.103] at com.caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:577) [00:15:38.103] at com.caucho.server.port.TcpConnection$AcceptTask.doAccept(TcpConnection.java:1211) [00:15:38.103] at com.caucho.server.port.TcpConnection$AcceptTask.run(TcpConnection.java:1152) [00:15:38.103] at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:759) [00:15:38.103] at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:681) [00:15:38.103] at java.lang.Thread.run(Thread.java:619) [00:15:38.109] {http--8080-3} com.caucho.quercus.QuercusException: Query failed: ERROR: "P" is not a valid binar [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.Env.warning(Env.java:4493) [00:15:38.109] {http--8080-3} at com.caucho.quercus.lib.db.PostgresModule.pg_query_impl(PostgresModule.java:2 [00:15:38.109] {http--8080-3} at com.caucho.quercus.lib.db.PostgresModule.pg_query(PostgresModule.java:2757) [00:15:38.109] {http--8080-3} at com.caucho.quercus.lib.db.PostgresModule.pg_exec(PostgresModule.java:2772) [00:15:38.109] {http--8080-3} at _quercus._gallery2._lib._adodb._drivers._adodb_22dpostgres64__inc__php$quer [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:1180) [00:15:38.109] {http--8080-3} at _quercus._gallery2._lib._adodb._drivers._adodb_22dpostgres7__inc__php$quercu [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:782) [00:15:38.109] {http--8080-3} at _quercus._gallery2._lib._adodb._adodb__inc__php$quercus_ADOConnection_1$fu [00:15:38.109] {http--8080-3} at com.caucho.quercus.program.CompiledMethodRef_2.callMethodRef(CompiledMeth [00:15:38.109] {http--8080-3} at com.caucho.quercus.program.AbstractFunction.callMethodRef(AbstractFunction.ja [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.ObjectExtValue.callMethodRef(ObjectExtValue.java:982) [00:15:38.109] {http--8080-3} at _quercus._gallery2._lib._adodb._adodb__inc__php$quercus_ADOConnection_1$fu [00:15:38.109] {http--8080-3} at com.caucho.quercus.program.CompiledFunctionRef.callMethod(CompiledFunctionR [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:782) [00:15:38.109] {http--8080-3} at _quercus._gallery2._modules._core._classes._GalleryStorage__class$quercus_Ga [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:813) [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.Var.callMethod(Var.java:1402) [00:15:38.109] {http--8080-3} at _quercus._gallery2._modules._core._classes._Gallery__class$quercus_Gallery_0$ [00:15:38.109] {http--8080-3} at com.caucho.quercus.program.CompiledMethod_3.callMethod(CompiledMethod_3.j [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:782) [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.Var.callMethod(Var.java:1390) [00:15:38.109] {http--8080-3} at _quercus._gallery2._modules._core._classes._helpers._GalleryPermissionHelper_0simple__class$quercus_GalleryPer [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:1210) [00:15:38.109] {http--8080-3} at _quercus._gallery2._modules._core._classes._GalleryCoreApi__class$quercus_Ga [00:15:38.109] {http--8080-3} at com.caucho.quercus.program.CompiledMethod_3.callMethod(CompiledMethod_3.j [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:1180) [00:15:38.109] {http--8080-3} at _quercus._gallery2._modules._core._classes._GalleryDataCache__class$quercus_ [00:15:38.109] {http--8080-3} at com.caucho.quercus.env.QuercusClass.callMethod(QuercusClass.java:1180) [00:15:38.109] {http--8080-3} at _quercus._gallery2._main__php$fun__GalleryMain_1.call(_main__php.java:570) [00:15:38.109] {http--8080-3} at _quercus._gallery2._main__php$fun_GalleryMain_0.call(_main__php.java:134) [00:15:38.109] {http--8080-3} at _quercus._gallery2._main__php.execute(_main__php.java:104) [00:15:38.109] {http--8080-3} at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119) [00:15:38.109] {http--8080-3} at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.jav [00:15:38.109] {http--8080-3} at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:407) [00:15:38.109] {http--8080-3} at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) [00:15:38.109] {http--8080-3} at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103 [00:15:38.109] {http--8080-3} at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:201) [00:15:38.109] {http--8080-3} at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:1 [00:15:38.109] {http--8080-3} at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266 [00:15:38.109] {http--8080-3} at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:292) [00:15:38.109] {http--8080-3} at com.caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:577) [00:15:38.109] {http--8080-3} at com.caucho.server.port.TcpConnection$AcceptTask.doAccept(TcpConnection.java: [00:15:38.109] {http--8080-3} at com.caucho.server.port.TcpConnection$AcceptTask.run(TcpConnection.java:1152 [00:15:38.109] {http--8080-3} at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:759) [00:15:38.109] {http--8080-3} at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:681) [00:15:38.109] {http--8080-3} at java.lang.Thread.run(Thread.java:619) [00:15:38.310]ProEnv[] Query failed: ERROR: "P" is not a valid binary digit [00:15:38.311] {http--8080-3} ProEnv[] Query failed: ERROR: "P" is not a valid binary digit [00:15:38.366]jdbc/Gallery2DS.2.6:createStatement(type=1004,concurrency=1007) [00:15:38.366] {http--8080-3} jdbc/Gallery2DS.2.6:createStatement(type=1004,concurrency=1007) [00:15:38.367]jdbc/Gallery2DS.2.6:setEscapeProcessing(false) [00:15:38.367] {http--8080-3} jdbc/Gallery2DS.2.6:setEscapeProcessing(false) [00:15:38.369]jdbc/Gallery2DS.2.6:execute(SELECT g_userId FROM g2_UserGroupMap WHERE g_userId=5 AND g_g [00:15:38.369] {http--8080-3} jdbc/Gallery2DS.2.6:execute(SELECT g_userId FROM g2_UserGroupMap WHERE g_u [00:15:38.369]jdbc/Gallery2DS.2.6:getResultSet() -> org.postgresql.jdbc3g.Jdbc3gResultSet [00:15:38.369] {http--8080-3} jdbc/Gallery2DS.2.6:getResultSet() -> org.postgresql.jdbc3g.Jdbc3gResultSet [00:15:38.404]jdbc/Gallery2DS.2.0:close() [00:15:38.404] {http--8080-3} jdbc/Gallery2DS.2.0:close() [00:15:38.405]jdbc/Gallery2DS.2.1:close() [00:15:38.405] {http--8080-3} jdbc/Gallery2DS.2.1:close() [00:15:38.405]jdbc/Gallery2DS.2.2:close() [00:15:38.405] {http--8080-3} jdbc/Gallery2DS.2.2:close() [00:15:38.406]jdbc/Gallery2DS.2.3:close() [00:15:38.406] {http--8080-3} jdbc/Gallery2DS.2.3:close() [00:15:38.406]jdbc/Gallery2DS.2.4:close() [00:15:38.406] {http--8080-3} jdbc/Gallery2DS.2.4:close() [00:15:38.406]jdbc/Gallery2DS.2.5:close() [00:15:38.407] {http--8080-3} jdbc/Gallery2DS.2.5:close() [00:15:38.407]jdbc/Gallery2DS.2.6:close() [00:15:38.407] {http--8080-3} jdbc/Gallery2DS.2.6:close() [00:15:38.407]connection pool destroy PoolItem[jdbc/Gallery2DS,4,null] [00:15:38.407] {http--8080-3} connection pool destroy PoolItem[jdbc/Gallery2DS,4,null] [00:15:38.408]destroy ManagedConnectionImpl[jdbc/Gallery2DS.2] [00:15:38.408] {http--8080-3} destroy ManagedConnectionImpl[jdbc/Gallery2DS.2] [00:15:38.408]jdbc/Gallery2DS.2:close() [00:15:38.408] {http--8080-3} jdbc/Gallery2DS.2:close() [00:15:38.409]Http[3] HTTP/1.1 500 Internal Server Error [00:15:38.409] {http--8080-3} Http[3] HTTP/1.1 500 Internal Server Error [00:15:38.409]Http[3] Set-Cookie: GALLERYSID=; expires=Fri, 12 Oct 2007 22:15:37 GMT; path=/gallery2/; HttpO [00:15:38.409] {http--8080-3} Http[3] Set-Cookie: GALLERYSID=; expires=Fri, 12 Oct 2007 22:15:37 GMT; path=/ [00:15:38.410]Http[3] Content-Type: text/html [00:15:38.410] {http--8080-3} Http[3] Content-Type: text/html [00:15:38.410]Http[3] Content-Length: 795 [00:15:38.410] {http--8080-3} Http[3] Content-Length: 795 [00:15:38.411]Http[3] write-chunk(795) [00:15:38.411] {http--8080-3} Http[3] write-chunk(795) [00:15:38.411]Http[3] finish/keepalive [00:15:38.411] {http--8080-3} Http[3] finish/keepalive [00:15:38.412] {http--8080-3} Http[3] keepalive [00:15:38.412] {http--8080-3} TcpConnection[id=3,] keepalive (thread) [00:15:38.412] {http--8080-3} TcpConnection[id=3,] closing connection TcpConnection[id=http--8080-3,http://*:80 [00:15:38.450] {http--8080-2} TcpConnection[id=2,] starting connection TcpConnection[id=http--8080-2,http://*:8 [00:15:38.451] {http--8080-2} Http[2] GET /gallery2/lib/javascript/BlockToggle.js HTTP/1.1 [00:15:38.451] {http--8080-2} Http[2] Remote-IP: 192.168.123.11:35291 [00:15:38.451] {http--8080-2} Http[2] Proxy-agent: Sun-Java-System-Web-Proxy-Server/4.0 [00:15:38.452] {http--8080-2} Http[2] Host: gallery.epilog.net:8080 [00:15:38.452] {http--8080-2} Http[2] User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0 [00:15:38.452] {http--8080-2} Http[2] Accept: */* [00:15:38.452] {http--8080-2} Http[2] Accept-language: en-us,en;q=0.5 [00:15:38.453] {http--8080-2} Http[2] Accept-encoding: gzip,deflate [00:15:38.453] {http--8080-2} Http[2] Accept-charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 [00:15:38.453] {http--8080-2} Http[2] Referer: http://gallery.epilog.net:8080/gallery2/main.php [^] [00:15:38.453] {http--8080-2} Http[2] Cookie: GALLERYSID=0df04b625ba5a8e82b2fbfe8df690f3a; G2SETUPSID=5 [00:15:38.454] {http--8080-2} Http[2] If-none-match: "6Z4YOZfNIjc" [00:15:38.454] {http--8080-2} Http[2] Cache-control: max-age=0 [00:15:38.454] {http--8080-2} Http[2] If-modified-since: Wed, 20 Dec 2006 00:24:57 GMT [00:15:38.454] {http--8080-2} Http[2] Via: 1.1 proxy-server1 [00:15:38.455] {http--8080-2} Http[2] Connection: keep-alive [00:15:38.463] {http--8080-2} Dispatch '/gallery2/lib/javascript/BlockToggle.js' to WebAppFilterChain[http://default [00:15:38.488]Http[2] HTTP/1.1 304 Not Modified [00:15:38.488] {http--8080-2} Http[2] HTTP/1.1 304 Not Modified [00:15:38.489]Http[2] ETag: "6Z4YOZfNIjc" [00:15:38.489] {http--8080-2} Http[2] ETag: "6Z4YOZfNIjc" [00:15:38.489]Http[2] Expires: Sat, 11 Oct 2008 22:15:43 GMT [00:15:38.489] {http--8080-2} Http[2] Expires: Sat, 11 Oct 2008 22:15:43 GMT [00:15:38.489]Http[2] Content-Length: 0 [00:15:38.490] {http--8080-2} Http[2] Content-Length: 0 [00:15:38.490]Http[2] finish/keepalive [00:15:38.490] {http--8080-2} Http[2] finish/keepalive [00:15:38.491] {http--8080-2} Http[2] keepalive [00:15:38.491] {http--8080-2} TcpConnection[id=2,] keepalive (thread) Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3136 [Hessian] major always Reporter: yeahyf Assigned To: Priority: normal Status: new Product Build: 12-07-08 19:37 12-10-08 18:13 Platform: OS: OS Version: Product 3.2.0 Version: Resolution: open Projection: none ETA: none Summary: com.caucho.hessian.client.HessianConnectionException: 500: java.net.SocketException: Socket closed Description: com.caucho.hessian.client.HessianConnectionException: 500: java.net.SocketException: Socket closed at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:197) at $Proxy52.sendRequest(Unknown Source) at com.abc.wss.common.wb.client.WBClientProxy.send(WBClientProxy.java:98) at com.abc.wss.proxy.CustProxy.send(CustProxy.java:113) at com.abc.wss.service.CustService.getCustInfo_CUST(CustService.java:351) at com.abc.wss.service.CustService$$FastClassByCGLIB$$b134a0f0.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:67 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:154) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:616 at com.abc.wss.service.CustService$$EnhancerByCGLIB$$2a336bf.getCustInfo_CUST(<generated>) at com.abc.wss.bo.searchpoint.QueryCustPointImpl.getSelectList(QueryCustPointImpl.java:146) at com.abc.wss.action.searchpoint.QueryCustPointAction.execute(QueryCustPointAction.java:132) at sun.reflect.GeneratedMethodAccessor237.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) at com.tydic.wss.interceptor.SearchInterceptor.intercept(SearchInterceptor.java:35) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.abc.wss.interceptor.AgreementInterceptor.intercept(AgreementInterceptor.java:49) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3229 at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) Caused by: java.net.SocketException: Socket closed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read(BufferedInputStream.java:235) at weblogic.net.http.MessageHeader.isHTTP(MessageHeader.java:220) at weblogic.net.http.MessageHeader.parseHeader(MessageHeader.java:143) at weblogic.net.http.HttpClient.parseHTTP(HttpClient.java:475) at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:368) at weblogic.net.http.SOAPHttpURLConnection.getInputStream(SOAPHttpURLConnection.java:36) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:179) ... 44 more Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3121 [Quercus] minor always 12-05-08 03:30 12-05-08 03:30 Reporter: nbzx Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: mysql_query about chinese included Description: when the sql include chinese words, it can't be correctly execute. Steps To Reproduce: Additional reason: Information: in this class "com.caucho.quercus.lib.db.Mysqli" this function sqlToString has a static member "ENCODING" equal "ISO8859_1", so "new String(bytes, ENCODING);" can't support chinese words. Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3110 [Quercus] minor always 12-01-08 07:22 12-01-08 07:38 Reporter: ferg Platform: Assigned To: nam OS: Priority: urgent OS Version: Status: assigned Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: SugarCRM formatting issues Description: (rep by Matthew Schmidt) 4) After logging in initially, some of the dashlets on the home page seem to have their keys listed as the titles instead of the actual value. This is also on the Dashboard screen and the Calendar screen. It may be elsewhere as well. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3109 [Quercus] minor always 12-01-08 07:21 12-01-08 07:21 Reporter: ferg Platform: Assigned To: OS: Priority: urgent OS Version: Status: new Product 3.2.1 Version: Product Build: Resolution: open Projection: none ETA: none Summary: upload limits too small Description: (rep by Matthew Schmidt) 3) Upload limits were set too small. Is there a way to set this to something higher? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3107 [Quercus] minor always 12-01-08 07:19 12-01-08 07:19 Reporter: ferg Platform: Assigned To: OS: Priority: urgent OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: session_save_path Description: (rep by Matthew Schmidt) Hey guys. I just made it through the SugarCRM installation on Resin 3.2 and it mostly seems to have worked fine. I thought I would send a few notes of the problems I've encountered to see if you're aware of them. 1) session_save_path is not returning a path that exists or is writeable. Trying to set the phpini prop as session.save_path or session_save_path has no effect. If you comment out the test in the installation it proceeds fine. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3106 [Quercus] minor always 12-01-08 07:17 12-01-08 07:17 Reporter: ferg Platform: Assigned To: OS: Priority: urgent OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: EmailMarketer from inspire Description: (rep by Matthew Schmidt) Hi guys. We're testing an application called EmailMarketer from Interspire (www.interspire.com) and it shows the proper login page, but when it tries to show us the dashboard we just get a white screen. Normally, on Apache I'd check the error log, but I don't see anything in jvm-default.log. Is there a different log setting I should try? LittleSnitch (on my mac) tells me that its properly trying to connect to the DB, but thats about it. Any help would be great! Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: 3072 [Documentation] major Reporter: usuf_leo Severity: Status: new Product Build: Date Submitted: Last Update: always 11-14-08 01:40 11-14-08 01:40 Platform: Assigned To: Priority: normal Reproducibility: OS: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: Mantis Internal file size limit Description: what is the maximum for a mantis file. to be exact, how many records a mantis internal file can hold. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3069 [Quercus] minor always 11-13-08 11:21 11-13-08 11:21 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product 3.2.1 Version: Product Build: Resolution: open Projection: none ETA: none Summary: opengoo simplexml Description: (rep by Geert Van Damme) Just one extra thing to get opengoo running ( I don't know if that's quercus-related though): I had to disable the check for simplexml in the install routine ( public/install/installation/steps/ChecksStep.class.php ) Apparently, simplexml works ok, but the opengoo check doesn't notice this. Skipping the test made it work fine. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3064 [Quercus] major always 11-11-08 04:17 11-11-08 04:17 Reporter: alexbu Assigned To: Priority: normal Status: new Product Build: Platform: OS: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: DOMNamedNodeMap cannot be used in foreach statement Description: It's not possible to use 'foreach' statement to iterate over an instance of DOMNamedNodeMap, returnted by $domElement->attributes, where $domElement is DOMElement Though, there is no problem with iterating over DOMNodeList, returned by $domElement>childNodes Steps To Reproduce: Additional <?php Information: $test_str = "<?xml version='1.0' encoding='utf-8'?> <root> <first attr1='value1' attrx='attrx'/> <second attr2='value2'/> <third/> </root>"; function node_value($node) { foreach ($node->childNodes as $item) { if ($item instanceof DOMText) continue; echo 'node: ' . $item->nodeName . "\n"; if ($item->hasAttributes()) { foreach($item->attributes as $attr) { echo 'attribute: ' . $attr->nodeName . ' with value: ' . $attr->nodeValue . "\n"; } } } if ($item->hasChildNodes()) node_value($item); } $doc=new DOMDocument(); if($doc->loadXML($test_str)===false) return false; echo 'root:' . $doc->documentElement->nodeName . "\n"; node_value($doc->documentElement); Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 3050 [Quercus] major always Reporter: ckchris Assigned To: Priority: normal Platform: OS: OS Version: Date Submitted: 11-06-08 23:32 Last Update: 11-06-08 23:32 Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: Method Unimplemented when installing SilverStripe Description: While trying to install the newest silverstrip CMS, I received an OperationUnsupportedException. Stack trace below Steps To Reproduce: Additional java.lang.UnsupportedOperationException Information: at com.caucho.quercus.program.MethodDeclaration.call(MethodDeclaration.java:92) at com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:329) at com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:523) at com.caucho.quercus.env.QuercusClass.getField(QuercusClass.java:928) at com.caucho.quercus.env.ObjectExtValue.getFieldExt(ObjectExtValue.java:237) at com.caucho.quercus.env.ObjectExtValue.getThisField(ObjectExtValue.java:226) at com.caucho.quercus.expr.ThisFieldVarGetExpr.eval(ThisFieldVarGetExpr.java:97) at com.caucho.quercus.expr.IssetExpr.eval(IssetExpr.java:68) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:467) at com.caucho.quercus.expr.NotExpr.evalBoolean(NotExpr.java:72) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.ForeachStatement.execute(ForeachStatement.java:185) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.ForeachStatement.execute(ForeachStatement.java:103) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:363) at com.caucho.quercus.program.Function.call(Function.java:292) at com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:329) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:698) 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.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:363) at com.caucho.quercus.program.Function.call(Function.java:292) at com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:329) at com.caucho.quercus.env.QuercusClass.callNew(QuercusClass.java:803) at com.caucho.quercus.expr.NewExpr.eval(NewExpr.java:97) at com.caucho.quercus.expr.Expr.evalCopy(Expr.java:397) 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:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:363) at com.caucho.quercus.program.Function.call(Function.java:292) at com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:329) at com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:698) 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:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.ForeachStatement.execute(ForeachStatement.java:103) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at at com.caucho.quercus.program.Function.callImpl(Function.java:363) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:329) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:698) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.Function.callImpl(Function.java:363) com.caucho.quercus.program.Function.call(Function.java:292) com.caucho.quercus.program.AbstractFunction.callMethod(AbstractFunction.java:329) com.caucho.quercus.env.ObjectExtValue.callMethod(ObjectExtValue.java:698) com.caucho.quercus.expr.MethodCallExpr.eval(MethodCallExpr.java:104) com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:84) com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:327) com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:71) com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119) com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:152) com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:407) javax.servlet.http.HttpServlet.service(HttpServlet.java:91) com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:189) com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266) com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:292) com.caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:577) com.caucho.server.port.TcpConnection$AcceptTask.doAccept(TcpConnection.java:1211) com.caucho.server.port.TcpConnection$AcceptTask.run(TcpConnection.java:1152) com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:759) com.caucho.util.ThreadPool$Item.run(ThreadPool.java:681) java.lang.Thread.run(Thread.java:613) Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3048 [Quercus] minor always 11-05-08 15:15 11-05-08 15:15 Reporter: ferg Platform: Assigned To: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: $_SERVER[REMOTE_USER] Description: (rep by Eric Bowman) Check to see that it's set by Quercus. I forgot to add that this brings me to an issue which I don't know whether to call a bug or a feature request. Quercus doesn't seem to set $_SERVER[REMOTE_USER], which would come in awfully handy for me. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 2998 [Hessian] crash always Reporter: gritstone Assigned To: Date Submitted: 10-09-08 06:59 Last Update: 10-31-08 17:52 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.0 Version: Resolution: open Projection: none ETA: none Summary: Hessian deserialization crashes on on multi java.util.TimeZone responses Description: A hessian client crashes deserializing the response if the response contains two java.util.TimeZone objects representing different timezones. This fails on Java SE 6u2 and Java SE 6u7. The client crashes with the following exception: com.caucho.hessian.client.HessianRuntimeException: com.caucho.hessian.io.HessianFieldException: sun.util.calendar.ZoneInfo.transitions: [J cannot be assigned from null at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:232) at $Proxy0.echoTimeZoneList(Unknown Source) at ZonedDateTimeTest.main(ZonedDateTimeTest.java:49) Caused by: com.caucho.hessian.io.HessianFieldException: sun.util.calendar.ZoneInfo.transitions: [J cannot be assigned from null at com.caucho.hessian.io.JavaDeserializer.logDeserializeError(JavaDeserializer.java:677) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:400) at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:233) at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:157) at com.caucho.hessian.io.SerializerFactory.readObject(SerializerFactory.java:378) at com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2051) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1977) at com.caucho.hessian.io.CollectionDeserializer.readList(CollectionDeserializer.java:78) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1700) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:220) ... 2 more Caused by: java.lang.UnsupportedOperationException: com.caucho.hessian.io.BasicDeserializer@6754d6 at com.caucho.hessian.io.BasicDeserializer.readLengthList(BasicDeserializer.java:598) at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1714) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:396) ... 10 more com.caucho.hessian.io.HessianFieldException: sun.util.calendar.ZoneInfo.transitions: [J cannot be assigned from null Steps To Reproduce: Additional Sample server: Information: public interface ZonedDateTimeServer { } public List<TimeZone> echoTimeZoneList(List<TimeZone> times); Sample implementation: public class ZonedDateTimeServerImpl implements ZonedDateTimeServer { @Override public List<TimeZone> echoTimeZoneList(List<TimeZone> times) { List<TimeZone> list = new ArrayList<TimeZone>(); for (TimeZone time : times) { System.out.println("Adding TimeZone: " + time.toString()); list.add(time); } return list; } } Sample client: public class ZonedDateTimeTest { /** * @param args */ public static void main(String[] args) { try { String url = "http://localhost:8080/date-time-server/hello"; [^] HessianProxyFactory factory = new HessianProxyFactory(); factory.setDebug(true); ZonedDateTimeServer dtServer = (ZonedDateTimeServer) factory.create(ZonedDateTimeServer.class, url); /* Works */ TimeZone la = TimeZone.getTimeZone("America/Los_Angeles"); List<TimeZone> responseList = dtServer.echoTimeZoneList(Collections.singletonList(la)); System.out.println("LA Response: " + responseList); /* Works */ TimeZone london = TimeZone.getTimeZone("Europe/London"); responseList = dtServer.echoTimeZoneList(Collections.singletonList(london)); System.out.println("London Response: " + responseList); } Attached Files: } /* Fails */ List<TimeZone> tzList = new ArrayList<TimeZone>(); tzList.add(la); tzList.add(london); responseList = dtServer.echoTimeZoneList(tzList); System.out.println("LA + London: " + responseList); } catch (final Exception e ) { e.printStackTrace(); System.err.println(e.getLocalizedMessage()); } Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3027 [Quercus] minor always 10-28-08 09:52 10-28-08 09:52 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: regexp utf-8 issue Description: See http://forum.caucho.com/?q=node/85 [^] [show] com.caucho.quercus.QuercusRuntimeException: bad UTF-8 sequence, saw EOF com.caucho.quercus.QuercusRuntimeException: bad UTF-8 sequence, saw EOF at com.caucho.quercus.lib.regexp.Regexp.fromUtf8(Regexp.java:259) at com.caucho.quercus.lib.regexp.Regexp.convertSubject(Regexp.java:180) at com.caucho.quercus.lib.regexp.RegexpState.<init>(RegexpState.java:78) at com.caucho.quercus.lib.regexp.CauchoRegexpModule.preg_match(CauchoRegexpModule.java:227) at com.caucho.quercus.lib.regexp.RegexpModule.preg_match(RegexpModule.java:119) at _quercus._includes._bootstrap__inc$fun_drupal_validate_utf8_20.call(var/www/hosts/forum.caucho.com/webapps/R Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3011 [Quercus] feature always 10-19-08 21:47 10-27-08 20:52 Reporter: ckchris Assigned To: Priority: normal Status: new Product Build: Projection: none Platform: OS: OS Version: Product 3.1.8 Version: Resolution: open ETA: none Summary: Feature Request for DB connect strings Description: This is rather trivial, but some PHP applications use the mysql_connect($host, $user, $password, $dbname) method call to connect to the database. The web application form will then ask for this information and doesn't provide you a way to specify a JNDI datasource to use. Thus, when you enter the JNDI datasource as the $host, connection will fail from the Quercus side. It's true that it's easy to just change the mysql_connect in the PHP file to use the oneargument mysql_connect version. However, since this is specifically a Quercus PHP-Java bridging edge case, I think it may not be a bad idea to have Quercus check for the following edge case in mysql_connect function: *) If mysql_connect($host,$user,$password,$dbname) is used AND the $host is a JNDI string that starts with "java:", then ignore all the rest of the parameters and accept this as a JNDI string. I think this will make Quercus even more compatible with existing php apps without having to modify any source files. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3018 [Quercus] minor always 10-21-08 11:16 10-21-08 11:16 Reporter: nam Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: at com.caucho.quercus.lib.db.OracleModule.oci_error() ClassCastException Description: (rep by mark926) can any one help me to solve this issue. ( I am able to use ocilogin function through normal php setup) My environment is oracle client 9i installed in local machine weblogic 9.2 I am gettign the below error when i am trying to use ocilogin function java.lang.ClassCastException: java.lang.Boolean at com.caucho.quercus.lib.db.OracleModule.oci_error(OracleModule.java:714) at com.caucho.quercus.lib.db.OracleModule.ocierror(OracleModule.java:1889) 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:585) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:129) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:604) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:539) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.program.EchoStatement.execute(EchoStatement.java:57) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:272) 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:165) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:355) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3244) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2010) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1916) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 3017 [Quercus] minor always 10-21-08 11:12 10-21-08 11:15 Reporter: nam Assigned To: Last Update: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: mysql error on jetty+linux, but no on jetty+winxp Description: (rep by mehdix) I'm deploying my webapp using a war file. My webapp works fine when deployed in WinXP+Jetty+Quercus+MySQL but fails when deployed in Linux+Jetty+Quercus+MySQL. The failure is caused by mysql_connect() This is the error message I'm getting: A link to the server could not be established. url=jdbc:mysql://192.168.100.243:3306/?characterEncoding=ISO8859_1 [^] driver=com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago. [mysql_connect] cannot connect Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3016 [Quercus] minor always 10-21-08 11:10 10-21-08 11:10 Reporter: nam Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: remote mysql databases do not work Description: (rep by mehdix) I have a simple PHP script that connects to a REMOTE MySQL database. This script works fine on APACHE but not on TOMCAT+QUERCUS. When using TOMCAT+QUERCUS, mysql_connect() only works with local MySQL databases (localhost). So how to enable remote MySQL connection? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3015 [Quercus] minor Reporter: nam always 10-21-08 11:02 10-21-08 11:02 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: quercus on weblogic - HOW-TO Description: (rep by sabraha5) i am trying to add the quercus PHP functionality to a J2EE application on weblogic ; so I added the JARs (quercus.jar, resin-util.jar, script-10.jar) to the WEB-INF/lib folder and then added the servlet and servlet-mapping tags to the web.xml file.. Quercus Servlet com.caucho.quercus.servlet.QuercusServlet Quercus Servlet *.php but I am getting a 404 when browsing to a PHP file. am i missing something? thanks! Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 3014 [Quercus] minor always 10-21-08 10:59 10-21-08 10:59 Reporter: nam Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: phpbb3 text input encoding issue Description: (rep by libor) I have installed phpbb3 forum on quercus php, everything is fine except encoding, all text area inputs are not saved in utf8(edit boxes are saved good), so I can't use it as local forum. I installed it on apache+ clasic php and same database and everything was fine. So problem has to be in quercus and his encodings. I tried both script-encoding ISO-8859-1 or script-encoding UTF-8 and none has worked. Can enyone help, I am really lost, I need to use quercus because of jetty server which is our app server for whole project. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 2978 [Hessian] minor always 09-29-08 11:33 09-29-08 11:33 Reporter: emil Last Update: Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.2.1 Version: Resolution: open Projection: none ETA: none Summary: Synchronize Hessian Flash type mapping to AMF type mapping Description: Rep by Leonid Gellar http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_4.html [^] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2968 [Hessian] minor always 09-25-08 11:41 09-25-08 11:41 Reporter: ferg Assigned To: Priority: normal Platform: OS: OS Version: Status: new Product 3.2.0 Version: Product Build: Resolution: open Projection: none ETA: none Summary: Hessian deserialization of timestamps Description: (rep by Marieke Vandamme) I have a problem with deserializing timpstamp fields in hessian 3.2.0. When the field with the date or timestamp is null, I get an exception. The exception comes from the Deserializer while creating the Date, Time or Timestamp. I've added a condition in the SqlDateFieldDeserializer, SqlTimestampFieldDeserializer and SqlTimeFieldDeserializer. When date == null don't create the Date, Time or Timestamp with as parameter date.getTime(). (For example: value = (date==null)?null:new java.sql.Timestamp(date.getTime());) Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 2896 [Hessian] major always Reporter: pgrigoro Assigned To: Date Submitted: 09-03-08 00:12 Last Update: 09-23-08 14:01 Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.2.0 Version: Resolution: open Projection: none ETA: none Summary: Using Hessian Binary Web Service Protocol with the AJP protocol (Apache Tomcat Connector) Description: Hello everyone, I have a problem regarding Hessian protocol. I am using the Hessian Binary Web Service Protocol (in a Demo Application) with the following configuration: The Client (SWT Application) sends a (web Service) request to the Server (Tomcat) through an intermediate Server (Apache), which uses the AJP protocol to redirect the requests to the Tomcat Server. The application works fine, but after some time of usage, while the application tries to receive data from the Web Service, throws the following Exception: com.caucho.hessian.client.HessianConnectionException: 500: java.net.SocketException: Connection reset at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:197) at $Proxy0.receive(Unknown Source) at com.caucho.ria.examples.client.Client.receiveDataFromWebService(Client.java:87) at com.caucho.ria.examples.client.ClientMainScreen$1.selectDataFromWS(ClientMainScreen.java:125) at com.caucho.ria.examples.client.ClientMainScreen$1.widgetSelected(ClientMainScreen.java:101) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293) at com.caucho.ria.examples.client.ClientMainScreen.open(ClientMainScreen.java:72) at com.caucho.ria.examples.client.ClientMainScreen.main(ClientMainScreen.java:57) Caused by: java.net.SocketException: Connection reset at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:179) ... 11 more Caused by: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read1(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.HttpURLConnection.getResponseCode(Unknown Source) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:168) ... 11 more There is no problem with the network connection, because we tried again to execute the request from the client (after the exception) and we received the data from the web service. But, the same problem occurred after a while. Changing the configuration and sending the requests directly (from the client) to the Tomcat Server then the above problem disappears. Have you any idea why this happens with the AJP protocol? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 1964 [Quercus] minor always 08-22-07 15:09 09-19-08 14:53 Reporter: nam Assigned To: nam Priority: normal Platform: OS: OS Version: Status: assigned Product 3.1.2 Version: Product Build: Resolution: open Projection: none ETA: none Summary: curl and SSL Description: 95: curl_setopt ($ch, CURLOPT_FRESH_CONNECT, 1); 98: curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER,$reqCurlSSL); 99: curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST,$reqCurlHost); Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: 2893 [Quercus] minor always Reporter: ferg Date Submitted: 09-02-08 13:54 Last Update: 09-02-08 13:54 Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: getCategoryList (function) not found/unloaded Description: (rep by Paul Fisher) Interesting. We've started to get errors, however, that say getCategoryList in an undefined function. Could there be a problem related to GC of php methods? Full GC[Unloading class _quercus._wordpress._wp_22dcontent._plugins._getCategoryList__php] [Unloading class _quercus._wordpress._wp_22dcontent._plugins._getCategoryList__php] [Unloading class _quercus._wordpress._wp_22dcontent._plugins._getCategoryList__php$fun_getCategoryList] [Unloading class _quercus._wordpress._wp_22dcontent._plugins._getCategoryList__php] [Unloading class _quercus._wordpress._wp_22dcontent._plugins._getCategoryList__php$fun_getCategoryList] Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2872 [Hessian] minor always 08-26-08 09:55 08-26-08 09:55 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: allow JSR-310 (Java Date and Time) for Hessian implementation Description: (rep by Craig Smith) I am currently researching potential technologies for a large-scale software engineering project that employs a service oriented architecture, using J2EE. I am strongly considering recommending Hessian be used for communication between services in preference to a SOAP based approach, however, before I do that I need to iron out one potential show stopper. We are keen to be early adopters of the forthcoming Java Date and Time API (JSR-310), instead of the clumsy and dated java.util.Date/Calendar APIs. Is there any plans for future versions of Hessian to support these APIs? If so, when is that likely to be? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2796 [Hessian] minor always 07-18-08 08:55 07-28-08 04:47 Reporter: ferg Assigned To: Platform: OS: Priority: normal OS Version: Status: new Product Version: Product Build: Resolution: open Projection: none ETA: none Summary: Hessian customization Description: (rep by Harald Radi) i want to implement a custom serializer that overrules hessians default serialization implementation based on some custom annotations. I have the following usecase: I want to send JPA entities over the wire, but I don?t want the serializer to traverse all @ManyToOne mapped properties (and hence trigger a sql select) ? instead it should just serialize the id of those (the foreign key) which are available even without a further select. For that I annotated such fields with @SerializeById. Now, trying to make the hessian serialization mechanism aware of this my naive approach would have been: - add a custom SerializerFactory that provides a serializer for such annotated entities - derive from JavaSerializer and overwrite getFieldSerializer and provide a different implementation for annotated fields There are two difficulties with that approach: - getFieldSerializer is private static, it needs to be protected for that - only ?field.getType()? is passed to getFieldSerializer, to be able to access annotations the ?field? needs to be passed to it This requires me to maintain a copy of the JavaSerializer class on my own, do you think that this is something that could be changed for the next release? The same applies to the deserializer of course. Steps To Reproduce: Additional Information: Attached Files: JavaSerializer.java (10 KB) 07-28-08 04:43 07-28-08 04:44 JavaDeserializer.java (18 KB) Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2790 [Quercus] feature always 07-16-08 08:25 07-16-08 08:25 Reporter: pkcinna Assigned To: Priority: normal Status: new Product Build: Projection: none ETA: none Platform: OS: OS Version: Product 3.1.6 Version: Resolution: open Summary: curl implementation does not support sftp Description: Latest builds of CURL and php5 support sftp protocol. This is a growing standard that is crucial to many of our php scripts at work. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2707 [Quercus] minor always 05-29-08 09:08 05-29-08 09:22 Reporter: ferg Assigned To: Platform: OS: Priority: normal Status: new Product Build: OS Version: Product 3.1.6 Version: Resolution: open Projection: none ETA: none Summary: mysql/mediawiki transaction timeout Description: (rep by Paul Fischer) We keep running into sporadic database errors on certain mediawiki pages. Mostly they are mySQL 1213 errors (a database lock) or a database timeout. It seems to be related to some object caching in mediawiki, and appears to occur only during the deletion of data related to objcache. I have a few theories on what might cause this: 1. Clustering between multiple mediawiki instances is causing deadlocks as two instances try to delete the same content 2. database configuration issue 3. Logging synchronization (when this issue seems to occur, I look at resin-admin to see what is going on. Often, there seem to be a lot of threads in a BLOCKED state waiting on logging code. I am wondering if there is some synchronization that is causing threads to block [during logging], and that this waiting is having a cascade effect on the database connection pool [since db connections can't be returned]) Even if this issue continued to occur, we could prevent it from getting seen by always passing a 500 error. The problem is that we have a controller that delegates to Quercus/PHP, and even if a 500 error is returned, the resultant response is simply included within the model and then displayed in a section of a page. In other words, each page is comprised of multiple requests to PHP (via a controller) making it hard to detect an error condition. If we were able to detect a 500 error on any of these "embedded" requests, we could ensure that a 500 is sent for the actual browser request. Since all requests come through Akamai, we these bad responses would never get seen -- Akamai will never cache or display 500 errors. It will just use the last, cached, non-error page. If you have any suggestions on how to go about detecting an error condition on one of these responses, it would be very helpful. And of course, addressing the actual issue is the most ideal. The problem happens sporadically, making it very difficult to debug. But since these pages are getting cached, the error is compounded, and it looks quite bad on the site. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2689 [Quercus] minor always 05-22-08 09:56 05-22-08 09:56 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.1.6 Version: Resolution: open Projection: none ETA: none Summary: XSLT processing Description: (rep by 1f) Love this app, the performance increase is amazing, even beats Zend Platform in the tests I've done. Taht being said, I have an application that uses the php XSLTProcessor class and am wondering if there are plans to implement this function, and if not is there a similar Resin Java class that I can use to replace it? Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2510 [Hessian] feature always 03-10-08 11:26 03-13-08 16:06 Reporter: emil Assigned To: Priority: normal Status: new Product Build: Projection: none ETA: none Platform: OS: OS Version: Product 3.1.5 Version: Resolution: open Summary: Add method tag support to HessianService Description: (Reported by Koen Serry) For example with BlazeDS one can do the following: <mx:RemoteObject id="flexManager" destination="flexManager"> <mx:method name="getItemsForProject" result="getItemsForProjectHandler(event)" fault="getFaultHandler(event)"/> <mx:method name="toggle" fault="getFaultHandler(event)"/> <mx:method name="sync" fault="getFaultHandler(event)" result="getDomoruptorsForProjectHandler(event)"/> </mx:RemoteObject> which can than be used in my actionscript code as flexManager.getItemsForProject('blabla') Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: 2160 [Hessian] minor always 11-09-07 09:16 03-05-08 20:52 Reporter: ferg Last Update: Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product Version: Resolution: open Projection: none ETA: none Summary: Hessian/C# communication Description: (rep by Daniel Rossi) Hi any work around for my problem i can only send string arguments right now. On 06/11/2007, at 1:57 PM, Daniel Rossi wrote: Here is the spring code dont see any debug option here try { // Try Hessian 3.x (with service interface argument). Constructor ctor = HessianSkeleton.class.getConstructor(new Class[] {Object.class, Class.class}); checkService(); checkServiceInterface(); skeleton = (HessianSkeleton) ctor.newInstance(new Object[] {getProxyForService(), getServiceInterface()}); } catch (NoSuchMethodException ex) { // Fall back to Hessian 2.x (without service interface argument). Constructor ctor = HessianSkeleton.class.getConstructor(new Class[] {Object.class}); skeleton = (HessianSkeleton) ctor.newInstance(new Object[] {getProxyForService()}); } On 06/11/2007, at 1:43 PM, Daniel Rossi wrote: Hi its 3.13, where do I put the debug property on the server or client ? Its exported via the hessian exporter in spring ill have to take a look at the api and see if it has that. On 06/11/2007, at 4:03 AM, Scott Ferguson wrote: On Nov 5, 2007, at 2:38 AM, Daniel Rossi wrote: Hi ive only managed to call a method with one string param as an argument, trying ArrayLists of Objects String[] arrays of strings or objects gives me this org.springframework.web.util.NestedServletException: Hessian skeleton invocation failed; nested exception is java.lang.UnsupportedOperationException: com.caucho.hessian.io.BasicDeserializer@1cea92: java.lang.UnsupportedOperationException: com.caucho.hessian.io.BasicDeserializer@1cea92 at com.caucho.hessian.io.BasicDeserializer.readList(BasicDeserializer.java:516) Which version of Hessian is this with? There have been fixes in the most recent version (3.1.3). Also, if you're using the 3.1.3 version, you may want to set debug="true" so we can look at the Hessian data. -- Scott When just simply sending strings as arguments i get this com.caucho.hessian.io.HessianProtocolException: add: expected end of call ('z') at 'S'. Check method arguments and ensure method overloading is enabled if necessary The C# code is like List<ServerConfig> list = new List<ServerConfig>(); ServerConfig config = new ServerConfig(); config.name = "test"; list.add(config); service.add(list); on the java side There is an interface and impl of public void add(List<ServerConfig> config) { } This is getting quite annoying because every kind of remoting impl ive tried that isnt soap doesnt work from C# to java and this was the easiest to setup in spring similar to rmi. Let me know. Steps To Reproduce: Additional Information: Attached Files: Viewing Issue Advanced Details ID: Category: Severity: Reproducibility: Date Submitted: Last Update: 2352 [Hessian] minor always 01-22-08 08:13 03-05-08 20:51 Reporter: ferg Platform: Assigned To: OS: Priority: normal OS Version: Status: new Product Build: Product 3.1.4 Version: Resolution: open Projection: none ETA: none Summary: Hessian: serializing large data Description: (rep by Bjorn Melinder) I've implemented a way to send large amounts of data over hessian, without having to interact directly with the HessianInput classes. My SerializableInputStream class wraps any input stream into a temp file which data is buffered to. Thus: class MyServiceImpl { public InputStream getLotsOfData() { InputStream someSource = new FileInputStream("foo.mp3"); // or other source, e.g. large db result sets return new SerializableInputStream(someSource); } On the client side, the SerializableInputStream is deserialized using a buffered temp file internally. The connection is not kept open, since all data is deserialized directly. The end result is pretty neat, allowing us to send large data as a normal part of any api we create for any application. It also works using ObjectOutputStream / ObjectInputStream serialization... but RMI breaks this since its' marshalling layer uses ByteArrayOutputStream :/ I would be happy to share this code with the open source community. My first initial thought was to hear what you think about it, and if you think it fits into the hessian.jar or spring or anything else. Please see the attached jar (with source code included) and tell me what you think. Steps To Reproduce: Additional Information: Attached Files: