Viewing Issue Advanced Details
6271 [Resin] minor always 07-18-19 21:33 07-18-19 21:33
nam  
 
normal  
new 4.0.62  
open  
none    
none  
add health_log_expire_timeout to resin.properties and health.xml
(rep by K. Ng)

Current health.xml:

    <health:LogService level="${health_log_level}" />
There are no notes attached to this issue.




Viewing Issue Advanced Details
6270 [Resin] minor always 07-18-19 20:53 07-18-19 21:31
nam  
 
normal  
new 4.0.62  
open  
none    
none  
add documentation for LogService config
Explain its relationship to log_data.db and common issues:

1. growing too large (expiration period)
2. growing without bound (bugs in older version)
3. log level
4. <resin:LogService> vs <health:LogService>

https://caucho.com/resin-4.0/reference.xtp#resin:LogService [^]
http://javadoc4.caucho.com/com/caucho/admin/LogService.html [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
6269 [Resin] minor always 07-18-19 01:28 07-18-19 01:28
nam  
 
normal  
new 4.0.62  
open  
none    
none  
add openssl tag to reference doc
http://www.caucho.com/resin-4.0/reference.xtp [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
6267 [Resin] minor always 07-15-19 21:29 07-15-19 21:29
nam  
 
normal  
new 4.0.62  
open  
none    
none  
add docs for SSL SNI support
(rep by J. Stephens)

Two different SSL certificates.
Two different domains.
There are no notes attached to this issue.




Viewing Issue Advanced Details
6265 [Resin] minor always 07-09-19 20:15 07-09-19 20:15
nam  
 
normal  
new 4.0.62  
open  
none    
none  
log-handler Rollovers link is broken
http://caucho.com/resin-4.0/reference.xtp#log-handler [^]

Link text: "See Rollovers"
There are no notes attached to this issue.




Viewing Issue Advanced Details
6264 [Resin] minor always 07-08-19 13:56 07-08-19 14:56
nam  
 
normal  
new 4.0.62  
open  
none    
none  
add a cli command to list servers in the cluster
(rep by J Meyers)

/resin-admin lists the servers. Can also use JMX to do the same. But would be nice to have a simple CLI command for it.
There are no notes attached to this issue.




Viewing Issue Advanced Details
6263 [Resin] minor always 07-08-19 13:53 07-08-19 13:53
nam  
 
normal  
new 4.0.62  
open  
none    
none  
resin-admin-command-line.xtp available commands isn't up to date
https://caucho.com/resin-4.0/admin/resin-admin-command-line.xtp#availablecommands [^]

May want to delete section "available commands".
There are no notes attached to this issue.




Viewing Issue Advanced Details
6262 [Resin] minor always 07-08-19 13:41 07-08-19 13:42
nam  
 
normal  
new 4.0.62  
open  
none    
none  
add doc for --elastic-server-port, --elastic-server-address, and --elastic-server-index
The following configs were added in 4.0.31 but don't have documentation:

--elastic-server-port
--elastic-server-address
--elastic-server-index

There are no notes attached to this issue.




Viewing Issue Advanced Details
6255 [Resin] minor always 05-28-19 20:47 05-28-19 20:47
nam  
 
normal  
new 4.0.62  
open  
none    
none  
ClusterRepository repository update failed warning log message every minute
(rep by A. Thai)

[19-05-28 15:47:08.292] {cluster-router-web-main@caa.web.admin.resin-246} UpdateCallback[f718687b5d424f1ec28ed13455f7b5381a51c54a] repository update failed on f718687b5d424f1ec28ed13455f7b5381a51c54a
[19-05-28 15:48:08.996] {cluster-router-web-main@caa.web.admin.resin-251} UpdateCallback[f718687b5d424f1ec28ed13455f7b5381a51c54a] repository update failed on f718687b5d424f1ec28ed13455f7b5381a51c54a
[19-05-28 15:49:08.294] {cluster-router-web-main@caa.web.admin.resin-244} UpdateCallback[f718687b5d424f1ec28ed13455f7b5381a51c54a] repository update failed on f718687b5d424f1ec28ed13455f7b5381a51c54a
[19-05-28 15:50:08.997] {cluster-router-web-main@caa.web.admin.resin-193} UpdateCallback[f718687b5d424f1ec28ed13455f7b5381a51c54a] repository update failed on f718687b5d424f1ec28ed13455f7b5381a51c54a
[19-05-28 15:50:23.202] {cluster-router-web-main@caa.web.admin.resin-253} UpdateCallback[f718687b5d424f1ec28ed13455f7b5381a51c54a] repository update failed on f718687b5d424f1ec28ed13455f7b5381a51c54a
[19-05-28 15:51:08.296] {cluster-router-web-main@caa.web.admin.resin-255} UpdateCallback[f718687b5d424f1ec28ed13455f7b5381a51c54a] repository update failed on f718687b5d424f1ec28ed13455f7b5381a51c54a
There are no notes attached to this issue.




Viewing Issue Advanced Details
6248 [Resin] minor always 05-20-19 00:12 05-20-19 00:12
nam  
 
normal  
new 4.0.61  
open  
none    
none  
add documentation for using Resin with Hibernate 5
nam: it too a whole day just trying to figure out how to get Hibernate 5 working. To save our users time, we should create docs for it.
There are no notes attached to this issue.




Viewing Issue Advanced Details
6245 [Resin] minor always 05-19-19 23:23 05-19-19 23:38
nam  
 
normal  
new 4.0.61  
open  
none    
none  
implement JtaPlatformProvider for Hibernate 5 JTA support
To integrate with Hibernate 5, Resin needs to implement a JtaPlatformProvider[1]. It can simply return a hibernate-provided ResinJtaPlatform[2].

[1] JtaPlatformProvider: https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/StandardJtaPlatformResolver.java#L33 [^]

[2] ResinJtaPlatform: https://github.com/hibernate/hibernate-orm/blob/e5dc635a52362f69b69acb8d5b166b69b165dbbd/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/ResinJtaPlatform.java#L18 [^]
Notes
(0006895)
nam   
05-19-19 23:24   
The workaround is for users to add the following property to their persistence.xml:

            <property name="hibernate.transaction.jta.platform" value="Resin"/>
(0006896)
nam   
05-19-19 23:26   
Caucho should also submit a github pull request to Hibernate to add native Resin detection to StandardJtaPlatformResolver.java.




Viewing Issue Advanced Details
6242 [Resin] minor always 05-16-19 14:57 05-19-19 17:04
nam  
 
normal  
new 4.0.62  
open  
none    
none  
allow user to specify heap dump location in dashboard
(rep by Oneshin)

Is it possible to change the location of the JVM heap dump on the dashboard?
Notes
(0006894)
nam   
05-19-19 17:04   
Or to simply default to the Resin log directory (like what the CLI does).




Viewing Issue Advanced Details
6243 [Resin] minor always 05-19-19 04:06 05-19-19 04:11
nam  
 
normal  
new 4.0.61  
open  
none    
none  
update jboss-logging from 3.1.0.CR2 to 3.4.0.Final for Hibernate 5.1 support
Hibernate would throw a: java.lang.NoSuchMethodError: org.hibernate.internal.CoreMessageLogger.debugf(Ljava/lang/String;I)V

The cause is the outdated jar in resin/webapp-jars/jboss-logging-3.1.0.CR2.jar. I'm not sure why we're including this jar in the first place.

3.4.0.Final is the latest version, but 3.3.0.Final should also work too.
There are no notes attached to this issue.




Viewing Issue Advanced Details
6241 [Resin] minor always 05-09-19 13:06 05-09-19 13:06
nam  
 
normal  
new 4.0.61  
open  
none    
none  
create a systemd unit file for resin
(rep by J. Meyers)

By any chance does caucho have an official systemd unit file?

A systemd unit file describes the service and the resources that it wants to use.
There are no notes attached to this issue.




Viewing Issue Advanced Details
6240 [Resin] minor always 05-08-19 21:44 05-08-19 21:44
nam  
 
normal  
new 4.0.61  
open  
none    
none  
add documentation for large deployments
(rep by A. Thai)

- best practices
- monitoring tips
- debugging tips
There are no notes attached to this issue.




Viewing Issue Advanced Details
6239 [Resin] minor always 05-08-19 21:09 05-08-19 21:09
nam  
 
normal  
new 4.0.61  
open  
none    
none  
connection draining does not work in actual deployments
(rep by A. Thai)

Connection draining works when servers are idle, but doesn't work when there are actual connections.

Nam: I believe they said the drain command times out.
There are no notes attached to this issue.




Viewing Issue Advanced Details
6189 [Resin] minor always 10-11-18 14:11 03-05-19 11:15
ferg  
nam  
normal  
assigned  
open  
none    
none  
Resin plugin with STS4
We want to use Resin with Spring Tools 4 for Eclipse. (STS4).

We know that Resin plugin has compatible with STS3, but it doesn't with STS4 yet.
So, Could you provide Resin plugin to resolve this STS4 issue?
There are no notes attached to this issue.




Viewing Issue Advanced Details
6161 [Resin] minor always 05-07-18 16:12 03-05-19 11:14
wileysaw  
nam  
normal  
assigned 4.0.56  
open  
none    
none  
Download missing 64 bit mod_caucho.dll for integration with Apache
mod_caucho.dll is supplied in 32-bit version only
There are no notes attached to this issue.




Viewing Issue Advanced Details
6215 [Quercus] trivial always 02-13-19 07:22 02-13-19 07:22
vahodof  
 
