[jira] Commented: (COCOON-2110) Evaluate expressions defined in cocooon-expression-language-api in Sitemap engine

2007-08-10 Thread JIRA

[ 
https://issues.apache.org/jira/browse/COCOON-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519194
 ] 

Jörg Heinicke commented on COCOON-2110:
---

Public vs. private API does not stand a second sight. Request.getSession() is 
for sure accessed very often ...

> Evaluate expressions defined in cocooon-expression-language-api in Sitemap 
> engine
> -
>
> Key: COCOON-2110
> URL: https://issues.apache.org/jira/browse/COCOON-2110
> Project: Cocoon
>  Issue Type: New Feature
>  Components: - Components: Sitemap, - Expression language
>Affects Versions: 2.2-dev (Current SVN)
>Reporter: Grzegorz Kossakowski
>Assignee: Grzegorz Kossakowski
> Fix For: 2.2-dev (Current SVN)
>
>
> Description of the task is relatively simple; all I want to achieve is to 
> make possible following construct in sitemap:
> 
>   
> 
> assuming that JXPath (used above) is default EL of choice. Of course one 
> would be able to use following construct:
> 
>value="${jexl:cocoon.request.some_param}"/>
> 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: [vote] Let our environment abtractions extend the http servlet ones

2007-08-10 Thread Joerg Heinicke

On 07.08.2007 3:46 Uhr, Daniel Fagerstrom wrote:


Anyway, +1 for me to do it in 2.3. We can deprecate them now in 2.2.


Unfortunately it is more complicated than that.


You are right. I had deprecating our environment abstractions completely 
in mind. But when reading this I remembered some extensions for sitemap 
stuff you mentioned recently.


Joerg


[jira] Commented: (COCOON-2110) Evaluate expressions defined in cocooon-expression-language-api in Sitemap engine

2007-08-10 Thread JIRA

[ 
https://issues.apache.org/jira/browse/COCOON-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519193
 ] 

Jörg Heinicke commented on COCOON-2110:
---

I neither can recall it. How this one came up, Grek? I'm in favor of it though.

Backward incompatible change itself seems not to be disqualifying, see the 
discussion about the environment. One can argue with public vs. private API 
here though ...

In this case it should be even possible to support the #{} expressions as well 
and log some deprecation message. This would allow a change in 2.2.

Let's bring it back to dev list - even if it's only for the decision of 
changing the start chars.

> Evaluate expressions defined in cocooon-expression-language-api in Sitemap 
> engine
> -
>
> Key: COCOON-2110
> URL: https://issues.apache.org/jira/browse/COCOON-2110
> Project: Cocoon
>  Issue Type: New Feature
>  Components: - Components: Sitemap, - Expression language
>Affects Versions: 2.2-dev (Current SVN)
>Reporter: Grzegorz Kossakowski
>Assignee: Grzegorz Kossakowski
> Fix For: 2.2-dev (Current SVN)
>
>
> Description of the task is relatively simple; all I want to achieve is to 
> make possible following construct in sitemap:
> 
>   
> 
> assuming that JXPath (used above) is default EL of choice. Of course one 
> would be able to use following construct:
> 
>value="${jexl:cocoon.request.some_param}"/>
> 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2110) Evaluate expressions defined in cocooon-expression-language-api in Sitemap engine

2007-08-10 Thread Vadim Gritsenko (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519191
 ] 

Vadim Gritsenko commented on COCOON-2110:
-

I'm not sure I can recall this decision - to change the start char. First, it 
is backward incompatible change, which means it can't be done in 2.2 - only in 
2.3, if ever. And second, at this moment, in cforms samples alone, there are 56 
#{foo} expressions or so. Dropping support for that would note be wise.

> Evaluate expressions defined in cocooon-expression-language-api in Sitemap 
> engine
> -
>
> Key: COCOON-2110
> URL: https://issues.apache.org/jira/browse/COCOON-2110
> Project: Cocoon
>  Issue Type: New Feature
>  Components: - Components: Sitemap, - Expression language
>Affects Versions: 2.2-dev (Current SVN)
>Reporter: Grzegorz Kossakowski
>Assignee: Grzegorz Kossakowski
> Fix For: 2.2-dev (Current SVN)
>
>
> Description of the task is relatively simple; all I want to achieve is to 
> make possible following construct in sitemap:
> 
>   
> 
> assuming that JXPath (used above) is default EL of choice. Of course one 
> would be able to use following construct:
> 
>value="${jexl:cocoon.request.some_param}"/>
> 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2110) Evaluate expressions defined in cocooon-expression-language-api in Sitemap engine

2007-08-10 Thread JIRA

[ 
https://issues.apache.org/jira/browse/COCOON-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519186
 ] 

Jörg Heinicke commented on COCOON-2110:
---

