|
Mantis - Resin
|
|||||
| Viewing Issue Advanced Details | |||||
|
|
|||||
| ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
| 6059 | minor | always | 05-25-17 11:18 | 06-05-17 14:58 | |
|
|
|||||
| Reporter: | kpokrovsky | Platform: | |||
| Assigned To: | ferg | OS: | |||
| Priority: | normal | OS Version: | |||
| Status: | closed | Product Version: | 4.0.52 | ||
| Product Build: | Resolution: | fixed | |||
| Projection: | none | ||||
| ETA: | none | Fixed in Version: | 4.0.53 | ||
|
|
|||||
| 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: | |||||
| Relationships | |||||
| Attached Files: | |||||
| There are no notes attached to this issue. |