sylvain 2002/09/11 05:43:58
Modified: . Tag: cocoon_2_0_3_branch changes.xml
src/java/org/apache/cocoon/acting Tag: cocoon_2_0_3_branch
SessionPropagatorAction.java
src/java/org/apache/cocoon/components/language/generator
Tag: cocoon_2_0_3_branch ProgramGeneratorImpl.java
src/java/org/apache/cocoon/components/language/markup/xsp/java
Tag: cocoon_2_0_3_branch xsp.xsl
src/java/org/apache/cocoon/generation Tag:
cocoon_2_0_3_branch AbstractServerPage.java
Log:
Fix a nasty bug in XSP recompilation : static fields were used for dependencies,
meaning their value was shared by *all* XSP pages.
Revision Changes Path
No revision
No revision
1.138.2.48 +5 -1 xml-cocoon2/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/changes.xml,v
retrieving revision 1.138.2.47
retrieving revision 1.138.2.48
diff -u -r1.138.2.47 -r1.138.2.48
--- changes.xml 6 Sep 2002 03:35:33 -0000 1.138.2.47
+++ changes.xml 11 Sep 2002 12:43:57 -0000 1.138.2.48
@@ -39,6 +39,10 @@
</devs>
<release version="@version@" date="@date@">
+ <action dev="SW" type="fix">
+ AbstractServerPages used static fields for dependency tracking, which caused
+ either non-modified XSPs to be recompiled, or modified XSPs not to be
recompiled.
+ </action>
<action dev="VG" type="update">
SearchGenerator now includes <field name=""/> elements into <hit/>
element. These elements contain stored fields of a found Document,
No revision
No revision
1.7.2.1 +2 -2
xml-cocoon2/src/java/org/apache/cocoon/acting/SessionPropagatorAction.java
Index: SessionPropagatorAction.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/SessionPropagatorAction.java,v
retrieving revision 1.7
retrieving revision 1.7.2.1
diff -u -r1.7 -r1.7.2.1
--- SessionPropagatorAction.java 22 Feb 2002 06:59:26 -0000 1.7
+++ SessionPropagatorAction.java 11 Sep 2002 12:43:58 -0000 1.7.2.1
@@ -84,7 +84,7 @@
public class SessionPropagatorAction extends AbstractConfigurableAction implements
ThreadSafe
{
- private static Object[] defaults = {};
+ private Object[] defaults = {};
public void configure(Configuration conf) throws ConfigurationException {
if (conf != null) {
No revision
No revision
1.15.2.3 +4 -2
xml-cocoon2/src/java/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java
Index: ProgramGeneratorImpl.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java,v
retrieving revision 1.15.2.2
retrieving revision 1.15.2.3
diff -u -r1.15.2.2 -r1.15.2.3
--- ProgramGeneratorImpl.java 25 Jul 2002 14:00:31 -0000 1.15.2.2
+++ ProgramGeneratorImpl.java 11 Sep 2002 12:43:58 -0000 1.15.2.3
@@ -260,7 +260,9 @@
if (programInstance != null && this.autoReload) {
// Autoreloading: Unload program if its source is modified
long lastModified = source.getLastModified();
- if (lastModified == 0 ||
programInstance.modifiedSince(lastModified)) {
+ // Note : lastModified can be 0 if source is dynamically generated.
+ // In that case, let the program instance decide if it is modified
or not.
+ if (programInstance.modifiedSince(lastModified)) {
// Release the component.
release(programInstance);
programInstance = null;
No revision
No revision
1.9.2.3 +9 -5
xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl
Index: xsp.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl,v
retrieving revision 1.9.2.2
retrieving revision 1.9.2.3
diff -u -r1.9.2.2 -r1.9.2.3
--- xsp.xsl 2 Aug 2002 02:18:06 -0000 1.9.2.2
+++ xsp.xsl 11 Sep 2002 12:43:58 -0000 1.9.2.3
@@ -133,13 +133,17 @@
*/
public class <xsl:value-of select="@file-name"/> extends XSPGenerator {
- static {
- dateCreated = <xsl:value-of select="@creation-date"/>L;
- dependencies = new File[] {
+ // Files this XSP depends on
+ private static File[] _dependentFiles = new File[] {
<xsl:for-each select="//xsp:dependency">
new File("<xsl:value-of select="translate(., '\','/')"/>"),
</xsl:for-each>
};
+
+ // Initialize attributes used by modifiedSince() (see AbstractServerPage)
+ {
+ this.dateCreated = <xsl:value-of select="@creation-date"/>L;
+ this.dependencies = _dependentFiles;
}
/* Built-in parameters available for use */
No revision
No revision
1.8.2.1 +8 -8
xml-cocoon2/src/java/org/apache/cocoon/generation/AbstractServerPage.java
Index: AbstractServerPage.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/generation/AbstractServerPage.java,v
retrieving revision 1.8
retrieving revision 1.8.2.1
diff -u -r1.8 -r1.8.2.1
--- AbstractServerPage.java 7 Apr 2002 18:48:12 -0000 1.8
+++ AbstractServerPage.java 11 Sep 2002 12:43:58 -0000 1.8.2.1
@@ -74,24 +74,24 @@
public abstract class AbstractServerPage
extends ServletGenerator implements CompiledComponent, Cacheable, Recomposable {
/**
- * Code generators should produce a static
+ * Code generators should produce a constructor
* block that initializes the generator's
* creation date and file dependency list.
* Example:
*
- * static {
- * dateCreated = 958058788948L;
- * dependencies = new File[] {
- * new File("source.xml"),
+ * {
+ * this.dateCreated = 958058788948L;
+ * this.dependencies = new File[] {
+ * new File("source.xml")
* };
* }
*
*/
/** The creation date */
- protected static long dateCreated = -1L;
+ protected long dateCreated = -1L;
/** The dependency file list */
- protected static File[] dependencies = null;
+ protected File[] dependencies = null;
/**
* Recompose with the actual <code>ComponentManager</code> that should
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]