The start chars of the expression changes to ${ for all expression languages. 
The expression language gets selected by the first part like "jexl" above. The 
same applies to JXPath. It is only the default and therefore left out. That the 
expression language itself might be different sounds reasonable. So I don't 
think it's more different than before.

> Evaluate expressions defined in cocooon-expression-language-api in Sitemap 
> engine
> -
>
> Key: COCOON-2110
> URL: https://issues.apache.org/jira/browse/COCOON-2110
> Project: Cocoon
>  Issue Type: New Feature
>  Components: - Components: Sitemap, - Expression language
>Affects Versions: 2.2-dev (Current SVN)
>Reporter: Grzegorz Kossakowski
>Assignee: Grzegorz Kossakowski
> Fix For: 2.2-dev (Current SVN)
>
>
> Description of the task is relatively simple; all I want to achieve is to 
> make possible following construct in sitemap:
> 
>   
> 
> assuming that JXPath (used above) is default EL of choice. Of course one 
> would be able to use following construct:
> 
>value="${jexl:cocoon.request.some_param}"/>
> 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Issue Comment Edited: (COCOON-2110) Evaluate expressions defined in cocooon-expression-language-api in Sitemap engine

2007-08-10 Thread JIRA

[ 
https://issues.apache.org/jira/browse/COCOON-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519186
 ] 

[EMAIL PROTECTED] edited comment on COCOON-2110 at 8/10/07 7:24 PM:


The start chars of the expression changes to ${ for all expression languages. 
The expression language gets selected by the first part like "jexl" above. The 
same applies to JXPath. It is only the default and therefore left out. That the 
expression language itself might be different sounds reasonable. So I don't 
think it's more different than before - but yes, different than before of 
course.

  was (Author: [EMAIL PROTECTED]):
The start chars of the expression changes to ${ for all expression 
languages. The expression language gets selected by the first part like "jexl" 
above. The same applies to JXPath. It is only the default and therefore left 
out. That the expression language itself might be different sounds reasonable. 
So I don't think it's more different than before.
  
> Evaluate expressions defined in cocooon-expression-language-api in Sitemap 
> engine
> -
>
> Key: COCOON-2110
> URL: https://issues.apache.org/jira/browse/COCOON-2110
> Project: Cocoon
>  Issue Type: New Feature
>  Components: - Components: Sitemap, - Expression language
>Affects Versions: 2.2-dev (Current SVN)
>Reporter: Grzegorz Kossakowski
>Assignee: Grzegorz Kossakowski
> Fix For: 2.2-dev (Current SVN)
>
>
> Description of the task is relatively simple; all I want to achieve is to 
> make possible following construct in sitemap:
> 
>   
> 
> assuming that JXPath (used above) is default EL of choice. Of course one 
> would be able to use following construct:
> 
>value="${jexl:cocoon.request.some_param}"/>
> 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2110) Evaluate expressions defined in cocooon-expression-language-api in Sitemap engine

2007-08-10 Thread Vadim Gritsenko (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519184
 ] 

Vadim Gritsenko commented on COCOON-2110:
-

Don't we have a history of using #{foo} for jxpath and ${foo} for jexl? Doing 
it differently would just result in more confusion. I'd rather have it more 
uniform throughout.

> Evaluate expressions defined in cocooon-expression-language-api in Sitemap 
> engine
> -
>
> Key: COCOON-2110
> URL: https://issues.apache.org/jira/browse/COCOON-2110
> Project: Cocoon
>  Issue Type: New Feature
>  Components: - Components: Sitemap, - Expression language
>Affects Versions: 2.2-dev (Current SVN)
>Reporter: Grzegorz Kossakowski
>Assignee: Grzegorz Kossakowski
> Fix For: 2.2-dev (Current SVN)
>
>
> Description of the task is relatively simple; all I want to achieve is to 
> make possible following construct in sitemap:
> 
>   
> 
> assuming that JXPath (used above) is default EL of choice. Of course one 
> would be able to use following construct:
> 
>value="${jexl:cocoon.request.some_param}"/>
> 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2108) xmodule:flow-attr Does not accept document objects

2007-08-10 Thread JIRA

[ 
https://issues.apache.org/jira/browse/COCOON-2108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519180
 ] 

Jörg Heinicke commented on COCOON-2108:
---

Hugh, did you try text()? If JXPath has implemented the function (and I think 
so) it should work. I think we only pass the expression directly to JXPath.

> xmodule:flow-attr Does not accept document objects
> --
>
> Key: COCOON-2108
> URL: https://issues.apache.org/jira/browse/COCOON-2108
> Project: Cocoon
>  Issue Type: Bug
>  Components: * Cocoon Core
>Affects Versions: 2.1.11-dev (Current SVN)
>Reporter: Hugh Sparks
>Priority: Minor
> Attachments: xmodulePuzzle.txt
>
>
> Sending document objects from flowscript back to the pipeline using
> xmodule:flow-attr produces unexpected results. Also, the examples from
> the documentation do not work as described:
> http://cocoon.apache.org/2.1/861.daisy.html
> The most common error reported is:
> 'The object type: class java.lang.String could not be serialized to XML"
> This issue was discussed recently on the cocoon-users mailing list.
> The thread was introduced by Kazo Csaba with the subject "Sending DOM from 
> flowscript to pipeline."
>  (July 17, 2007)
> He has attempted to trace this behavior in the source code and believes that a
> possibly-inappropriate conversion to string occurs in some cases.
> Jason Johnston suggested moving the issue to JIRA.
> I've created a demonstration of this apparent bug and some related problems
> in this very brief example:
> http://www.csparks.com/xmodulePuzzle.txt
> I hope someone can fix or explain the correct usage of xmodule:flow-attr.
> Thanks to all,
> -Hugh Sparks, [EMAIL PROTECTED]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2108) xmodule:flow-attr Does not accept document objects

2007-08-10 Thread Grzegorz Kossakowski (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519156
 ] 

Grzegorz Kossakowski commented on COCOON-2108:
--

After taking quick look at[1] we can see following statement:

 The intepretation of XPath over DOM/JDOM structures is implemented in 
accordance with the XPath specification.

Since XPath defines text() function it should work perfectly. I think this 
direction is surely worth trying.

Thanks Hugh for your great research!

[1] http://commons.apache.org/jxpath/users-guide.html#DOM_JDOM_Document_Access

> xmodule:flow-attr Does not accept document objects
> --
>
> Key: COCOON-2108
> URL: https://issues.apache.org/jira/browse/COCOON-2108
> Project: Cocoon
>  Issue Type: Bug
>  Components: * Cocoon Core
>Affects Versions: 2.1.11-dev (Current SVN)
>Reporter: Hugh Sparks
>Priority: Minor
> Attachments: xmodulePuzzle.txt
>
>
> Sending document objects from flowscript back to the pipeline using
> xmodule:flow-attr produces unexpected results. Also, the examples from
> the documentation do not work as described:
> http://cocoon.apache.org/2.1/861.daisy.html
> The most common error reported is:
> 'The object type: class java.lang.String could not be serialized to XML"
> This issue was discussed recently on the cocoon-users mailing list.
> The thread was introduced by Kazo Csaba with the subject "Sending DOM from 
> flowscript to pipeline."
>  (July 17, 2007)
> He has attempted to trace this behavior in the source code and believes that a
> possibly-inappropriate conversion to string occurs in some cases.
> Jason Johnston suggested moving the issue to JIRA.
> I've created a demonstration of this apparent bug and some related problems
> in this very brief example:
> http://www.csparks.com/xmodulePuzzle.txt
> I hope someone can fix or explain the correct usage of xmodule:flow-attr.
> Thanks to all,
> -Hugh Sparks, [EMAIL PROTECTED]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2108) xmodule:flow-attr Does not accept document objects

2007-08-10 Thread Hugh Sparks (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519151
 ] 

Hugh Sparks commented on COCOON-2108:
-

I tried the fix suggested by Csaba Kazó and it made all the test cases in
xmodulePuzzles.txt work as expected.

Now the question becomes, "what else is broken if this fix is left in place"?
(I tried to find some jxpath usage in the Samples, but without success.)

One possible motive for using getValue() in the original code was to make it 
possible
to get the actual string values of an jxpath expression. Recall the xmodule 
allows
a path to be appended:

For the xml:

This is a testof xmodule

