Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0006059 [Resin] minor always 05-25-17 11:18 06-05-17 14:58
Reporter kpokrovsky View Status public  
Assigned To ferg
Priority normal Resolution fixed Platform
Status closed   OS
Projection none   OS Version
ETA none Fixed in Version 4.0.53 Product Version 4.0.52
  Product Build
Summary 0006059: PHP is not reloaded after modification
Description Related to http://bugs.caucho.com/view.php?id=6042. [^] Says that has been fixed, but for PHP problem still exists. Actual for Pro version only. I've finally investigated it myself:

There was a change in QuercusContext::preload method

in 4.0.47:

return gen.preload(className);

in 4.0.52:

// preload only looks inside work dir, QuercusCompiler needs the full classpath
//return gen.preload(className);
    
return gen.load(className);

The difference between JavaClassGenerator::load and JavaClassGenerator::preload is only in one string:

Class<?> cl = loadClass(fullClassName, preload: false);
vs
Class<?> cl = loadClass(fullClassName, preload: true);

Yes, preload variable in JavaClassGenerator::loadClass method controls classloader, but it also controls that code:

if (! preload)
  return cl;

if (isModified(cl)) {
  return null;
}

Which means that modification is not checked anymore and existing PHP page class always gets preloaded whenever any modification actually happened or not.
Steps To Reproduce
Additional Information
Attached Files

- Relationships

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
05-25-17 11:18 kpokrovsky New Issue
06-05-17 14:58 ferg Assigned To  => ferg
06-05-17 14:58 ferg Status new => closed
06-05-17 14:58 ferg Resolution open => fixed
06-05-17 14:58 ferg Fixed in Version  => 4.0.53


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
27 total queries executed.
25 unique queries executed.
Powered by Mantis Bugtracker