normal  
new  
open  
none    
none  
'RecursiveArrayIterator' is an unknown class name
For my hobbies project I try to execute some php code from(https://github.com/jstar88/opbe) [^] and it's always throw com.caucho.quercus.QuercusErrorException: 'RecursiveArrayIterator' is an unknown class name.


Did i mist some thing or is it unsupported iterator type?


runing code:
public class Application {
    public static void main(String[] ars) throws IOException {
        QuercusEngine engine = new QuercusEngine();
        engine.setOutputStream(System.out);
        engine.executeFile("D:\\java_project\\feet-optimize\\engine\\opbe-master\\tests\\runnable\\MyTest.php");
    }
}
gradle inclide: compile group: 'com.caucho', name: 'quercus', version: '4.0.60'
custom includer.php:
 <?php
/**
 https://github.com/jstar88/opbe [^]
 */

define('OPBEPATH', "engine".DIRECTORY_SEPARATOR."opbe-master".DIRECTORY_SEPARATOR);
require (OPBEPATH.'utils'.DIRECTORY_SEPARATOR.'GeometricDistribution.php');
require (OPBEPATH.'utils'.DIRECTORY_SEPARATOR.'Gauss.php');
require (OPBEPATH.'utils'.DIRECTORY_SEPARATOR.'DebugManager.php');
require (OPBEPATH.'utils'.DIRECTORY_SEPARATOR.'IterableUtil.php');
require (OPBEPATH.'utils'.DIRECTORY_SEPARATOR.'Math.php');
require (OPBEPATH.'utils'.DIRECTORY_SEPARATOR.'Number.php');
require (OPBEPATH.'utils'.DIRECTORY_SEPARATOR.'Events.php');
require (OPBEPATH.'utils'.DIRECTORY_SEPARATOR.'Lang.php');
require (OPBEPATH.'utils'.DIRECTORY_SEPARATOR.'LangManager.php');
require (OPBEPATH.'models'.DIRECTORY_SEPARATOR.'Type.php');
require (OPBEPATH.'models'.DIRECTORY_SEPARATOR.'ShipType.php');
require (OPBEPATH.'models'.DIRECTORY_SEPARATOR.'Fleet.php');
require (OPBEPATH.'models'.DIRECTORY_SEPARATOR.'HomeFleet.php');
require (OPBEPATH.'models'.DIRECTORY_SEPARATOR.'Defense.php');
require (OPBEPATH.'models'.DIRECTORY_SEPARATOR.'Ship.php');
require (OPBEPATH.'models'.DIRECTORY_SEPARATOR.'Player.php');
require (OPBEPATH.'models'.DIRECTORY_SEPARATOR.'PlayerGroup.php');
require (OPBEPATH.'combatObject'.DIRECTORY_SEPARATOR.'Fire.php');
require (OPBEPATH.'combatObject'.DIRECTORY_SEPARATOR.'PhysicShot.php');
require (OPBEPATH.'combatObject'.DIRECTORY_SEPARATOR.'ShipsCleaner.php');
require (OPBEPATH.'combatObject'.DIRECTORY_SEPARATOR.'FireManager.php');
require (OPBEPATH.'core'.DIRECTORY_SEPARATOR.'Battle.php');
require (OPBEPATH.'core'.DIRECTORY_SEPARATOR.'BattleReport.php');
require (OPBEPATH.'core'.DIRECTORY_SEPARATOR.'Round.php');
require (OPBEPATH.'constants'.DIRECTORY_SEPARATOR.'battle_constants.php');
?>
MyTest.php (3 KB) 02-13-19 07:22
There are no notes attached to this issue.




Viewing Issue Advanced Details
4494 [Quercus] major always 04-11-11 23:31 07-27-18 04:09
lionel_hutz12 Apache Tomcat 6.0.29 Server  
Windows  
normal 7  
new 3.2.1  
open  
none    
none  
substr_count does not provide an accurate count when the search string is repeated in succession
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.
$diff_string = "aaaaa";
echo "Should produce 5, but only shows (3): " . substr_count($diff_string, "a");
    
Work around for this issue, may be to use:
preg_match_all('/a/', "aaaaa", $chunks);

which accurately prints out 5
Notes
(0005189)
kdecherf   
04-12-11 02:55   
Issue fixed on CC branch.
Patch proposal: https://github.com/CleverCloud/Quercus/commit/4f6f2f4bb3a74d68c374e71f134e8850d99ea370 [^]
(0006844)
Glynn   
07-27-18 04:09   
Thanks for posting a work around, this is still a bug in Resin Pro 4.0.55, was driving me insane.




Viewing Issue Advanced Details
6115 [Quercus] minor always 11-25-17 17:40 11-25-17 17:40
tawfik90  
 
normal  
new 4.0.36  
open  
none    
none  
com.caucho.quercus.UnimplementedException: `mb_substitute_character' has not been implemented
com.caucho.quercus.UnimplementedException: `mb_substitute_character' has not been implemented
There are no notes attached to this issue.




Viewing Issue Advanced Details
3818 [Quercus] minor always 12-17-09 18:13 10-16-17 07:33
nam  
 
normal  
new  
open  
none    
none  
(boolean) is not assignable to ArrayValue [array_map] - Mediawiki 1.15.1
(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/j2ee-modules/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/j2ee-modules/php/mediawiki/config/index.php:2152: Warning: '' (boolean) is not assignable to ArrayValue [array_map]
Notes
(0006744)
travm1   
04-06-17 21:43   
I found the a generic primer on MediaWiki if it helps anything: https://www.everipedia.com/Mediawiki/ [^]
(0006796)
thalamus   
10-16-17 07:33   
awesome thanks travm1 http://www.thalamus.co [^]




Viewing Issue Advanced Details
6083 [Quercus] crash always 08-04-17 11:43 08-04-17 11:43
michaelahlers  
 
normal  
new  
open  
none    
none  
CurlMultiResource#execute Stuck in Infinite Loop
When using curl_multi_exec, com.caucho.quercus.lib.curl.CurlMultiResource#execute is called in an infinite loop, apparently because _runningCount is never decremented as requests complete.

This is easily reproducible with the following PHP script (using Guzzle) invoked using either QuercusEngine (or any other means):

<?php
$client = new \\Guzzle\\Http\\Client('https://caucho.com'); [^]
$client->get('/')->send();
$client->get('/')->send();
?>

One request will succeed, but the script will always hang on subsequent requests.

I found that adding this statement to com.caucho.quercus.lib.curl.CurlMultiResource#removeCurl (after _curlList.remove(curl)):

if (isRemoved) {
    _runningCount--;
}

Reliably fixes the bug (however, I'm not sure what implications this might have besides).
There are no notes attached to this issue.




Viewing Issue Advanced Details
6032 [Quercus] minor always 01-11-17 06:00 01-11-17 06:00
FranckSerot  
 
normal  
new  
open  
none    
none  
[quercus / dokuwiki] quercus doesn't support sprite used in a dokuwiki project
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="/quercus-sample/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
There are no notes attached to this issue.




Viewing Issue Advanced Details
6018 [Quercus] minor always 10-18-16 23:20 10-18-16 23:20
mavens  
 
normal  
new 4.0.36  
open  
none    
none  
filter not implemented: FILTER_SANITIZE_NUMBER_INT (0)' has not been implemented
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.
exception
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/wp-includes/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
quercus-issue1.png (88 KB) 10-18-16 23:20
There are no notes attached to this issue.




Viewing Issue Advanced Details
6016 [Quercus] major random 09-12-16 07:01 09-12-16 07:01
davet  
 
normal  
new 4.0.36  
open  
none    
none  
RegexpModule$RegexpCacheItem.get(RegexpModule.java:2471) hangs
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)
threaddump.local.txt (63 KB) 09-12-16 07:01
There are no notes attached to this issue.




Viewing Issue Advanced Details
6012 [Quercus] major always 06-16-16 11:11 06-16-16 11:11
matthiasblaesing  
 
normal  
new 4.0.36  
open  
none    
none  
[PATCH] Adjust mktime implementation to align with PHP implementation
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, 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 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());
+ }
+
   }
 
   /**
There are no notes attached to this issue.




Viewing Issue Advanced Details
4626 [Quercus] minor always 06-19-11 19:55 06-02-16 12:12
rickHigh  
 
normal  
new  
open  
none    
none  
strftime does not work with %R

$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

Notes
(0005328)
rickHigh   
06-19-11 19:56   
The workaround is as follows:


$startTime = mktime(23, 0, 0, 5, 29, 2011);
$str = strftime ("%H:%M", $startTime);
(0006702)
matthiasblaesing   
06-02-16 12:12   
Implementation:

# This patch file was generated by NetBeans IDE
# It uses platform neutral UTF-8 encoding and \n newlines.
--- a/modules/kernel/src/com/caucho/util/QDate.java
+++ b/modules/kernel/src/com/caucho/util/QDate.java
@@ -1205,6 +1205,17 @@
           break;
         }
 
+ case 'R':
+ {
+ int hour = (int) (_timeOfDay / 3600000) % 24;
+ cb.append(hour / 10);
+ cb.append(hour % 10);
+ cb.append(':');
+ cb.append((_timeOfDay / 600000) % 6);
+ cb.append((_timeOfDay / 60000) % 10);
+ break;
+ }
+
       case 'W':
         int week = getWeek();
         cb.append((week + 1) / 10);




Viewing Issue Advanced Details
6010 [Quercus] minor always 06-02-16 12:00 06-02-16 12:00
matthiasblaesing  
 
normal  
new 4.0.36  
open  
none    
none  
[PATCH] Implementation of try-finally
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);
There are no notes attached to this issue.




Viewing Issue Advanced Details
5996 [Quercus] major always 04-20-16 10:38 04-26-16 10:03
ebo  
 
normal  
new  
open  
none    
none  
Ajax UTF-8 garbled
When submitting UTF-8 data via Ajax, it gets garbled in the back-end.
Notes
(0006685)
ebo   
04-20-16 10:58   
Using jQuery's Ajax() method which defaults to UTF-8.

Basically when sending a string like this: Hauptstraße 11

it gets received like this in PHP: Hauptstra&65533;e 11
(0006689)
ebo   
04-26-16 10:03   
A workaround is to set the jQuery.Ajax() setting contentType to 'application/x-www-form-urlencoded'.
The default value is 'application/x-www-form-urlencoded; charset=UTF-8'




Viewing Issue Advanced Details
5993 [Quercus] minor always 04-07-16 03:10 04-07-16 03:10
ebo  
 
normal  
new  
open  
none    
none  
php_info() showing wrong version
php_info() shows PHP as version 5.4 but I was told the current version of Quercus implements PHP 5.5
There are no notes attached to this issue.




Viewing Issue Advanced Details
5991 [Quercus] minor always 04-06-16 02:06 04-06-16 02:06
ebo  
 
normal  
new  
open  
none    
none  
apc_exists() function not implemented
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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5385 [Hessian] minor always 03-04-13 09:11 03-11-16 04:00
Moritz Lapp  
 
normal  
new 4.0.7  
open  
none    
none  
Hessian IdentityIntMap ArrayIndexOutOfBoundsException
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.
hessian-IdentityIntMap.java.patch (1 KB) 03-04-13 09:11
Notes
(0006681)
jpietka   
03-11-16 04:00   
Hello, in which next release this fix will be added?





Viewing Issue Advanced Details
5976 [Quercus] minor always 02-11-16 09:13 02-11-16 09:14
nam  
 
normal  
new  
open  
none    
none  
array out of bounds for WebApp.java ServletListener
(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;
  }
There are no notes attached to this issue.




Viewing Issue Advanced Details
3920 [Hessian] major always 02-27-10 17:54 02-08-16 23:24
aloksingh  
 
normal  
new 4.0.3  
open  
none    
none  
BigDecimal objects are incorrectly serialized
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.
Notes
(0004650)
qrilka   
07-01-10 05:46   
I'm using hessian 4.0.7
Looking into the source code shows that serilizers/deserilizers for BigDecimal are commented out (quite a strange decision from my p.o.v.) but it's quite easy to solve - just create META-INF/hessian/serializers and META-INF/hessian/deserializers with corresponding classnames. An example for that can be seen in resin.jar (for resin4)
(0004680)
p_wright   
07-22-10 09:59   
I can also confirm this with 4.0.7... the result is a BigDecimal with a value of 0.0... which causes some problems since we use BigDecimals to accurately represent sums of money.
(0004709)
groblochon   
08-13-10 01:16   
I solve this bug with adding files META-INF/hessian/serializers with 'java.math.BigDecimal=com.caucho.hessian.io.StringValueSerializer' and META-INF/hessian/deserializers with 'java.math.BigDecimal=com.caucho.hessian.io.BigDecimalDeserializer'.
(0006673)
Nathanael Sommer-Koch   
02-08-16 23:24   
We just encountered the same problem in our project. How come this issue is still not resolved after 6 years?
And why is there a Deserializer but no Serializer?
(0006674)
Nathanael Sommer-Koch   
02-08-16 23:24   
We just encountered the same problem in our project. How come this issue is still not resolved after 6 years?
And why is there a Deserializer but no Serializer?




Viewing Issue Advanced Details
5975 [Quercus] feature always 02-02-16 12:07 02-02-16 12:07
kennlee2  
 
normal  
new 4.0.36  
open  
none    
none  
Support for jsr223 Invocable interface
Quercus 4.0.36 does not support Invocable interface. Is there a plan to support it in the near future?
There are no notes attached to this issue.




Viewing Issue Advanced Details
5788 [Quercus] major always 08-19-14 21:45 01-20-16 01:53
raxis  
 
normal  
new 4.0.36  
open  
none    
none  
When inheriting protected instance variables the parent class auto created variable
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"
}
%
Appache and PHP output of the same test case

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"
}
QuercusIssue.php (1 KB) 08-19-14 21:45
Notes
(0006471)
raxis   
08-19-14 21:45   
Apologies if this is not Major
(0006472)
raxis   
08-19-14 21:52   
might be a duplicate of bug 0005765
(0006473)
raxis   
08-20-14 00:59   
Just checked the previous version.
This bug was introduced in 4.0.39


[brettdutton:...uercus-4.0-1.38/WEB-INF/lib]$ java -cp cdi-16.jar:javaee-16.jar:javamail-141.jar:resin.jar com.caucho.quercus.CliQuercus /Users/brettdutton/Sites/voodoo/QuercusIssue.php
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"
}
% [brettdutton:...uercus-4.0-1.38/WEB-INF/lib]$
(0006474)
raxis   
08-20-14 01:17   
Tried the latest build quercus-4.0.s140820

and this bug exists here as well

brettdutton:...cus-4.0.s140820/WEB-INF/lib]$ java -cp javamail-141.jar:quercus.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"
}
% [brettdutton:...cus-4.0.s140820/WEB-INF/lib]$ pwd
/Users/brettdutton/Downloads/quercus-4.0.s140820/WEB-INF/lib
(0006672)
raxis   
01-20-16 01:53   
This can be closed.

I have tested with 4.0.47 and it is working




Viewing Issue Advanced Details
5973 [Quercus] crash sometimes 01-14-16 13:28 01-14-16 13:28
bjpeter  
 
normal  
new  
open  
none    
none  
IndexOutOfBoundsException
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
After looking at the source code for the PDOStatement class (version 4.0.39), I noticed there is 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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5970 [Quercus] minor always 01-12-16 17:06 01-12-16 17:06
nam  
 
normal  
new  
open  
none    
none  
misleading IllegalStateException if webapp took longer than 60s to start
(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)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5932 [Quercus] major always 08-03-15 09:50 01-05-16 12:18
tobia  
 
normal  
new 4.0.36  
open  
none    
none  
NPE when including a newly created file
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.
test2.php (0 KB) 08-03-15 09:50
Notes
(0006646)
tobia   
08-04-15 08:26   
As a followup, I ran a bisect and found out that the bug was introduced between 4.0.38 and 4.0.39, in particular between r10174 and r10175. Therefore the bug was introduced as part of r10175, "quercus initial refactor of private methods/fields".

The problem seems to happen when a file that was just created (e.g. using "file_put_contents") is included (using "include") from inside a class method and the included file uses "$this". This is commonly used by templating engines, which fail to run under recent Quercus versions (since january 2014.)

If the included file is already present in the filesystem, the include seems to work.

When it fails (see attached test script, which fails every time) the problem is that the parser creates ThisExpr with _classDef = null and this causes a NPE later on when ThisFieldExpr.eval is called.

Here is the stacktrace of the creation, where the parses passes null (line numbers are relative to r10175):

ThisExpr.<init>(InterpretedClassDef) line: 51
ExprFactory.createThis(InterpretedClassDef) line: 240
QuercusParser.parseVariable() line: 3921
...

I haven't been able to find a workaround.
(0006658)
tobia   
10-26-15 05:02   
I have run into this bug again: another way to trigger it is to put an eval() in a class constructor and have the evaluated code try to use $this to call a method on the object being constructed.

It's an intermittent or "cold" bug, meaning that after a while it goes away on its own. But a servlet restart brings it up again.
(0006670)
am-immanuel   
01-05-16 12:18   
Please check, whether https://github.com/am-immanuel/quercus/releases/tag/4.0.47 [^] fixes this issue. Then I can provide a minimal patch for fixing this bug.




Viewing Issue Advanced Details
5965 [Quercus] major always 11-30-15 19:37 11-30-15 19:37
don_oles  
 
normal  
new 4.0.36  
open  
none    
none  
QuercusCompiledScript doesn't flush writer
This is essentially the same problem as 0001914. The QuercusScriptEngine.eval() now does writer.flush() in the end, but QuercusCompiledScript.eval() is not.

There are no notes attached to this issue.




Viewing Issue Advanced Details
5963 [Quercus] minor always 11-18-15 13:21 11-18-15 13:21
nam  
 
normal  
new  
open  
none    
none  
Quercus is constantly recompiling php files on Windows 10
(rep by M. Serett)

\test.php source is deleted
\test.php digest is modified
There are no notes attached to this issue.




Viewing Issue Advanced Details
5961 [Quercus] minor always 11-10-15 08:03 11-11-15 02:10
Glynn  
 
normal  
new  
open  
none    
none  
Resin 4.0.46 - Quercus doesn't recompile PHP files edited
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.
Only occurs on the office's Windows machines all running Windows 8.1

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>
Notes
(0006662)
Glynn   
11-11-15 02:10   
Using Windows 8 64-bit Java 1.8.0_45-b15

After some more research

In Resin 4.0.28-4.0.45 Pro Quercus recompiles our php files on every refresh

As of Resin 4.0.46 Pro Quercus no longer compiles any php files after the first instance.




Viewing Issue Advanced Details
5667 [Quercus] minor always 02-20-14 10:21 10-22-15 04:48
nam  
 
normal  
new  
open  
none    
none  
Zend Framework 2 demo application not working
(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]'
Notes
(0006657)
mikenino   
10-22-15 04:48   
What is the status of this ticket? Most PHP Developers would agree that support for Zend Framework 2 is a necessary demonstration of Resion/Caucho accepting native PHP.





Viewing Issue Advanced Details
5935 [Baratine] minor always 08-14-15 11:43 08-14-15 11:43
nam  
 
normal  
new  
open  
none    
none  
Malformed escape pair at index 30: bartender://fe80:0:0:0:0:0:0:1%lo0:54871/bartender [^]
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[fe80:0:0:0:0:0:0:1%lo0:8085]]]]] java.lang.RuntimeException: java.net.URISyntaxException: Malformed escape pair at index 30: bartender://fe80:0:0:0:0:0:0:1%lo0:54871/bartender [^]
java.lang.RuntimeException: java.net.URISyntaxException: Malformed escape pair at index 30: bartender://fe80:0:0:0:0:0:0:1%lo0:54871/bartender [^]
    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)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5928 [Quercus] block always 07-27-15 23:12 07-30-15 06:43
weich  
 
normal  
new 4.0.36  
open  
none    
none  
serialize/unserialize unicode(CJK) string yields unkown characters sometimes.
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;

    System.arraycopy(bytes, 0, _buffer, 0, len);
}
api.php (0 KB) 07-30-15 06:29
test.php (1 KB) 07-30-15 06:41
Notes
(0006645)
weich   
07-30-15 06:43   
step to reproduce:
open the test.php in browser. click "&26356;&26032;"&65292; and you will see the serialized string at the page end.




Viewing Issue Advanced Details
5931 [Quercus] minor always 07-29-15 16:02 07-29-15 16:02
nam  
 
normal  
new 4.0.36  
open  
none    
none  
query params missing from resin-forwarded url
(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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5924 [Baratine] minor always 07-02-15 12:39 07-02-15 12:39
alex  
 
normal  
new 0.9.0  
open  
none    
none  
javax.script should work with detached classloader
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)
    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);
There are no notes attached to this issue.




Viewing Issue Advanced Details
5922 [Baratine] minor always 06-30-15 12:44 06-30-15 12:44
alex  
 
normal  
new 0.9.0  
open  
none    
none  
multipod deployment
baratine/807c
baratine/807d
There are no notes attached to this issue.




Viewing Issue Advanced Details
5917 [Quercus] feature always 06-13-15 10:21 06-13-15 10:21
akashpaul12  
 
normal  
new 4.0.35  
open  
none    
none  
c:\resin\webapps\ROOT\World.php:5: Fatal Error: 'hello_test' is an unknown function.
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
There are no notes attached to this issue.




Viewing Issue Advanced Details
5911 [Baratine] minor always 05-25-15 12:14 05-25-15 12:14
alex  
 
normal  
new 0.9.0  
open  
none    
none  
ClassCastException: ChannelServerJampRpc cannot be cast to ChannelServerJamp
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)
baratine/2572
There are no notes attached to this issue.




Viewing Issue Advanced Details
5899 [Quercus] major always 05-13-15 00:37 05-13-15 00:37
preetijaiswal  
 
normal  
new  
open  
none    
none  
Unable to install themes in wordpress using Quercus
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
There are no notes attached to this issue.




Viewing Issue Advanced Details
5897 [Baratine] minor always 05-07-15 19:16 05-11-15 17:35
nam  
 
normal  
new  
open  
none    
none  
StackOverflow in MarshalBean.convert()
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 java.lang.Throwable.printStackTrace(Throwable.java:658)
    at java.lang.Throwable.printStackTrace(Throwable.java:643)
    at java.lang.Throwable.printStackTrace(Throwable.java:634)
    at com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:196)
    at com.caucho.amp.marshal.MarshalBean$MarshalFieldObject.convert(MarshalBean.java:361)
    at com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:187)
    at com.caucho.amp.marshal.MarshalBean$MarshalFieldObject.convert(MarshalBean.java:361)
    at com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:187)
    at com.caucho.amp.marshal.MarshalBean$MarshalFieldObject.convert(MarshalBean.java:361)
    at com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:187)
    at com.caucho.amp.marshal.MarshalBean$MarshalFieldObject.convert(MarshalBean.java:361)
    at com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:187)
    at com.caucho.amp.marshal.MarshalBean$MarshalFieldObject.convert(MarshalBean.java:361)
    at com.caucho.amp.marshal.MarshalBean.convert(MarshalBean.java:187)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5896 [Baratine] minor always 05-06-15 22:00 05-06-15 22:05
nam  
 
normal  
new  
open  
none    
none  
Result.complete(HashMap) returns an empty Map
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)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5889 [Baratine] minor always 04-29-15 15:44 04-29-15 15:44
alex  
 
normal  
new 0.8.8  
open  
none    
none  
baratine ls /usr shows no sub-directories
should show lib
There are no notes attached to this issue.




Viewing Issue Advanced Details
5888 [Baratine] minor always 04-28-15 15:27 04-28-15 15:27
nam  
 
normal  
new  
open  
none    
none  
better support for deleting child resources from services
/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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5887 [Baratine] minor always 04-28-15 12:56 04-28-15 12:56
nam  
 
normal  
new  
open  
none    
none  
exception in @OnLoad doesn't complete JAMP request
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
There are no notes attached to this issue.




Viewing Issue Advanced Details
5882 [Quercus] feature always 04-16-15 14:32 04-19-15 10:18
minemaz  
 
normal  
new  
open  
none    
none  
can't overwrite protected member value (on quercus-4.0.39)
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=
Notes
(0006626)
minemaz   
04-19-15 10:18   
I want to close this chicket
so it is works fine on quercus-4.0.43.




Viewing Issue Advanced Details
5883 [Quercus] major always 04-17-15 01:38 04-17-15 01:38
bfx  
 
normal  
new  
open  
none    
none  
quercus-4.0.42.war, Wordpress 4.1.1 fault with more than 1 page
- 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

root cause

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)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5879 [Baratine] minor always 04-14-15 18:15 04-14-15 18:15
alex  
 
normal  
new 0.8.8  
open  
none    
none  
kraken: where clause (float) obj.field.subfield between (?,?)
kraken/2812
There are no notes attached to this issue.




Viewing Issue Advanced Details
5878 [Baratine] minor always 04-14-15 18:13 04-14-15 18:13
alex  
 
normal  
new 0.8.8  
open  
none    
none  
NPE: kraken/2813
NPE: kraken/2813
There are no notes attached to this issue.




Viewing Issue Advanced Details
5805 [Quercus] major always 09-29-14 16:45 03-23-15 20:13
kazssym  
 
normal  
new  
open  
none    
none  
StackOverflowError with WordPress 4.0
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)
...
Notes
(0006592)
kazssym   
03-23-15 20:13   
It still happens with WordPress 4.1.1. Is there an option to track such a runtime error to the original PHP code?




Viewing Issue Advanced Details
5797 [Quercus] minor always 09-12-14 11:24 02-15-15 01:15
nam  
 
normal  
new  
open  
none    
none  
timezone_transitions_get() not implemented
(rep by Y. Zhao)

For wordpress.
timezone_transitions_get-patch.diff (5 KB) 02-14-15 23:16
timezone_transitions_get-patch2.diff (5 KB) 02-15-15 01:13
Notes
(0006588)
kazssym   
02-14-15 23:21   
I tried to implement the timezone_transitions_get function for WordPress to work with named timezones (patch uploaded). My implementation just searches for the next transition in one year and return the only one found, which is the only transition needed by WordPress.
(0006589)
kazssym   
02-15-15 01:15   
The first patch has a problem to detect a transition correctly. The patch2 replaces the first one.




Viewing Issue Advanced Details
5852 [Quercus] major always 02-14-15 17:30 02-14-15 17:30
kazssym  
 
normal  
new  
open  
none    
none  
[RFE] Implement simplexml_import_dom in Quercus
Since simplexml_import_dom is not implemented, I could not import WordPress posts to WordPress on Quercus.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5831 [Baratine] minor always 11-21-14 14:16 11-21-14 14:16
ferg  
 
normal  
new  
open  
none    
none  
jvm-args not being picked up
(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 ....
There are no notes attached to this issue.




Viewing Issue Advanced Details
5829 [Baratine] minor always 11-20-14 10:09 11-20-14 10:09
ferg  
 
normal  
new  
open  
none    
none  
deployment extlib
(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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5827 [Quercus] minor always 11-18-14 01:56 11-18-14 01:56
maxnoe  
 
normal  
new 4.0.36  
open  
none    
none  
ReflectionMethod alternative constructor not supported
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
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__);
There are no notes attached to this issue.




Viewing Issue Advanced Details
5823 [Quercus] block always 11-10-14 06:19 11-10-14 06:19
extremia  
Windows  
normal 7  
new 4.0.36  
open  
none    
none  
Fatal Error: Can't use object 'com.caucho.quercus.lib.db.MysqliResult' as array
[14-11-10 15:58:47.052] {resin-port-8080-51} c:\Java\resin-pro-4.0.41\webapps\ROOT\webwidget\tilaus.yhteenveto.php:21: Fatal Error: Can't use object 'com.caucho.quercus.lib.db.MysqliResult' as array
Example code:

$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' : '';
There are no notes attached to this issue.




Viewing Issue Advanced Details
5816 [Baratine] minor always 10-28-14 09:11 10-28-14 09:11
ferg  
 
normal  
new  
open  
none    
none  
command shell enhancements
(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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5804 [Quercus] minor always 09-28-14 03:54 09-28-14 03:54
kazssym  
 
normal  
new  
open  
none    
none  
curl_setopt with CURLOPT_CAINFO not implemented
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.
WordPress uses the following certificate for server verification:

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/emailAddress=pki@sk.ee
        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/emailAddress=pki@sk.ee
        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
There are no notes attached to this issue.




Viewing Issue Advanced Details
5801 [Baratine] minor always 09-24-14 13:35 09-24-14 13:35
nam  
 
normal  
new  
open  
none    
none  
ClientHamp websocket ConcurrentModificationException
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
There are no notes attached to this issue.




Viewing Issue Advanced Details
5798 [Quercus] major always 09-16-14 20:44 09-18-14 00:12
kazssym  
 
normal  
new  
open  
none    
none  
Quercus 4.0.39 undeployable to GlassFish Server 4
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.
My modified version is available at <https://bitbucket.org/kazssym/quercus-maven>. [^]
Notes
(0006532)
kazssym   
09-18-14 00:12   
The URL should not include > and . of course: https://bitbucket.org/kazssym/quercus-maven [^]




Viewing Issue Advanced Details
5791 [Quercus] block always 09-01-14 21:23 09-01-14 22:11
schigurupati  
 
normal  
new  
open  
none    
none  
Highest Priority : accessing an attribute on $this is causing NPE
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.
sudheer.zip (0 KB) 09-01-14 21:23
Notes
(0006481)
schigurupati   
09-01-14 22:08   
Please deploy my code into Quercus and access 1.php to see the error.
(0006482)
schigurupati   
09-01-14 22:11   
I am facing problem with using mpdf to genernate a PHP, because of this issue.
Please let me know if I need to just enable any configuration.

This would help me like anything.
Please look into this with highest prority.




Viewing Issue Advanced Details
5772 [Quercus] major always 07-07-14 04:04 07-07-14 19:04
luye66  
 
normal  
new 4.0.36  
open  
none    
none  
Var function is not supported&65311;
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)
Notes
(0006461)
luye66   
07-07-14 19:04   
I should apologize for reporting this var function is supported..I got a mistake .
apologize for this again ..close it thanks




Viewing Issue Advanced Details
5774 [Quercus] major always 07-07-14 06:45 07-07-14 06:45
felfert  
 
normal  
new  
open  
none    
none  
SVNRev: 10251: Several SPL iterators not implemented, resulting in failures of Zend >= 1.11.9
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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5773 [Quercus] trivial always 07-07-14 04:42 07-07-14 04:42
felfert  
 
normal  
new  
open  
none    
none  
context parameter of custom PHP errror handler should be of type array
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-error-handler.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)
{
 ...
}
The attached patch fixes this problem.
resin-svn-quercus-errorhanderinvocation.diff (1 KB) 07-07-14 04:42
There are no notes attached to this issue.




Viewing Issue Advanced Details
3570 [Quercus] feature always 06-19-09 02:36 07-07-14 01:34
moghrabi  
 
normal  
new 3.2.1  
open  
none    
none  
UnimplementedException during installation of SPIP
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)

Tomcat 5.5.17
Quercus 3.2.1
JDK Sun 1.5.0_14
OS Solaris 10
quercus.log (12 KB) 06-19-09 02:36
charsets.php (23 KB) 06-19-09 02:45
Notes
(0004085)
moghrabi   
06-19-09 02:45   
I've added the file /opt/appserver/val/ValQuecus/webapps/autoload/spip.war/ecrire/inc/charsets.php from which the exception is thrown.
(0006460)
lewellyn   
07-07-14 01:34   
I just ran into this same exception while doing some string manipulation.

If this isn't going to be implemented in the foreseeable future, can the JavaDoc for the unimplemented mb_* functions be amended to note that they're not yet supported by Quercus? (It might spur some of us to try our hands at implementing them and submitting bugs with patches...)

I had expected that these functions were there since the multi-byte stuff showed up way back in Resin 3.1.0 and I am seeing this exception in 4.0.40.

Thanks. :)




Viewing Issue Advanced Details
5771 [Quercus] minor always 07-04-14 10:06 07-04-14 10:06
tobia  
 
normal  
new  
open  
none    
none  
ReflectionClass lacks getInterfaceNames()
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 [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5770 [Quercus] minor always 07-04-14 09:55 07-04-14 09:55
tobia  
 
normal  
new  
open  
none    
none  
spl_autoload_functions() returns a list of strings that are not plain method names
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 [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5769 [Quercus] minor always 07-04-14 09:47 07-04-14 09:47
tobia  
 
normal  
new  
open  
none    
none  
substr() with a negative 2nd argument larger than the string length
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-class-Doctrine.ORM.Mapping.DefaultQuoteStrategy.html#134 [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5768 [Quercus] minor always 07-04-14 09:37 07-04-14 09:37
tobia  
 
normal  
new  
open  
none    
none  
ReflectionClass->getProperties() with an argument raises a warning
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.doctrine-project.org/api/common/2.2/source-class-Doctrine.Common.Annotations.DocParser.html#445 [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5767 [Quercus] minor always 07-04-14 09:00 07-04-14 09:00
tobia  
 
normal  
new  
open  
none    
none  
Multiple names per single "use" keyword
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-class-Doctrine.Common.Collections.Collection.html#22 [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5759 [Baratine] minor always 06-19-14 08:27 06-19-14 08:27
ferg  
 
normal  
new  
open  
none    
none  
add undeploy command.
Baratine needs support for undeploy.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5758 [Baratine] minor always 06-19-14 08:27 06-19-14 08:27
ferg  
 
normal  
new  
open  
none    
none  
@AfterBatch configuration
Add limits to the batching size:"What if @AfterBatch is never called because the inbox is never
empty? (Would like a configurable option)"
There are no notes attached to this issue.




Viewing Issue Advanced Details
5754 [Baratine] minor always 06-14-14 16:47 06-14-14 16:47
nam  
 
normal  
new  
open  
none    
none  
create a maven archetype for baratine
To make it easy to create a skeleton service.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5751 [Quercus] minor always 06-11-14 04:46 06-11-14 04:46
nam  
 
normal  
new  
open  
none    
none  
utf8 is garbled for postgres
(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
There are no notes attached to this issue.




Viewing Issue Advanced Details
5750 [Quercus] minor always 06-10-14 12:19 06-10-14 12:19
nam  
 
normal  
new  
open  
none    
none  
RecursiveFilterIterator is not implemented
(rep by P. Cliff)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5746 [Quercus] minor always 06-03-14 13:04 06-03-14 13:04
nam  
 
normal  
new  
open  
none    
none  
wordpress plugin.php ArgGetValue UnsupportedOperationException
(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/wp-includes/plugin.php:426)

[14-05-29 12:24:49.090] {resin-port-80-48} Quercus[/opt/www/resin-pro-4.0.39/webapps/lbs/wp-content/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
There are no notes attached to this issue.




Viewing Issue Advanced Details
5743 [Baratine] minor always 06-02-14 21:48 06-02-14 21:48
nam  
 
normal  
new  
open  
none    
none  
doc: explain threading in detail
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."
There are no notes attached to this issue.




Viewing Issue Advanced Details
5742 [Baratine] minor always 06-02-14 21:45 06-02-14 21:45
nam  
 
normal  
new  
open  
none    
none  
doc: better explain proxy async support
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"
There are no notes attached to this issue.




Viewing Issue Advanced Details
5739 [Baratine] minor always 05-29-14 09:11 05-29-14 09:11
nam  
 
normal  
new  
open  
none    
none  
can't inject ResourceManager
@ResourceService("public:///query") [^]
public class AuctionQueryServiceImpl implements AuctionQueryService
{
  @Inject
  @Lookup("public:///auction") [^]
  private ResourceManager _manager;
There are no notes attached to this issue.




Viewing Issue Advanced Details
5738 [Baratine] minor always 05-29-14 09:10 05-29-14 09:10
nam  
 
normal  
new  
open  
none    
none  
com.caucho.jmx.Jmx.find() does not work with new server-ip'ed names
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"
There are no notes attached to this issue.




Viewing Issue Advanced Details
5730 [Quercus] minor always 05-04-14 13:07 05-04-14 13:07
nam  
 
normal  
new  
open  
none    
none  
FILTER_VALIDATE_URL not implemented
(rep by N. Osmani)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5728 [Quercus] minor always 05-01-14 15:03 05-01-14 15:03
nam  
 
normal  
new  
open  
none    
none  
__get()/__set() doesn't work for private parent fields
(rep by M. Dykman)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5720 [Quercus] minor always 04-29-14 22:01 04-29-14 22:02
nam  
 
normal  
new  
open  
none    
none  
get_defined_constants() needs to accept one argument
(rep by G. Krall)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5721 [Quercus] minor always 04-29-14 22:02 04-29-14 22:02
nam  
 
normal  
new  
open  
none    
none  
ini_get_all() needs to accept two arguments
(rep by G. Krall)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5719 [Quercus] minor always 04-17-14 09:26 04-17-14 09:26
nam  
 
normal  
new  
open  
none    
none  
stream_get_contents() is not seeking to specified offset
(rep by G. Krall)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5712 [Documentation] minor always 04-08-14 10:43 04-08-14 10:43
nam  
 
normal  
new  
open  
none    
none  
centering of caucho.com pages
The content of the secondary pages (Pricing, Services, etc) is not centered on my widescreen. The header footer are ok though.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5710 [Quercus] minor always 04-07-14 00:29 04-07-14 00:51
nam  
 
normal  
new  
fixed  
none    
none  
stream_get_meta_data() does not work with php://temp [^] streams
(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" [^]
}
Notes
(0006426)
nam   
04-07-14 00:39   
stubbed "seekable" to true




Viewing Issue Advanced Details
5695 [Baratine] minor always 03-17-14 21:51 03-17-14 21:51
nam  
 
normal  
new  
open  
none    
none  
go through a delete example with output
http://doc.baratine.io/v0.8/articles/baratine/#programming-and-deployment-introduction [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5694 [Baratine] minor always 03-17-14 21:50 03-17-14 21:50
nam  
 
normal  
new  
open  
none    
none  
surround the JDK8 callback with print statements to highlight nonblocking
http://doc.baratine.io/v0.8/articles/baratine/#resource-creation [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5693 [Baratine] minor always 03-17-14 21:45 03-17-14 21:45
nam  
 
normal  
new  
open  
none    
none  
give example ouput for automatically-created resources
http://doc.baratine.io/v0.8/articles/baratine/#resource-creation [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5692 [Baratine] minor always 03-17-14 21:43 03-17-14 21:43
nam  
 
normal  
new  
open  
none    
none  
explain ResourceService indexing for queries
http://doc.baratine.io/v0.8/articles/baratine/#resource-query [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5691 [Baratine] minor always 03-17-14 21:40 03-17-14 21:40
nam  
 
normal  
new  
open  
none    
none  
explain what happens if the put _id is different from the URL _id
http://doc.baratine.io/v0.8/articles/baratine/#resource-updates [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5690 [Baratine] minor always 03-17-14 21:38 03-17-14 21:38
nam  
 
normal  
new  
open  
none    
none  
need to better explain that service resources are different instances
http://doc.baratine.io/v0.8/articles/baratine/#resource-collections [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5689 [Baratine] minor always 03-17-14 21:36 03-17-14 21:36
nam  
 
normal  
new  
open  
none    
none  
need to introduce and explain the singleton service
http://doc.baratine.io/v0.8/articles/baratine/#programming-and-deployment-introduction [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5688 [Baratine] minor always 03-17-14 21:35 03-17-14 21:35
nam  
 
normal  
new  
open  
none    
none  
need to clarify @Modify for modifying service fields
http://doc.baratine.io/v0.8/articles/baratine/#persistent-resources [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5680 [Documentation] minor always 03-08-14 22:59 03-08-14 22:59
rmann  
 
normal  
new  
open  
none    
none  
Mantis product version popup missing versions
It only has 3.x version numbers available.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5679 [Documentation] minor always 03-08-14 22:58 03-08-14 22:58
rmann  
 
normal  
new  
open  
none    
none  
WIki page has broken formatting
http://wiki4.caucho.com/Resin_4_CDI_Dependency_Injection_Binding_Examples [^]

Lots of visible HTML tags.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5677 [Quercus] minor always 03-05-14 09:52 03-05-14 09:52
nam  
 
normal  
new  
open  
none    
none  
implement SimpleXMLIterator
(rep by M. Dykman)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5675 [Quercus] minor always 02-28-14 14:02 02-28-14 14:20
nam  
 
normal  
new  
open  
none    
none  
wordpress-3.5.1 does not work with Undertow servlet engine
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']);
There are no notes attached to this issue.




Viewing Issue Advanced Details
5666 [Quercus] minor always 02-20-14 10:19 02-20-14 10:19
nam  
 
normal  
new  
open  
none    
none  
implement SplPriorityQueue and SplStack
(rep by Adam)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5664 [Quercus] minor always 02-19-14 02:53 02-19-14 02:53
nam  
 
normal  
new  
open  
none    
none  
implement DirectoryIterator->isDot()
(rep by M. McHugh)

For phpMyFaq.
There are no notes attached to this issue.




Viewing Issue Advanced Details
3996 [Quercus] feature always 04-14-10 17:57 02-10-14 09:40
emil  
 
high  
new 4.0.6  
open  
none    
none  
memcache support
(req by Janos)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5651 [Quercus] minor always 02-06-14 14:29 02-06-14 14:31
nam  
 
normal  
new  
open  
none    
none  
quercus pro WAR does not recognize licenses
(rep by I. Martiniez)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5634 [Quercus] minor always 01-17-14 11:07 01-17-14 11:07
nam  
 
normal  
new 4.0.36  
open  
none    
none  
use Apache HttpClient for CURL in order to support SSL client certificates
(rep by R. Mann)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5580 [Quercus] minor always 11-07-13 14:17 01-14-14 09:49
alex  
 
normal  
new 4.0.36  
open  
none    
none  
PHP: PDOStatement->rowCount()
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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5610 [Quercus] minor always 12-10-13 14:48 01-14-14 09:48
alex  
 
normal  
new 4.0.37  
open  
none    
none  
Quercus servlet: file path calculation error
Windows:

[13-12-10 18:03:05.417] {main} Resin-4.0.37 (built Thu, 05 Sep 2013 08:04:12 PDT)
[13-12-10 18:03:05.417] {main}
[13-12-10 18:03:05.417] {main} Windows Server 2008 R2 6.1 amd64
[13-12-10 18:03:05.417] {main} Java(TM) SE Runtime Environment 1.6.0_27-b07, Cp1252, en
[13-12-10 18:03:05.417] {main} Java HotSpot(TM) 64-Bit Server VM 20.2-b06, 64, mixed mode, Sun Microsystems Inc.
[13-12-10 18:03:05.417] {main}
[13-12-10 18:03:05.417] {main} user.name = SYSTEM
[13-12-10 18:03:05.542] {main}
[13-12-10 18:03:06.058] {main} server listening to 127.0.0.1:6800
[13-12-10 18:03:06.073] {main}
[13-12-10 18:03:06.120] {main} Table[mnode:2] validating indexes due to unclean shutdown.
[13-12-10 18:03:06.151] {main} mnode active
[13-12-10 18:03:06.167] {main} Table[data:3] validating indexes due to unclean shutdown.
[13-12-10 18:03:06.167] {main} data active
[13-12-10 18:03:06.183] {main} ServletService[id=app-0,cluster=app] starting
[13-12-10 18:03:06.183] {main}
[13-12-10 18:03:06.183] {main} resin.home = \WorkerRole1\resin-4.0.37
[13-12-10 18:03:06.183] {main} resin.root = \WorkerRole1\resin-4.0.37
[13-12-10 18:03:06.183] {main} resin.conf = \WorkerRole1\resin-4.0.37\conf\resin.xml


note double resin.home prefix in the path to login.php
[13-12-10 18:05:21.196] {resin-port-8080-26} Quercus[/E:/WorkerRole1/resin-4.0.37/WorkerRole1/resin-4.0.37/doc/admin/login.php] parsing page
There are no notes attached to this issue.




Viewing Issue Advanced Details
5628 [Quercus] minor always 01-03-14 14:07 01-03-14 14:07
nam  
 
normal  
new  
open  
none    
none  
imagetruecolortopalette() not implemented
(rep by markia511)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5586 [Quercus] minor always 11-12-13 13:44 11-12-13 13:44
JFM  
 
normal  
new 4.0.36  
open  
none    
none  
DomDocument UTF-8 Encoding problem

Quercus War 4.0.37
java version "1.7.0_40"
import java.io.IOException;

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);" );
                */

    }

}
There are no notes attached to this issue.