The expression:

 xmodule:flow-attr:message#test/inside

Gives this result if we use Csaba Kazó's fix:

a test

Because the text() function is missing from Cocoon's jxpath,
there is no way to recover the text inside using an xmodule
expression in the sitemap.

It seems to me that a possible solution would be to use Kazó's 
suggested change, but add the text() function to jxpath so this
expression would return the contents of the element:

xmodule:flow-attr:message#test/inside/text()

= "a test"

Is jxpath supposed to have a text() function?




> xmodule:flow-attr Does not accept document objects
> --
>
> Key: COCOON-2108
> URL: https://issues.apache.org/jira/browse/COCOON-2108
> Project: Cocoon
>  Issue Type: Bug
>  Components: * Cocoon Core
>Affects Versions: 2.1.11-dev (Current SVN)
>Reporter: Hugh Sparks
>Priority: Minor
> Attachments: xmodulePuzzle.txt
>
>
> Sending document objects from flowscript back to the pipeline using
> xmodule:flow-attr produces unexpected results. Also, the examples from
> the documentation do not work as described:
> http://cocoon.apache.org/2.1/861.daisy.html
> The most common error reported is:
> 'The object type: class java.lang.String could not be serialized to XML"
> This issue was discussed recently on the cocoon-users mailing list.
> The thread was introduced by Kazo Csaba with the subject "Sending DOM from 
> flowscript to pipeline."
>  (July 17, 2007)
> He has attempted to trace this behavior in the source code and believes that a
> possibly-inappropriate conversion to string occurs in some cases.
> Jason Johnston suggested moving the issue to JIRA.
> I've created a demonstration of this apparent bug and some related problems
> in this very brief example:
> http://www.csparks.com/xmodulePuzzle.txt
> I hope someone can fix or explain the correct usage of xmodule:flow-attr.
> Thanks to all,
> -Hugh Sparks, [EMAIL PROTECTED]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Created: (COCOON-2110) Evaluate expressions defined in cocooon-expression-language-api in Sitemap engine

2007-08-10 Thread Grzegorz Kossakowski (JIRA)
Evaluate expressions defined in cocooon-expression-language-api in Sitemap 
engine
-

 Key: COCOON-2110
 URL: https://issues.apache.org/jira/browse/COCOON-2110
 Project: Cocoon
  Issue Type: New Feature
  Components: - Components: Sitemap, - Expression language
Affects Versions: 2.2-dev (Current SVN)
Reporter: Grzegorz Kossakowski
Assignee: Grzegorz Kossakowski
 Fix For: 2.2-dev (Current SVN)


Description of the task is relatively simple; all I want to achieve is to make 
possible following construct in sitemap:


  


assuming that JXPath (used above) is default EL of choice. Of course one would 
be able to use following construct:


  


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Closed: (COCOON-2086) Invent API for Object Model and use it in template block

