Download Mantis - Caucho® , Resin

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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&amp;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://&quot; [^]
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>&nbsp;</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: