Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] 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  
Status closed   Product Version 4.0.52
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.
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