Viewing Issue Advanced Details
5585 [Baratine] minor always 11-11-13 15:09 11-11-13 15:09
nam  
 
normal  
new 0.8.0  
open  
none    
none  
store loses all items when redeploying WAR file
(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/
There are no notes attached to this issue.




Viewing Issue Advanced Details
5577 [Documentation] minor always 11-03-13 13:36 11-03-13 13:36
nam  
 
normal  
new  
open  
none    
none  
need to explain load-balance-weight in depth
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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5576 [Documentation] minor always 11-03-13 13:34 11-03-13 13:34
nam  
 
normal  
new  
open  
none    
none  
<resin:LoadBalance> strategy and sticky-session config not documented in depth
http://www.caucho.com/resin-4.0/admin/cluster-load-balancer.xtp [^]

strategy: round-robin, least-connection, adaptive
sticky-session: true/false
There are no notes attached to this issue.




Viewing Issue Advanced Details
5556 [Baratine] minor always 10-16-13 19:08 10-22-13 11:03
nam  
 
normal  
new 5.0  
open  
none    
none  
keepalive overflow and resin becomes unresponsive
(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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5507 [Baratine] minor always 08-23-13 07:09 10-22-13 10:42
nam  
 
normal  
new 7.0.0  
open  
none    
none  
makai service cannot access its own non-public static inner classes
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)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5508 [Baratine] minor always 08-23-13 07:10 10-22-13 10:41
nam  
 
normal  
new 7.0.0  
open  
none    
none  
no console logging for when non-startup makai service fails to start up
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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5527 [Baratine] minor always 09-11-13 16:12 10-22-13 10:41
nam  
 
normal  
new 7.0.0  
open  
none    
none  
baratine debugging issues
There are four main scenarios:

  1) Result but not ResultWithFailure
  2) application failures
  3) network failures
  4) 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.)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5546 [Baratine] minor always 10-07-13 15:56 10-22-13 10:39