2007-08-10 Thread Grzegorz Kossakowski (JIRA)

 [ 
https://issues.apache.org/jira/browse/COCOON-2086?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Grzegorz Kossakowski closed COCOON-2086.


Resolution: Fixed

It seems that basic API for Object Model has been invented and is quite stable. 
Further modifications will be covered by new issues.

Also, new Object Model API is fully used in template block.

Closing the issue.

> Invent API for Object Model and use it in template block
> 
>
> Key: COCOON-2086
> URL: https://issues.apache.org/jira/browse/COCOON-2086
> Project: Cocoon
>  Issue Type: Sub-task
>  Components: - Expression language, Blocks: Templating
>Affects Versions: 2.2-dev (Current SVN)
>Reporter: Grzegorz Kossakowski
>Assignee: Grzegorz Kossakowski
> Fix For: 2.2-dev (Current SVN)
>
>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Closed: (COCOON-2103) Replace Initialization of Object Model by helper classes with more solid mechanisms

2007-08-10 Thread Grzegorz Kossakowski (JIRA)

 [ 
https://issues.apache.org/jira/browse/COCOON-2103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Grzegorz Kossakowski closed COCOON-2103.


Resolution: Fixed

The goals of this issue has been almost achieved. One remaining task is to put 
parameters in ObjectModel outside pipeline component, probably in 
sitemap/pipeline implementation. That was described in this message:
http://article.gmane.org/gmane.text.xml.cocoon.devel/74479

This task will be covered by another issue so I can safely close this one.

> Replace Initialization of Object Model by helper classes with more solid 
> mechanisms
> ---
>
> Key: COCOON-2103
> URL: https://issues.apache.org/jira/browse/COCOON-2103
> Project: Cocoon
>  Issue Type: Sub-task
>  Components: * Cocoon Core, - Expression language, Blocks: Templating
>Affects Versions: 2.2-dev (Current SVN)
>Reporter: Grzegorz Kossakowski
>Assignee: Grzegorz Kossakowski
> Fix For: 2.2-dev (Current SVN)
>
>
> Currently initialization of Object Model is spread on various helper classes 
> like:
>   * org.apache.cocoon.template.environment.FlowObjectModelHelper
>   * org.apache.cocoon.environment.TemplateObjectModelHelper
> that use some static methods and variables.
> I'm going to slim down these (and other) classes to absolute minimum or 
> remove them completely in the end.
> Most initialization will be moved to ObjectModel providers classes.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[vote result] Let our environment abtractions extend the http servlet ones

2007-08-10 Thread Daniel Fagerstrom

Daniel Fagerstrom skrev:
I would like o.a.c.environment.[Request|Response|Session] to extend 
javax.servlet.http.Http[ServletRequest|ServletResponse|Session] 
respectively.

...
I don't want this to collide with releasing 2.2, so I'll wait with 
introducing the changes if there is any risk for that.


Results:
* +1 votes from Reinhard, Grzegorz, Jorg and me

* +1 votes for doing it in C2.2 with a detailed proposal about how to 
handle deprecation 
(http://marc.info/?l=xml-cocoon-dev&m=118651217532624&w=2) from Alfred 
and Vadim


* +1 votes for doing it in C2.3 from Felix and Joerg

It is not completely obvious what to do from this. But given that we 
handle deprecation according to Alfred's proposal, 6 persons voted for 
my original proposal of doing the changes in 2.2 (given that it is not 
interfering with the release) and no one voted against it. As no one has 
volunteered to do the release until mid September, it will not interfere 
with the release.


So I will implement my proposal with Alfred's deprecation scheme in the 
beginning of next week.


/Daniel



[jira] Commented: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread Miguel Cuervo (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519021
 ] 

Miguel Cuervo commented on COCOON-2109:
---

Jorg, 

Just a small test to prove that the insertion is happening on insert

--

package test;

import java.util.Iterator;
import java.util.SortedSet;
import java.util.TreeSet;

public class Test implements Comparable {

public int i;

public Test(int x) {
i = x;
}

public int compareTo(Object o) {
Test obj = (Test) o;
return i - obj.i;
}

public static void main(String[] args) {
SortedSet set = new TreeSet();

Test obj1 = new Test(1);
set.add(obj1);

Test obj2 = new Test(3);
set.add(obj2);

Test obj3 = new Test(2);
set.add(obj3);

Iterator iter = set.iterator();
System.out.println("Should print 1,2,3");
while (iter.hasNext()) {
Test obj = (Test) iter.next();
System.out.println(obj.i);
}



obj3.i = 4;
System.out.println("Order modified after insetion");
System.out.println("Should print 1,3,4");
iter = set.iterator();
while (iter.hasNext()) {
Test obj = (Test) iter.next();
System.out.println(obj.i);
}
System.out.println("...but it prints 1,4,3 keeping the order in 
which the object was inserted");

}
}


> Incorrent cleanup of expired continuations
> --
>
> Key: COCOON-2109
> URL: https://issues.apache.org/jira/browse/COCOON-2109
> Project: Cocoon
>  Issue Type: Bug
>  Components: - Flowscript
>Affects Versions: 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11-dev (Current 
> SVN)
>Reporter: Miguel Cuervo
> Attachments: ContinuationsManagerImpl.java.patch
>
>
> The class ContinuationsManagerImpl is in charge of cleaning up expired 
> continuations. It does so in the method expireContinuations. In this method 
> there is a loop using an iterator over a SortedSet of continuations 
> (WebContinuation). The loop is expecting that the continuations are ordered 
> from oldest to newest.  The loop stops in the first continuation that is not 
> expired. The logic is correct since all the newer continuations could not be 
> expired.
> However, the problem comes from the ordering of the continuations. To have 
> the continuations ordered by lastAccessTime the program uses a TreeSet as a 
> container of the continuations. The continuations implement the compareTo 
> interface using the lastAccessTime and when a continuation is inserted in the 
> container, it gets correctly ordered. But after the insertion, the 
> continuation can change its lastAccessTime using the method 
> WebContinuation.updateLastAccessTime() called from 
> WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
> with the change and when the program iterates over it, it does not get the 
> continuations in the order expected.
> The result of this bug is that under hevy load many expired continuations may 
> be around before the loop actually clean them up, eating memory resources and 
> causing OutOfMemory.
> To fix it, a patch is provided that uses a HashSet for the continuations 
> container and loops over all the continuations to check if they have expired.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread Vadim Gritsenko (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519018
 ] 

Vadim Gritsenko commented on COCOON-2109:
-

Jorg  - sort is happening on insert.

Miguel - what I meant is to do
  set.remove(w);
  w.setLastAccessTime();
  set.add(w);

Of course if somebody calls setLastAccessTime from outside, this code would 
have to be refactored if implementing approach above.

> Incorrent cleanup of expired continuations
> --
>
> Key: COCOON-2109
> URL: https://issues.apache.org/jira/browse/COCOON-2109
> Project: Cocoon
>  Issue Type: Bug
>  Components: - Flowscript
>Affects Versions: 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11-dev (Current 
> SVN)
>Reporter: Miguel Cuervo
> Attachments: ContinuationsManagerImpl.java.patch
>
>
> The class ContinuationsManagerImpl is in charge of cleaning up expired 
> continuations. It does so in the method expireContinuations. In this method 
> there is a loop using an iterator over a SortedSet of continuations 
> (WebContinuation). The loop is expecting that the continuations are ordered 
> from oldest to newest.  The loop stops in the first continuation that is not 
> expired. The logic is correct since all the newer continuations could not be 
> expired.
> However, the problem comes from the ordering of the continuations. To have 
> the continuations ordered by lastAccessTime the program uses a TreeSet as a 
> container of the continuations. The continuations implement the compareTo 
> interface using the lastAccessTime and when a continuation is inserted in the 
> container, it gets correctly ordered. But after the insertion, the 
> continuation can change its lastAccessTime using the method 
> WebContinuation.updateLastAccessTime() called from 
> WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
> with the change and when the program iterates over it, it does not get the 
> continuations in the order expected.
> The result of this bug is that under hevy load many expired continuations may 
> be around before the loop actually clean them up, eating memory resources and 
> causing OutOfMemory.
> To fix it, a patch is provided that uses a HashSet for the continuations 
> container and loops over all the continuations to check if they have expired.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread Vadim Gritsenko (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519019
 ] 

Vadim Gritsenko commented on COCOON-2109:
-

PS Yes I agree that re-creating the set *is not* a solution. In this case 
iteration over complete set is acceptable.

> Incorrent cleanup of expired continuations
> --
>
> Key: COCOON-2109
> URL: https://issues.apache.org/jira/browse/COCOON-2109
> Project: Cocoon
>  Issue Type: Bug
>  Components: - Flowscript
>Affects Versions: 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11-dev (Current 
> SVN)
>Reporter: Miguel Cuervo
> Attachments: ContinuationsManagerImpl.java.patch
>
>
> The class ContinuationsManagerImpl is in charge of cleaning up expired 
> continuations. It does so in the method expireContinuations. In this method 
> there is a loop using an iterator over a SortedSet of continuations 
> (WebContinuation). The loop is expecting that the continuations are ordered 
> from oldest to newest.  The loop stops in the first continuation that is not 
> expired. The logic is correct since all the newer continuations could not be 
> expired.
> However, the problem comes from the ordering of the continuations. To have 
> the continuations ordered by lastAccessTime the program uses a TreeSet as a 
> container of the continuations. The continuations implement the compareTo 
> interface using the lastAccessTime and when a continuation is inserted in the 
> container, it gets correctly ordered. But after the insertion, the 
> continuation can change its lastAccessTime using the method 
> WebContinuation.updateLastAccessTime() called from 
> WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
> with the change and when the program iterates over it, it does not get the 
> continuations in the order expected.
> The result of this bug is that under hevy load many expired continuations may 
> be around before the loop actually clean them up, eating memory resources and 
> causing OutOfMemory.
> To fix it, a patch is provided that uses a HashSet for the continuations 
> container and loops over all the continuations to check if they have expired.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread JIRA

[ 
https://issues.apache.org/jira/browse/COCOON-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519009
 ] 

Jörg Heinicke commented on COCOON-2109:
---

Of course the other classes are not aware of this set - and should not since it 
is internal state of the ContinuationsManagerImpl. That's what I meant when I 
wrote you can not prevent updates on the lastAccessTime, only on the set itself.

But you missed my point. Purely from the Javadoc I claim that the set is sorted 
on iterator() not on adding the continuations to the set. So there is no need 
to recreate the set on every iteration.

> Incorrent cleanup of expired continuations
> --
>
> Key: COCOON-2109
> URL: https://issues.apache.org/jira/browse/COCOON-2109
> Project: Cocoon
>  Issue Type: Bug
>  Components: - Flowscript
>Affects Versions: 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11-dev (Current 
> SVN)
>Reporter: Miguel Cuervo
> Attachments: ContinuationsManagerImpl.java.patch
>
>
> The class ContinuationsManagerImpl is in charge of cleaning up expired 
> continuations. It does so in the method expireContinuations. In this method 
> there is a loop using an iterator over a SortedSet of continuations 
> (WebContinuation). The loop is expecting that the continuations are ordered 
> from oldest to newest.  The loop stops in the first continuation that is not 
> expired. The logic is correct since all the newer continuations could not be 
> expired.
> However, the problem comes from the ordering of the continuations. To have 
> the continuations ordered by lastAccessTime the program uses a TreeSet as a 
> container of the continuations. The continuations implement the compareTo 
> interface using the lastAccessTime and when a continuation is inserted in the 
> container, it gets correctly ordered. But after the insertion, the 
> continuation can change its lastAccessTime using the method 
> WebContinuation.updateLastAccessTime() called from 
> WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
> with the change and when the program iterates over it, it does not get the 
> continuations in the order expected.
> The result of this bug is that under hevy load many expired continuations may 
> be around before the loop actually clean them up, eating memory resources and 
> causing OutOfMemory.
> To fix it, a patch is provided that uses a HashSet for the continuations 
> container and loops over all the continuations to check if they have expired.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Issue Comment Edited: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread Miguel Cuervo (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519005
 ] 

mcuervoe edited comment on COCOON-2109 at 8/10/07 5:24 AM:


It is not that easy. The update of the lastAccessTime it is done by other 
classes that use the reference to the continuation and that do not know 
anything about this set of continuations. Therefore you can not expected to 
have the continuation removed and inserted back in the set every time it 
changes to manteain the order. 

So the only solution I see it will be to recreate the sorted set every time 
that you want to iterate over it. And this operation will be probably slower 
that just iterate over all the continuations.

  was (Author: mcuervoe):
It is not that easy. The update of the lastAccessTime it is done by other 
classes that use the reference to the continuation and that do not know 
anything about this set of continuations. Therefore you can not expected to 
have the continuation removed and inserted back in the set every time it 
changes to manteain the order. 

So the only solution I see will be recreate the sorted set every time that you 
want to iterate over it. And this operation will be probably slower that just 
iterate over all the continuations.
  
> Incorrent cleanup of expired continuations
> --
>
> Key: COCOON-2109
> URL: https://issues.apache.org/jira/browse/COCOON-2109
> Project: Cocoon
>  Issue Type: Bug
>  Components: - Flowscript
>Affects Versions: 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11-dev (Current 
> SVN)
>Reporter: Miguel Cuervo
> Attachments: ContinuationsManagerImpl.java.patch
>
>
> The class ContinuationsManagerImpl is in charge of cleaning up expired 
> continuations. It does so in the method expireContinuations. In this method 
> there is a loop using an iterator over a SortedSet of continuations 
> (WebContinuation). The loop is expecting that the continuations are ordered 
> from oldest to newest.  The loop stops in the first continuation that is not 
> expired. The logic is correct since all the newer continuations could not be 
> expired.
> However, the problem comes from the ordering of the continuations. To have 
> the continuations ordered by lastAccessTime the program uses a TreeSet as a 
> container of the continuations. The continuations implement the compareTo 
> interface using the lastAccessTime and when a continuation is inserted in the 
> container, it gets correctly ordered. But after the insertion, the 
> continuation can change its lastAccessTime using the method 
> WebContinuation.updateLastAccessTime() called from 
> WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
> with the change and when the program iterates over it, it does not get the 
> continuations in the order expected.
> The result of this bug is that under hevy load many expired continuations may 
> be around before the loop actually clean them up, eating memory resources and 
> causing OutOfMemory.
> To fix it, a patch is provided that uses a HashSet for the continuations 
> container and loops over all the continuations to check if they have expired.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread Miguel Cuervo (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519005
 ] 

Miguel Cuervo commented on COCOON-2109:
---

It is not that easy. The update of the lastAccessTime it is done by other 
classes that use the reference to the continuation and that do not know 
anything about this set of continuations. Therefore you can not expected to 
have the continuation removed and inserted back in the set every time it 
changes to manteain the order. 

So the only solution I see will be recreate the sorted set every time that you 
want to iterate over it. And this operation will be probably slower that just 
iterate over all the continuations.

> Incorrent cleanup of expired continuations
> --
>
> Key: COCOON-2109
> URL: https://issues.apache.org/jira/browse/COCOON-2109
> Project: Cocoon
>  Issue Type: Bug
>  Components: - Flowscript
>Affects Versions: 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11-dev (Current 
> SVN)
>Reporter: Miguel Cuervo
> Attachments: ContinuationsManagerImpl.java.patch
>
>
> The class ContinuationsManagerImpl is in charge of cleaning up expired 
> continuations. It does so in the method expireContinuations. In this method 
> there is a loop using an iterator over a SortedSet of continuations 
> (WebContinuation). The loop is expecting that the continuations are ordered 
> from oldest to newest.  The loop stops in the first continuation that is not 
> expired. The logic is correct since all the newer continuations could not be 
> expired.
> However, the problem comes from the ordering of the continuations. To have 
> the continuations ordered by lastAccessTime the program uses a TreeSet as a 
> container of the continuations. The continuations implement the compareTo 
> interface using the lastAccessTime and when a continuation is inserted in the 
> container, it gets correctly ordered. But after the insertion, the 
> continuation can change its lastAccessTime using the method 
> WebContinuation.updateLastAccessTime() called from 
> WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
> with the change and when the program iterates over it, it does not get the 
> continuations in the order expected.
> The result of this bug is that under hevy load many expired continuations may 
> be around before the loop actually clean them up, eating memory resources and 
> causing OutOfMemory.
> To fix it, a patch is provided that uses a HashSet for the continuations 
> container and loops over all the continuations to check if they have expired.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread JIRA

[ 
https://issues.apache.org/jira/browse/COCOON-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519003
 ] 

Jörg Heinicke commented on COCOON-2109:
---

Are you sure that modifying the value of the sort criteria does not change the 
order of the elements? At the end it's the question when the elements are 
sorted - on inserting them or on iterating over them. I'm pretty sure it's the 
latter and then there would be no problem. The Javadoc for SortedSet says: "A 
set that further guarantees that its iterator will traverse the set in 
ascending element order".

A potential problem I can see is the modification of the lastAccessTime WHILE 
actually iterating over the set. The iterating itself is for sure synchronized 
to avoid ConcurrentModificationExceptions or something like this. But at that 
time you still can change the lastAccessTime. As soon as the 
ContinuationsManagerImpl gets to the first continuation with a modified 
lastAccessTime it would stop iterating and the expired continuations with a 
later lastAccessTime than the updated one had before would survive the cleanup.

Does it make sense? (I did not look into the code.)

> Incorrent cleanup of expired continuations
> --
>
> Key: COCOON-2109
> URL: https://issues.apache.org/jira/browse/COCOON-2109
> Project: Cocoon
>  Issue Type: Bug
>  Components: - Flowscript
>Affects Versions: 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11-dev (Current 
> SVN)
>Reporter: Miguel Cuervo
> Attachments: ContinuationsManagerImpl.java.patch
>
>
> The class ContinuationsManagerImpl is in charge of cleaning up expired 
> continuations. It does so in the method expireContinuations. In this method 
> there is a loop using an iterator over a SortedSet of continuations 
> (WebContinuation). The loop is expecting that the continuations are ordered 
> from oldest to newest.  The loop stops in the first continuation that is not 
> expired. The logic is correct since all the newer continuations could not be 
> expired.
> However, the problem comes from the ordering of the continuations. To have 
> the continuations ordered by lastAccessTime the program uses a TreeSet as a 
> container of the continuations. The continuations implement the compareTo 
> interface using the lastAccessTime and when a continuation is inserted in the 
> container, it gets correctly ordered. But after the insertion, the 
> continuation can change its lastAccessTime using the method 
> WebContinuation.updateLastAccessTime() called from 
> WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
> with the change and when the program iterates over it, it does not get the 
> continuations in the order expected.
> The result of this bug is that under hevy load many expired continuations may 
> be around before the loop actually clean them up, eating memory resources and 
> causing OutOfMemory.
> To fix it, a patch is provided that uses a HashSet for the continuations 
> container and loops over all the continuations to check if they have expired.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread Vadim Gritsenko (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519002
 ] 

Vadim Gritsenko commented on COCOON-2109:
-

It would be easier to fix tree set ordering, don't you think?

> Incorrent cleanup of expired continuations
> --
>
> Key: COCOON-2109
> URL: https://issues.apache.org/jira/browse/COCOON-2109
> Project: Cocoon
>  Issue Type: Bug
>  Components: - Flowscript
>Affects Versions: 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11-dev (Current 
> SVN)
>Reporter: Miguel Cuervo
> Attachments: ContinuationsManagerImpl.java.patch
>
>
> The class ContinuationsManagerImpl is in charge of cleaning up expired 
> continuations. It does so in the method expireContinuations. In this method 
> there is a loop using an iterator over a SortedSet of continuations 
> (WebContinuation). The loop is expecting that the continuations are ordered 
> from oldest to newest.  The loop stops in the first continuation that is not 
> expired. The logic is correct since all the newer continuations could not be 
> expired.
> However, the problem comes from the ordering of the continuations. To have 
> the continuations ordered by lastAccessTime the program uses a TreeSet as a 
> container of the continuations. The continuations implement the compareTo 
> interface using the lastAccessTime and when a continuation is inserted in the 
> container, it gets correctly ordered. But after the insertion, the 
> continuation can change its lastAccessTime using the method 
> WebContinuation.updateLastAccessTime() called from 
> WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
> with the change and when the program iterates over it, it does not get the 
> continuations in the order expected.
> The result of this bug is that under hevy load many expired continuations may 
> be around before the loop actually clean them up, eating memory resources and 
> causing OutOfMemory.
> To fix it, a patch is provided that uses a HashSet for the continuations 
> container and loops over all the continuations to check if they have expired.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread Miguel Cuervo (JIRA)

 [ 
https://issues.apache.org/jira/browse/COCOON-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Miguel Cuervo updated COCOON-2109:
--

Description: 
The class ContinuationsManagerImpl is in charge of cleaning up expired 
continuations. It does so in the method expireContinuations. In this method 
there is a loop using an iterator over a SortedSet of continuations 
(WebContinuation). The loop is expecting that the continuations are ordered 
from oldest to newest.  The loop stops in the first continuation that is not 
expired. The logic is correct since all the newer continuations could not be 
expired.

However, the problem comes from the ordering of the continuations. To have the 
continuations ordered by lastAccessTime the program uses a TreeSet as a 
container of the continuations. The continuations implement the compareTo 
interface using the lastAccessTime and when a continuation is inserted in the 
container, it gets correctly ordered. But after the insertion, the continuation 
can change its lastAccessTime using the method 
WebContinuation.updateLastAccessTime() called from 
WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
with the change and when the program iterates over it, it does not get the 
continuations in the order expected.

The result of this bug is that under hevy load many expired continuations may 
be around before the loop actually clean them up, eating memory resources and 
causing OutOfMemory.

To fix it, a patch is provided that uses a HashSet for the continuations 
container and loops over all the continuations to check if they have expired.



  was:
The class ContinuationsManagerImpl is in charge of cleaning up expired 
continuations. It does so in the method expireContinuations. In this method 
there is a loop using an iterator over a SortedSet of continuations 
(WebContinuation). The loop is expecting that the continuations are ordered 
from oldest to newest.  The loop stops in the first continuation that is not 
expired. The logic is correct since all the newer continuations could not be 
expired.

However, the problem comes from the ordering of the continuations. To have the 
continuations ordered by lastAccessTime the program uses a TreeSet as a 
container of the continuations. The continuations correctly implement the 
compareTo interface using the lastAccessTime and when a continuation is 
inserted in the container, it gets correctly ordered. But once the continuation 
is inserted in the container, the continuation can change its lastAccessTime 
using the method WebContinuation.updateLastAccessTime() called from 
WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
with the change and when the program iterates over it, it does not get the 
continuations in the order expected.

The result of this bug is that under hevy load may expired continuations may be 
around before the loop actually clean them up, eating memory resources and 
causing OutOfMemory.

To fix it, a patch is provided that uses a HashSet for the continuations 
container and loops over all the continuations to check if they have expired.




> Incorrent cleanup of expired continuations
> --
>
> Key: COCOON-2109
> URL: https://issues.apache.org/jira/browse/COCOON-2109
> Project: Cocoon
>  Issue Type: Bug
>  Components: - Flowscript
>Affects Versions: 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11-dev (Current 
> SVN)
>Reporter: Miguel Cuervo
> Attachments: ContinuationsManagerImpl.java.patch
>
>
> The class ContinuationsManagerImpl is in charge of cleaning up expired 
> continuations. It does so in the method expireContinuations. In this method 
> there is a loop using an iterator over a SortedSet of continuations 
> (WebContinuation). The loop is expecting that the continuations are ordered 
> from oldest to newest.  The loop stops in the first continuation that is not 
> expired. The logic is correct since all the newer continuations could not be 
> expired.
> However, the problem comes from the ordering of the continuations. To have 
> the continuations ordered by lastAccessTime the program uses a TreeSet as a 
> container of the continuations. The continuations implement the compareTo 
> interface using the lastAccessTime and when a continuation is inserted in the 
> container, it gets correctly ordered. But after the insertion, the 
> continuation can change its lastAccessTime using the method 
> WebContinuation.updateLastAccessTime() called from 
> WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
> with the change and when the program iterates over it, it does not get the 
> continuations in the order expected.
> The result of this bug is that under hevy load many expired continuations may 
> be around before the loop actually clean t

[jira] Updated: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread Miguel Cuervo (JIRA)

 [ 
https://issues.apache.org/jira/browse/COCOON-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Miguel Cuervo updated COCOON-2109:
--

Attachment: ContinuationsManagerImpl.java.patch

> Incorrent cleanup of expired continuations
> --
>
> Key: COCOON-2109
> URL: https://issues.apache.org/jira/browse/COCOON-2109
> Project: Cocoon
>  Issue Type: Bug
>  Components: - Flowscript
>Affects Versions: 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11-dev (Current 
> SVN)
>Reporter: Miguel Cuervo
> Attachments: ContinuationsManagerImpl.java.patch
>
>
> The class ContinuationsManagerImpl is in charge of cleaning up expired 
> continuations. It does so in the method expireContinuations. In this method 
> there is a loop using an iterator over a SortedSet of continuations 
> (WebContinuation). The loop is expecting that the continuations are ordered 
> from oldest to newest.  The loop stops in the first continuation that is not 
> expired. The logic is correct since all the newer continuations could not be 
> expired.
> However, the problem comes from the ordering of the continuations. To have 
> the continuations ordered by lastAccessTime the program uses a TreeSet as a 
> container of the continuations. The continuations correctly implement the 
> compareTo interface using the lastAccessTime and when a continuation is 
> inserted in the container, it gets correctly ordered. But once the 
> continuation is inserted in the container, the continuation can change its 
> lastAccessTime using the method WebContinuation.updateLastAccessTime() called 
> from WebContinuation.getContinuation(). The ordering of the TreeSet is not 
> updated with the change and when the program iterates over it, it does not 
> get the continuations in the order expected.
> The result of this bug is that under hevy load may expired continuations may 
> be around before the loop actually clean them up, eating memory resources and 
> causing OutOfMemory.
> To fix it, a patch is provided that uses a HashSet for the continuations 
> container and loops over all the continuations to check if they have expired.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: [GT2007] Request for papers

2007-08-10 Thread Andrew Savory

Hi,

On 8 Aug 2007, at 22:03, Gianugo Rabellino wrote:


Please take a look at the below list of ideas and see if there's one
or more subjects that you would like to talk about. Talks on different
subjects are most definitely welcome! The list below is only there as
a guideline to help you in finding a good subject, not to limit your
originality.


Hmm, the list of ideas somehow got eaten by the mail daemons, so  
here's the suggestions from last year. Anyone care to add anything?



Ideas for talks
---

Here's the (long!) list of subjects for sessions that we all came  
up with:


- Success stories (why someone chose Cocoon, for what, what was  
great and

  what not?)
- Comparison of Cocoon with other web frameworks
- Why should I upgrade to 2.2?
- A "meet the Cocoon devs" session at the hackaton for users. This  
session

  should be moderated and the topics come from the participating
  non-committers.
- Perspectives of the portal block, relations to other Apache portal
  projects
- Some shorter, flashier presentations of what you can achieve with
  Cocoon, right from the core developers
- A session with "kowledge flashes", 5 to 10 minutes per subject
- A "guided tour" through Cocoon where Reinhard interviewed  
Carsten and

  Sylvain about the internals
- Some demos of actual Cocoon sites, with explanations of why,  
how, etc
- Optimisation techniques, (efficient, performant Cocoon) across  
the whole

  lifecycle of an application
- The secret gems of Cocoon (what do people not know about that is  
really cool)

- Interactive apps, authentication, user tuned content
- How to get involved (find out what the community needs from  
contributers)
- Some sessions that focus on technologies that are often used  
together with

  Cocoon, with Guru's:
- Maven 2
- Spring 2
- FOP 0.92
- Cocoon and Web Services/SOA
- Lepido
- Some howto's / best practices for
- Configuration
- Using Spring
- Building Cocoon
- 10 Reasons to use Cocoon
- A "What's new in 2.2 and how to use it track" with different  
topics, 5 to

  10min per topic.
- What's up for Cocoon 3.0?
- The Funky Cocoon AJAX tour (with lots of samples!)
- A session like "moving from xsp and sitemap actions to  
flowscript and
  jxtemplate" to introduce existing users to the latest Cocoon  
techniques

  and guide them in upgrading their older bits of code
- A short (!!) introduction to OSGi (what's all that fuzz about?!)
- Best practice + case studies for cocoon based Intranet Portals
- Integration of Cocoon and Open Source Workflow Servers, Cocoon  
based

  Workflow applications in general
- Cocoon Forms: "meta form application" (let the users create form  
based

  applications by assembling cocoon forms with the help of CF)
- Short, practical case studies: high-level architecture, integrating
  Cocoon, etc.
- How to NOT get lost in Cocoon technologies: flow, binding, xsp,  
jxtemplate,

  cforms, authentication, portal, etc.
- How does Cocoon provide login, authorization, menu, form  
processing,

  templating, integration with backends (database)?
- How to create a "typical" project with cocoon, regarding
  sitemap hierarchy and organization, class model, deployment,  
artifacts,

  where do flows scripts must go, etc?
- Case studies showing large web applications
- Cocoon for 'non-java' professionals and Cocoon project management
- What is the required knowledge in order to hire a professional  
that should

  work in a cocoon project?
- Does separation of concerns work in a real world situation?
- Reducing risk when building large projects with large teams
- How to tweak Cocoon for performance
- Real numbers on cocoon performance, real hardware and real  
deployment

  topology (load balancing, session replication)
- A caching tour. How can I use caching effectively and what can I  
cache
- Measuring performance. How can I know at what speed my cocoon  
site is

  running?
- The Cocoon toolset: tools that can help shorten development  
time / tools

  for testing / monitoring

And a final note from Bertrand: "Talking to community members, I  
get a feeling that we're using Cocoon in wildly different ways,  
and I think it's one of its major strengths - let's show this at  
the GT!"




Thanks,

Andrew.
--
Sourcesense: Making sense of Open Source
Tel: +44 (0)870 741 6658  Fax: +44 (0)700 598 1135
Web: http://www.sourcesense.com/




[jira] Updated: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread Miguel Cuervo (JIRA)

 [ 
https://issues.apache.org/jira/browse/COCOON-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Miguel Cuervo updated COCOON-2109:
--

Description: 
The class ContinuationsManagerImpl is in charge of cleaning up expired 
continuations. It does so in the method expireContinuations. In this method 
there is a loop using an iterator over a SortedSet of continuations 
(WebContinuation). The loop is expecting that the continuations are ordered 
from oldest to newest.  The loop stops in the first continuation that is not 
expired. The logic is correct since all the newer continuations could not be 
expired.

However, the problem comes from the ordering of the continuations. To have the 
continuations ordered by lastAccessTime the program uses a TreeSet as a 
container of the continuations. The continuations correctly implement the 
compareTo interface using the lastAccessTime and when a continuation is 
inserted in the container, it gets correctly ordered. But once the continuation 
is inserted in the container, the continuation can change its lastAccessTime 
using the method WebContinuation.updateLastAccessTime() called from 
WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
with the change and when the program iterates over it, it does not get the 
continuations in the order expected.

The result of this bug is that under hevy load may expired continuations may be 
around before the loop actually clean them up, eating memory resources and 
causing OutOfMemory.

To fix it, a patch is provided that uses a HashSet for the continuations 
container and loops over all the continuations to check if they have expired.



  was:
The class ContinuationsManagerImpl is in charge of cleaning up expired 
continuations. It does so in the method expireContinuations. In this method 
there is a loop using an iterator over a SortedSet of continuations 
(WebContinuation). The loop is expecting that the continuations are ordered 
from oldest to newest.  The loop stops in the first continuation that is not 
expired. The logic is correct since all the newer continuations could not be 
expired.

However, the problem comes from the ordering of the continuations. To have the 
continuations ordered by lastAccessTime the program uses a TreeSet as a 
container of the continuations. The continuations correctly implement the 
compareTo interface using the lastAccessTime and when a continuation is 
inserted in the container, it gets correctly ordered. But once the continuation 
is inserted in the container, the continuation can change its lastAccessTime 
using the method WebContinuation.updateLastAccessTime() called from 
WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
with the change and when the program iterates over it, it does not get the 
continuations in the order expected.

The result of this bug is that under hevy load may expired continuations may be 
around before the loop actually clean them up, eating memory resources and 
causing OutOfMemory.

To fix it, a patch is provided using a HashSet for the continuations container 
and looping over all the continuations to checked if they have expired.




> Incorrent cleanup of expired continuations
> --
>
> Key: COCOON-2109
> URL: https://issues.apache.org/jira/browse/COCOON-2109
> Project: Cocoon
>  Issue Type: Bug
>  Components: - Flowscript
>Affects Versions: 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11-dev (Current 
> SVN)
>Reporter: Miguel Cuervo
>
> The class ContinuationsManagerImpl is in charge of cleaning up expired 
> continuations. It does so in the method expireContinuations. In this method 
> there is a loop using an iterator over a SortedSet of continuations 
> (WebContinuation). The loop is expecting that the continuations are ordered 
> from oldest to newest.  The loop stops in the first continuation that is not 
> expired. The logic is correct since all the newer continuations could not be 
> expired.
> However, the problem comes from the ordering of the continuations. To have 
> the continuations ordered by lastAccessTime the program uses a TreeSet as a 
> container of the continuations. The continuations correctly implement the 
> compareTo interface using the lastAccessTime and when a continuation is 
> inserted in the container, it gets correctly ordered. But once the 
> continuation is inserted in the container, the continuation can change its 
> lastAccessTime using the method WebContinuation.updateLastAccessTime() called 
> from WebContinuation.getContinuation(). The ordering of the TreeSet is not 
> updated with the change and when the program iterates over it, it does not 
> get the continuations in the order expected.
> The result of this bug is that under hevy load may expired continuations may 
> be around before the lo

[jira] Created: (COCOON-2109) Incorrent cleanup of expired continuations

2007-08-10 Thread Miguel Cuervo (JIRA)
Incorrent cleanup of expired continuations
--

 Key: COCOON-2109
 URL: https://issues.apache.org/jira/browse/COCOON-2109
 Project: Cocoon
  Issue Type: Bug
  Components: - Flowscript
Affects Versions: 2.1.10, 2.1.9, 2.1.8, 2.1.7, 2.1.6, 2.1.11-dev (Current 
SVN)
Reporter: Miguel Cuervo


The class ContinuationsManagerImpl is in charge of cleaning up expired 
continuations. It does so in the method expireContinuations. In this method 
there is a loop using an iterator over a SortedSet of continuations 
(WebContinuation). The loop is expecting that the continuations are ordered 
from oldest to newest.  The loop stops in the first continuation that is not 
expired. The logic is correct since all the newer continuations could not be 
expired.

However, the problem comes from the ordering of the continuations. To have the 
continuations ordered by lastAccessTime the program uses a TreeSet as a 
container of the continuations. The continuations correctly implement the 
compareTo interface using the lastAccessTime and when a continuation is 
inserted in the container, it gets correctly ordered. But once the continuation 
is inserted in the container, the continuation can change its lastAccessTime 
using the method WebContinuation.updateLastAccessTime() called from 
WebContinuation.getContinuation(). The ordering of the TreeSet is not updated 
with the change and when the program iterates over it, it does not get the 
continuations in the order expected.

The result of this bug is that under hevy load may expired continuations may be 
around before the loop actually clean them up, eating memory resources and 
causing OutOfMemory.

To fix it, a patch is provided using a HashSet for the continuations container 
and looping over all the continuations to checked if they have expired.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.