nam  
 
normal  
new  
open  
none    
none  
need ability to intercept (jamp) websocket messages
(rep by J. Willis)

We need something like a servlet filter that intercepts each WebSocket message received or sent.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5547 [Baratine] minor always 10-07-13 16:24 10-22-13 10:38
nam  
 
normal  
new  
open  
none    
none  
throw exception if jamp is serializing/deserializing long value greater than N/M
(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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5553 [Hessian] minor always 10-11-13 03:30 10-11-13 03:30
mbutov  
 
normal  
new 4.0.28  
open  
none    
none  
Deserialization fails if there are fields of the same name in the class and its superclass.
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
There are no notes attached to this issue.




Viewing Issue Advanced Details
5538 [Quercus] major always 10-02-13 03:34 10-02-13 03:34
Yury  
 
normal  
new 4.0.36  
open  
none    
none  
CRLF Injection in Resin 4.0.37 and earlier
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-XSS-Protection: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.
The vulnerability was discovered by Sergey Bobrov (Positive Technologies company)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5534 [Quercus] minor always 09-24-13 15:05 09-24-13 15:05
nam  
 
normal  
new  
open  
none    
none  
auto_prepend_file does not work via Quercus command line client
(rep by M. Yamaguchi)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5533 [Quercus] minor always 09-24-13 14:51 09-24-13 14:51
nam  
 
normal  
new  
open  
none    
none  
allow specifying php.ini file to Quercus command line client
(rep by M. Yamaguchi)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5526 [Quercus] minor always 09-10-13 23:50 09-11-13 00:06
nam  
 
normal  
new 4.0.36  
open  
none    
none  
constant recompiling of PHP files in Windows
(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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5511 [Quercus] major always 08-28-13 13:22 08-28-13 13:22
jpalmisa  
 
normal  
new 4.0.36  
open  
none    
none  
unserialize() fails with IOException when unserializing PHP class the implements Serializabe
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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5509 [Quercus] minor always 08-23-13 22:57 08-23-13 22:57
awebdeveloper  
 
normal  
new 4.0.36  
open  
none    
none  
PDO::ERRMODE_SILENT not honored
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."
There are no notes attached to this issue.




Viewing Issue Advanced Details
5505 [Quercus] minor always 08-22-13 08:35 08-22-13 09:06
nam  
nam  
normal  
assigned 4.0.36  
open  
none    
none  
parse_ini_string() not implemented
for Joomla 3.1
There are no notes attached to this issue.




Viewing Issue Advanced Details
5503 [Quercus] minor always 08-22-13 07:53 08-22-13 07:53
nam  
 
normal  
new 4.0.36  
open  
none    
none  
missing interface SplSubject for phpMyAdmin
(rep by alexweb)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5497 [Hessian] feature always 08-14-13 02:45 08-14-13 02:45
JoergV  
 
normal  
new 4.0.28  
open  
none    
none  
Support for GZIP compression
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.
A possible solution:

HessianProxy.java:

conn.addHeader("Accept-Encoding", "gzip, deflate");

HessianURLConnection.java:

    if ("gzip".equals(contentEncoding))
    {
        return new GZIPInputStream(_conn.getInputStream());
    }
    return _conn.getInputStream();

There are no notes attached to this issue.




Viewing Issue Advanced Details
5491 [Quercus] feature N/A 07-22-13 13:42 07-23-13 09:20
mcarbonneaux  
 
normal  
new 4.0.36  
open  
none    
none  
Quercus : SOAP/HEssian support
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 !
There are no notes attached to this issue.




Viewing Issue Advanced Details
5487 [Hessian] block always 07-11-13 00:29 07-11-13 00:55
sander  
 
normal  
new 4.0.7  
open  
none    
none  
issue 5239 is not fixed .ArrayIndexOutOfBoundsException
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)


Notes
(0006285)
sander   
07-11-13 00:55   
geez I missed 0005385...
but this is not minor to us and Math.abs is likely to yield hash collisions reducing efficiency




Viewing Issue Advanced Details
3801 [Hessian] minor always 12-07-09 08:13 07-04-13 01:26
alex  
 
normal  
new 4.0.2  
open  
none    
none  
hessian with enum
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 narrowed the bug down to the following very specific trigger conditions.
The list must contain at least 3 items.
The first two items shall have the same value for the enum.
The 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 in java 6:
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 narrowed the bug down to the following very specific trigger conditions.
The list must contain at least 3 items.
The first two items shall have the same value for the enum.
The 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.
Notes
(0006282)
sdeleuze   
07-04-13 01:26   
Same issue here with Hessian 4.0.7.




Viewing Issue Advanced Details
5471 [Documentation] minor always 06-21-13 11:27 06-21-13 11:27
rickHigh  
 
normal  
new  
open  
none    
none  
SSL Documentation problems
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-pro-7.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/

There are no notes attached to this issue.




Viewing Issue Advanced Details
5458 [Documentation] major have not tried 06-14-13 07:54 06-14-13 07:54
xt  
 
normal  
new 3.1.3  
open  
none    
none  
network problem
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
configureing netframes and connection drops on utube ect
There are no notes attached to this issue.




Viewing Issue Advanced Details
5453 [Quercus] feature always 06-06-13 14:49 06-06-13 14:49
mcarbonneaux  
 
normal  
new 4.0.35  
open  
none    
none  
hablity to use JNA like Jruby or Jython
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 [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5438 [Quercus] minor always 05-08-13 05:43 05-08-13 05:43
qumo  
 
normal  
new 4.0.35  
open  
none    
none  
Implement libxml additional constants and functions
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
OS: Centos 6.4 x86_64
Server: Glassfish 3.1.2
java: Sun jdk-6u45-linux-x64-rpm
zbx_export_hosts.xml (1 KB) 05-08-13 05:43
There are no notes attached to this issue.




Viewing Issue Advanced Details
5396 [Quercus] feature always 03-14-13 00:17 03-14-13 23:55
IlikeQuercus  
 
normal  
new 4.0.35  
open  
none    
none  
`oci_connect with charset'
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.
Notes
(0006220)
IlikeQuercus   
03-14-13 23:55   
Now I know what caused my bug??I should use ojdbc6 driver with jre6.




Viewing Issue Advanced Details
5390 [Quercus] minor always 03-10-13 22:56 03-10-13 22:56
nam  
 
normal  
new 4.0.35  
open  
none    
none  
add support for modules written in PHP
(req by arvind_cits)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5388 [Quercus] minor always 03-06-13 05:00 03-06-13 05:36
konst  
 
normal  
new 4.0.36  
open  
none    
none  
PDOStatement.rowCount() doesn't meet DELETE, INSERT, or UPDATE statements specification
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
Going to commit the fix to the following repository:
https://github.com/mdaniel/svn-caucho-com-resin [^]
or
https://github.com/konst-git/svn-caucho-com-resin [^]
Notes
(0006207)
konst   
03-06-13 05:07   
Example:

$sql = "UPDATE `character` SET `xp` = `xp` + 5 WHERE `xp` = 0 AND `character_id` = :id";

$st = PDO::prepare($sql);

$st->bindValue(':id', $id);
$st->execute();
$affectedRowsCount = $st->rowCount();

// Because of this issue, the $affectedRowsCount is always == 0
if ($affectedRowsCount == 0)
{
  echo "No characters found who need XP";
}

(0006208)
konst   
03-06-13 05:36   
Submitted a fix into file
File: modules\quercus\src\com\caucho\quercus\lib\db\PDOStatement.java
at repository:
https://github.com/konst-git/svn-caucho-com-resin [^]




Viewing Issue Advanced Details
5386 [Quercus] minor always 03-04-13 11:52 03-04-13 11:52
nam  
 
normal  
new 4.0.35  
open  
none    
none  
Laravel php framework doesn't work
(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 com.caucho.quercus.env.Value.call(Value.java:1545)
at com.caucho.quercus.env.Env.error(Env.java:6825)
at com.caucho.quercus.env.Env.error(Env.java:6766)
at com.caucho.quercus.env.Env.error(Env.java:6400)
at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr .java:198)
at com.caucho.quercus.expr.CallExpr.eval(CallExpr.jav a:151)
at com.caucho.quercus.expr.Expr.evalValue(Expr.java:4 86)
at com.caucho.quercus.statement.ReturnStatement.execu te(ReturnStatement.java:69)
at com.caucho.quercus.statement.IfStatement.execute(I fStatement.java:84)
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.function.AbstractFunction.callM ethod(AbstractFunction.java:664)
at com.caucho.quercus.env.QuercusClass.callMethod(Que rcusClass.java:1599)
at com.caucho.quercus.env.QuercusClass.callMethod(Que rcusClass.java:1915)
at com.caucho.quercus.env.CallbackObjectMethod.call(C allbackObjectMethod.java:78)
at com.caucho.quercus.env.Env.findClassExt(Env.java:5 178)
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.findClass(Env.java:5110 )
at com.caucho.quercus.expr.ClassMethodExpr.eval(Class MethodExpr.java:93)
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.QuercusProgram.execute( QuercusProgram.java:414)
at com.caucho.quercus.page.InterpretedPage.execute(In terpretedPage.java:90)
at com.caucho.quercus.env.Env.executePage(Env.java:42 82)
at com.caucho.quercus.env.Env.include(Env.java:5802)
at com.caucho.quercus.expr.FunIncludeExpr.eval(FunInc ludeExpr.java:90)
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.IfStatement.execute(I fStatement.java:84)
at com.caucho.quercus.statement.IfStatement.execute(I fStatement.java:87)
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.QuercusProgram.execute( QuercusProgram.java:414)
at com.caucho.quercus.page.InterpretedPage.execute(In terpretedPage.java:90)
at com.caucho.quercus.env.Env.executePage(Env.java:42 82)
at com.caucho.quercus.env.Env.include(Env.java:5802)
at com.caucho.quercus.expr.FunIncludeExpr.eval(FunInc ludeExpr.java:90)
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.QuercusProgram.execute( QuercusProgram.java:414)
at com.caucho.quercus.page.InterpretedPage.execute(In terpretedPage.java:90)
at com.caucho.quercus.env.Env.executePageTop(Env.java :4293)
at com.caucho.quercus.env.Env.executeTop(Env.java:423 6)
at com.caucho.quercus.servlet.QuercusServletImpl.serv ice(QuercusServletImpl.java:202)
at com.caucho.quercus.servlet.QuercusServlet.service( QuercusServlet.java:568)
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:574)
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.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)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5381 [Quercus] minor always 02-25-13 19:46 02-25-13 19:46
nam  
 
normal  
new  
open  
none    
none  
JDK7 Arrays sort throws exception because Quercus comparator is not transitive
[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)
There are no notes attached to this issue.




Viewing Issue Advanced Details
3995 [Quercus] minor always 04-14-10 17:45 02-08-13 03:59
emil  
 
high  
new 4.0.6  
open  
none    
none  
Add support for ZipArchive class
(req by Edgar Merino)
Notes
(0006184)
nam   
02-08-13 03:59   
Also reported by (phpdocx)




Viewing Issue Advanced Details
5366 [Quercus] minor always 02-08-13 03:57 02-08-13 03:57
nam  
 
normal  
new 4.0.34  
open  
none    
none  
DOMElement->hasAttribute($name) not implemented
(rep by phpdocx)

Need to implement DOMElement->hasAttribute($name).

http://www.php.net/manual/en/class.domelement.php [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5340 [Quercus] minor always 01-21-13 21:13 02-05-13 04:01
ngoc  
 
normal  
new 4.0.34  
open  
none    
none  
Make QuercusCompiledScript Serializable
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
Example my code in use :

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();
Notes
(0006180)
ngoc   
02-05-13 03:59   
Please fix this issue , all CompiledScript is Serializable except QuercusCompiledScript
(0006181)
ngoc   
02-05-13 04:01   
String sayHelloVN ="<h1>hello </h1>" +
                    "<?php return 'Boy'; ?>";
          QuercusScriptEngine engine = new QuercusScriptEngine(new QuercusScriptEngineFactory());
          
          
          QuercusCompiledScript script = (QuercusCompiledScript) engine.compile(sayHelloVN);
         System.out.println(script.eval());
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         ObjectOutputStream oos = new ObjectOutputStream(baos);
         oos.writeObject(script);

Sample test code




Viewing Issue Advanced Details
5356 [Quercus] minor always 01-31-13 16:19 01-31-13 16:19
nam  
 
normal  
new 4.0.34  
open  
none    
none  
need to implement the HttpResponse library
(req by K. Patel)

http://us.php.net/manual/en/class.httpresponse.php [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5339 [Quercus] feature always 01-21-13 20:54 01-24-13 12:25
ngoc  
 
normal  
new 4.0.34  
open  
none    
none  
Make quercus as standalone project with no dependency with Hessian and Resin-Kenel
Please make quercus independent .
Notes
(0006170)
nam   
01-24-13 12:25   
Quercus 4.x uses resin-kernel's VFS classes extensively, so it's not possible to remove it. But for the upcoming Quercus 7.x, which requires Java 7+, it's something we can revisit.

As for Hessian, it's only used for GAE file serialization. And I've been thinking of changing the serialization to something else.




Viewing Issue Advanced Details
5324 [Quercus] crash always 12-27-12 13:05 01-02-13 10:07
publicocean0  
 
normal  
new 4.0.34  
open  
none    
none  
Overflow i copy a php object
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

java.lang.StackOverflowError
    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
Notes
(0006126)
nam   
12-27-12 16:09   
Hi, are you sure you're using 4.0.34? Because the stack traces don't look like 4.0.34. And can you provide a PHP sample? I'm unable to reproduce it with:

class A
{
  var $foo;
}

$a = new A();
$a->foo = array($a);

$b = serialize($a);
var_dump($b);

$c = unserialize($b);
var_dump($c);
(0006132)
publicocean0   
12-30-12 03:22   
Yes Quercus version is 4.034.
I can't send my php code because for now is a prototype, but your example dont hit the problem.
The problem is in the way in which you make the copy of a variable in quercus.
In general you can build a hierarchical structure in which you use many times a reference to a node. In php it works because it make a difference if you pass a node as pointer or var copy, in your quercus version you dont make this difference but you consider it always as a var copy: the consequence is that error.
For replicating that error you might build a structure that contains recursive information passed as reference.
the solution for my opinion is introduce, as in php, the concept of var reference in your quercus code ... if the copy find a kinda var dont call ,in the recursive way, the copy method. :)
(0006135)
nam   
12-31-12 16:10   
Hi, I still suspect that you're using an older version. Can you download http://www.caucho.com/download/resin-pro-4.0.33.tar.gz [^] and give it a try? If you're not using Resin, you should just be able to copy resin/lib/resin.jar into your server's WEB-INF/lib directory.
(0006136)
publicocean0   
01-01-13 03:15   
I quercus version i used is 4.034. I tried too you last jar. I saw also the code and i suggested the solution too.
I think that is a important bug because it could implicate the entire your project. I advice to analyzed in deep the problem.
(0006137)
nam   
01-02-13 10:07   
4.0.34 is not out yet. 4.0.33 is the latest version.




Viewing Issue Advanced Details
5301 [Quercus] minor always 12-04-12 06:39 12-04-12 06:39
nam  
 
normal  
new  
open  
none    
none  
PDO never throws PDOException
(rep by Maddy09)

http://forum.caucho.com/showthread.php?t=29222 [^]
There are no notes attached to this issue.




Viewing Issue Advanced Details
5296 [Quercus] minor always 12-01-12 06:18 12-01-12 06:18
nam  
 
normal  
new  
open  
none    
none  
need to implement iptcparse() for mediawiki image uploads
for images that have metadata
var/www/hosts/wiki.caucho.com/webapps/ROOT/includes/media/IPTC.php:574: Fatal Error: '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
There are no notes attached to this issue.




Viewing Issue Advanced Details
5233 [Quercus] minor always 10-03-12 21:22 11-30-12 08:11
nagaseyasuhito  
 
normal  
new 4.0.31  
open  
none    
none  
is_callable method is different behavior from PHP5.x
I found a bug of is_callable method behavior.

see Additional Information.

thanks.
$ php -v
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)
Notes
(0006099)
nam   
11-30-12 08:11   
Hi nagaseyasuhito,

Currently, is_callable() does not work properly for protected/private methods. This is a known problem and I do not have a timeframe for when it will be fixed. Sorry.




Viewing Issue Advanced Details
5276 [Quercus] minor always 11-14-12 10:23 11-14-12 10:29
nam  
 
normal  
new  
open  
none    
none  
magento does not work
(rep by M. Tiedemann)

Tried 1.7.0.2.
Notes
(0006085)
nam   
11-14-12 10:29   
Location[/Users/nam/caucho/resin/webapps/ROOT/magento-1.7.0.2/app/code/core/Mage/Core/Model/Cache.php:455] . null . . 'getAllOptions' is an unknown method of false.




Viewing Issue Advanced Details
5046 [Hessian] crash always 04-26-12 03:25 11-05-12 17:33
laruellec  
 
normal  
new 4.0.7  
open  
none    
none  
Java 1.7 Locale serialization fails
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)
Notes
(0006081)
altmind   
11-05-12 17:33   
Struck the same problem. Seems to be an incompatibility of LocaleHandler with Java7. Here's custom serializer https://github.com/altmind/hessian-locale [^] This helped me.




Viewing Issue Advanced Details
5224 [Quercus] minor always 09-26-12 11:45 09-26-12 11:45
nam  
 
normal  
new 4.0.31  
open  
none    
none  
add native connection pooling to Quercus
(rep by Y. Kawabata)

For non-Resin containers, and for the ability to limit connections (which is not possible even with Resin).
There are no notes attached to this issue.




Viewing Issue Advanced Details
5221 [Quercus] major always 09-20-12 06:34 09-20-12 06:34
jamnikr  
 
normal  
new 4.0.31  
open  
none    
none  
SimpleXMLElement count return always 0
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)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5187 [Quercus] minor always 08-24-12 00:53 08-30-12 03:23
nam  
 
normal  
new  
open  
none    
none  
oci_fetch_array() with OCI_RETURN_LOBS not implemented
(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'
Notes
(0006026)
kiarash   
08-30-12 03:23   
Quercus implementation of oci_fetch_array eventually tries to retrieve all values in a string format (refer to JdbcResultResource class). in getColumnString() function, for performance purposes, data is being retrieved using getByte() method and converted to string. this will not work for CLOB values. therefore for CLOB data, getString() method should be used instead of getByte().
in addition, the code to return UnimplementedException for OCI_RETURN_LOB can be removed since the overall implementation should always follow this mode.

following fix can be applied to com.caucho.quercus.lib.db.JdbcResultResource

...
protected Value getColumnString(Env env,
                                  ResultSet rs,
                                  ResultSetMetaData md,
                                  int column)
    throws SQLException
  {
    // php/1464, php/144f, php/144g
    // php/144b

    // calling getString() will decode using the database encoding, so
    // get bytes directly. Also, getBytes is faster for MySQL since
    // getString converts from bytes to string.
    byte []bytes = rs.getBytes(column);

    if (bytes == null)
      return NullValue.NULL;

    StringValue bb = env.createUnicodeBuilder();

    //enhanced for retrieving CLOB Type: CLOB values should be retrieved
    //using getString() method for data to be decoded correctly --kk
    if (md.getColumnType(column) == Types.CLOB)
        bb.append(rs.getString(column));
    else
        bb.append(bytes);
    
    return bb;
  }




Viewing Issue Advanced Details
5191 [Quercus] minor always 08-26-12 21:05 08-26-12 21:05
cmidnite  
 
normal  
new 4.0.27  
open  
none    
none  
mb_get_info() not fully implemented.
According to the PHP documentation (http://www.php.net/manual/en/function.mb-get-info.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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5188 [Quercus] minor always 08-24-12 15:36 08-24-12 15:36
ferg  
 
normal  
new  
open  
none    
none  
quercus stack trace in exception
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)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5174 [Quercus] minor always 08-07-12 16:23 08-08-12 06:15
awebdeveloper  
 
normal  
new 4.0.28  
open  
none    
none  
Quercus cannot find or include PHP files through WAR overlay
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.
The full getPath() method from 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;

    return pwd.lookup(req.getRealPath(fullPath));
    */
  }
Notes
(0006005)
awebdeveloper   
08-08-12 06:15   
I can confirm that restoring the commented out code in the getPath() method fixes the overlay problem (tested against quercus 4.0.29). However, include/require calls seem to fail (not surprisingly as there is a XXX for this in the commented out code). Because include/require calls fail, there is not a good solution yet. I will keep on working on this, but my experience with the quercus code base is quite minimal so far :-)




Viewing Issue Advanced Details
3826 [Quercus] minor always 12-23-09 10:26 08-07-12 14:51
alex  
 
normal  
new 4.0.2  
open  
none    
none  
quercus standalone: debug_backtrace() returns an empty array
-tomcat 5.5
-java 6
Notes
(0006000)
Thanos1999   
08-05-12 22:13   
Also see it returning empty array. Would be nice to see a fix.
(0006004)
nam   
08-07-12 14:51   
Issue doesn't exist for 4.0.29+. I'm not sure about older versions.


Input
---------------------------------------------------------------

<?php

function foo()
{
  var_dump(debug_backtrace());
}

foo();

?>


Output
---------------------------------------------------------------
array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(67) "/Users/nnguyen/Downloads/apache-tomcat-6.0.29/webapps/ROOT/test.php"
    ["line"]=>
    int(9)
    ["function"]=>
    string(3) "foo"
    ["args"]=>
    array(0) {
    }
  }
}




Viewing Issue Advanced Details
5157 [Quercus] minor always 07-26-12 13:15 07-30-12 11:10
alex  
 
normal  
new 4.0.28  
open  
none    
none  
quercus: QuercusServlet with init-param script-encoding="UTF-8"
produces garbled characters
There are no notes attached to this issue.




Viewing Issue Advanced Details
4718 [Quercus] minor always 08-18-11 10:05 06-12-12 15:50
rickHigh  
 
normal  
new  
open  
none    
none  
Can't debug Quercus with Eclipse IDE
Can't debug Quercus with Eclipse IDE
Notes
(0005480)
timowest   
08-30-11 00:25   
Can you elaborate on this? I have been able to debug PHP projects with Quercus on Eclipse.
(0005831)
jpalmisa   
06-12-12 15:50   
timowest,

How did you set up the debug configuration to get debug PHP with Quercus on Eclispe?




Viewing Issue Advanced Details
4011 [Hessian] major always 04-21-10 05:33 06-06-12 01:06
schatterjee  
 
normal  
new 3.1.6  
open  
none    
none  
Server Exceptions Not getting passed to client (Found root cause and possible Fix)
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
There is already a bug reported for same error -> 0003030: Server side exception could not be serialized to cilent side. (http://bugs.caucho.com/view.php?id=3030) [^]


Hessian2Output_Fixed.java (34 KB) 04-21-10 05:33
Hessian2Output.java (34 KB) 04-21-10 05:33
Notes
(0004539)
schatterjee   
04-21-10 05:39   
I am using Hessian 3.1.6 and Spring 2.5.2

Related bug reported earlier --> http://bugs.caucho.com/view.php?id=3030 [^]

(0005807)
ccampo   
06-06-12 01:06   
We had the same kind of problem. However I think the problem is different one. The problem is that the HessianServlet does not close the out.stream if there is an exception.

HessianServlet calls out.close() (line 398) only if everything is ok. In the case of an exception no close is called and no buffer is flushed. So the correct solution is to put the out.close in a finally {} block in HessianServlet. (We replaced HessianServlet with our own implementation and did just that.




Viewing Issue Advanced Details
5104 [Hessian] major always 06-06-12 01:01 06-06-12 01:01
ccampo  
 
normal  
new 3.2.0  
open  
none    
none  
AbstractDeserializer: UnsupportedOperationException
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.
There are no notes attached to this issue.




Viewing Issue Advanced Details
5093 [Hessian] major always 05-28-12 23:35 05-28-12 23:50
MicW  
 
normal  
new 4.0.7  
open  
none    
none  
Transfer of Large Binary Data not working within Objects
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).
Notes
(0005785)
MicW   
05-28-12 23:41   
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:2672)
    at com.caucho.hessian.io.Hessian2Input.readBuffer(Hessian2Input.java:2783)
    at com.caucho.hessian.io.Hessian2Input.read(Hessian2Input.java:2755)
    at com.caucho.hessian.io.Hessian2Input.parseByte(Hessian2Input.java:2638)
    at com.caucho.hessian.io.Hessian2Input.access$0(Hessian2Input.java:2594)
    at com.caucho.hessian.io.Hessian2Input$ReadInputStream.read(Hessian2Input.java:2904)
    at com.caucho.hessian.io.Hessian2Input$ReadInputStream.close(Hessian2Input.java:2927)
(0005786)
MicW   
05-28-12 23:50   
If i comment out is.close() and conn.close() in HessianProxy.invoke(), it works fine (but out course resources do not get closed).
So it's a bit tricky here how to close the stream and connection. In the fist case (0003655) the Method can only return one Stream. So the connection can simply be closed if this stream is closed. In the case of Objects containing streams, the situation is more complex because it's not easy to find out, when the stream can be closed. One way woulr be to keep track of all streams and if the last stream is closed, the connection can be closed as well.
Another problem is that the result Object's properties may not be available until the stream is fully read.




Viewing Issue Advanced Details
5052 [Quercus] minor always 04-27-12 17:49 04-27-12 17:49
rickHigh  
 
normal  
new  
open  
none    
none  
MediaWiki Querucs: problem viewing http://wiki4.caucho.com/Special:ListFiles [^]
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-east-1.rds.amazonaws.com)".
There are no notes attached to this issue.




Viewing Issue Advanced Details
5051 [Quercus] minor always 04-27-12 17:48 04-27-12 17:48
rickHigh  
 
normal  
new  
open  
none    
none  
Unable to upload files in mediawiki
After upload, 404 page displays as mediawiki tries to display image that does not exist.

(happens on wiki4.caucho.com)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5050 [Quercus] minor always 04-26-12 17:26 04-26-12 17:26
nam  
 
normal  
new 4.0.27  
open  
none    
none  
quercus cannot find jar'ed php files
(rep by A. Uppula)

need to finish support for jar'ed files
There are no notes attached to this issue.




Viewing Issue Advanced Details
5038 [Quercus] minor always 04-21-12 15:39 04-21-12 15:39
nam  
 
normal  
new 4.0.27  
open  
none    
none  
Symfony 2.0.12 not working
(rep by B. Au)
There are no notes attached to this issue.




Viewing Issue Advanced Details
5009 [Quercus] crash always 04-02-12 03:49 04-02-12 03:49
jjramosgo  
 
normal  
new 4.0.27  
open  
none    
none  
unimplemented exception when using com.caucho.quercus.lib.dom.DOMDocument.schemaValidate(DOMDocument.java:656)
com.caucho.quercus.QuercusException: com.caucho.quercus.lib.dom.DOMDocument.schemaValidate: 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: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 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.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 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.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/mod_importarxml/pagines.php:13)
actually, I use (war) version 4.0.25 from www.caucho.com/download
There are no notes attached to this issue.




Viewing Issue Advanced Details
4111 [Quercus] major always 07-07-10 06:27 03-22-12 13:44
jeffrhysjones  
 
normal  
assigned 4.0.9  
open  
none    
none  
Various XCART issues
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: $mode is an undefined variable
com.caucho.quercus.QuercusException: $adaptive_restart is an undefined variable
com.caucho.quercus.QuercusException: function 'fopen' has 2 required arguments, but only 1 were provided [fopen]
com.caucho.quercus.QuercusException: fopen mode must not be null [fopen]
com.caucho.quercus.QuercusException: 'D:\resina\webapps\xcart/config.local.php' is not a valid include path
com.caucho.quercus.QuercusException: '../../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










Running latest build (4.0.9)
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...
Notes
(0004662)
jeffrhysjones   
07-07-10 06:35   
On a second note - I later configured IIS + PHP on this same pair of servers, just to confirm that the issues were not relating to my own installation screw ups. Using IIS and normal PHP - xcart does work fine, with none of the above issues.

I would also say that CPU did look rather 'toppy' when browsing xcart using quercus, but then this might be due to the high level of logging that I was running + high number of exceptions / errors. On the other hand, pages on the Quercus setup did seem to load quicker... difficult to tell though, not scientific.

Jeff
(0004665)
domdorn   
07-09-10 09:00   
The installation error with "no database selected" is an error in the install script.
the include/install.php file is missing the mysql_select_db call. The corrected method should look like this:

function myquery($command) {
        global $params, $sql_reconnect_count;
        static $requests_count = 0;
        static $db_link;

        if (!isset($db_link) || !is_resource($db_link))
{
                if( !$db_link = @mysql_connect($params["mysqlhost"], $params["mysqluser"], $params["mysqlpass"]) ) return false;
                if( !@mysql_select_db($params["mysqlbase"], $db_link) ) return false;
}


        if( $sql_reconnect_count > 0 && $requests_count > $sql_reconnect_count ) {
                if (isset($db_link) && is_resource($db_link))
                        @mysql_close($db_link);

                if( !$db_link = @mysql_connect($params["mysqlhost"], $params["mysqluser"], $params["mysqlpass"]) ) return false;

                if( !@mysql_select_db($params["mysqlbase"], $db_link) ) return false;

                $requests_count = 0;
        }
        $requests_count++;
        return mysql_query($command, $db_link);
}


please report this to the developers of x-cart, so they can fix this bug.
(0004666)
jeffrhysjones   
07-09-10 12:42   
Thanks for the update Dom.

With regards to the DB USE script / bug, I will pass this on to them, but they might say that there is no bug because currently it works on standard php.

I this only an issue on qwercus - any reason why? Is it a jdbc thing?

What's the best reason o can give them to fix this?

Cheers,

Jeff
(0004667)
domdorn   
07-09-10 14:34   
just wait. I'm investigating this further.
(0004673)
domdorn   
07-12-10 13:19   
Ok, I think I know whats the problem. Will work on a fix now.




Viewing Issue Advanced Details
4245 [Quercus] minor have not tried 10-07-10 07:11 03-22-12 13:43
domdorn  
 
low  
acknowledged 4.0.11  
open  
none    
none  
methods beginning with underscore not visible in get_declared_methods
quercus produces a different array when calling get_declared_methods in a class in zend-framework 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] => _setInvokeArgs
    [23] => _getParam
    [24] => _setParam
    [25] => _hasParam
    [26] => _getAllParams
    [27] => _forward
    [28] => _redirect

will add testcase soon.
There are no notes attached to this issue.




Viewing Issue Advanced Details
3974 [Quercus] block always 03-30-10 12:10 03-22-12 13:43
rfeldman  
 
normal  
feedback 4.0.5  
open  
none    
none  
QuercusView for Spring MVC integration no longer works in 4.0.5
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.)
Notes
(0004781)
domdorn   
10-07-10 07:17   
Oops.. this has been open for too long. Have you found a workaround?
are you still using quercus for your view layer?
(0004782)
rfeldman   
10-07-10 07:39   
No, we long since abandoned it because this was unresolved. 4.0.3 had a problem with Glassfish which caused it to generate infinite logfiles until the disk filled up...evidently this was later fixed, but we were unable to upgrade because of this bug.

Our codebase is now all Groovy Server Pages.




Viewing Issue Advanced Details
4264 [Quercus] major always 10-19-10 15:15 03-22-12 13:43
gbruins  
 
normal  
acknowledged  
open  
none    
none  
'strptime' PHP function is not supported in Quercus
http://php.net/manual/en/function.strptime.php [^]
Notes
(0004798)
domdorn   
10-20-10 08:38   
will implement it.




Viewing Issue Advanced Details
3384 [Quercus] major always 03-10-09 22:03 03-22-12 13:43
al  
 
normal  
assigned 4.0.11  
open  
none    
none  
Quercus + Zend Framework => controller resolution broken
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 [^]
quercus.zip (23 KB) 09-29-10 01:33
Notes
(0004029)
tjdett   
05-20-09 15:11   
I have the same problem with the Zend Framework 1.8.1 using Resin 4.0.0. The page is blank, but the dispatch() does finish (without calling a controller or action). The returned Zend_Controller_Response_Http shows two exceptions:

Zend_Controller_Response_Http Object
(
    [_body:protected] => Array
                (
                )

    [_exceptions:protected] => Array
                (
                    [0] => Exception Object
            (
                [_quercusException] => resource(com.caucho.quercus.QuercusException)
                [code] => 0
        &n