<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Messages posted by "errorken"]]></title>
		<link>http://jforum.icesoft.org/JForum/posts/listByUser/24806.page</link>
		<description><![CDATA[Messages posted by "errorken"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Re:Cancel long running operations</title>
				<description><![CDATA[ I dont understand how this will help me.

My situation is like this:

I have a typical search/result screen, wich has some input criteria followed by a datatable for displaying the results. 
The user enters some criteria and then hits 'search'

By default the ice:commandButton sends out an ajax request to the blocking servlet for processing.

The browser will be blocked untill a reponse is received and then the datatable is populated with the results.
Normally this is all there is too it. 

However, imagine that this search can take 1minute on average.

After the user hits 'submit' he realizes that one of the input criteria is wrong, so he  wants to abort , modify the criteria and start the search over gain.

Now, with the default behaviour this is not possible.
Clicking 'stop' on the browser will not work since its an ajax request.
The user cannot navigate in the form since ICEFaces blocks the UI, the only thing he can do is wait untill the search finishes.

So what I need is to kill the running ajax connection so that the browser is responsive again to input from the user.

(I know that the thread on the server side will continue to execute the previous search, but that is ok.)]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/14016/54468.page#54468</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/14016/54468.page#54468</link>
				<pubDate><![CDATA[Mon, 27 Jul 2009 15:04:16]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Re:Cancel long running operations</title>
				<description><![CDATA[ Can I get hold of the javascript objects that regulate the connection? Maybe I can shutdown existing http connections so that full control is regained in the browser or something...]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/14016/54388.page#54388</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/14016/54388.page#54388</link>
				<pubDate><![CDATA[Sat, 25 Jul 2009 05:33:10]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Cancel long running operations</title>
				<description><![CDATA[ I have an action bound to a  ice:commandButton.
The action being executed takes a long time to process, is there a way to cancel this?
Out of the box a click on the commandbutton launches an ajax request which will keep on running...

I'm not intereseted in stopping the action on the server side persé. This thread may continue to run, I'm just looking for a way to 'free up' the browser so that a client can continue browsing.

Right now when an ajax request is launched the UI freezes (in our case we have the output status showing a progress bar). The only way to do something else on the UI is to navigate to that page again or open/close browser.]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/14016/54354.page#54354</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/14016/54354.page#54354</link>
				<pubDate><![CDATA[Fri, 24 Jul 2009 06:30:18]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Re:Rowselector selects every row in the datatable (even when one row is clicked exactly once)</title>
				<description><![CDATA[ This is still present in ICEFaces 1.8.0.

I would like that the value binding for the unique boolean property becomes optional.

as illustrated by ICEfaces 1.7.0 there is no technical need to have such a property to mark a row selected.

In the JSF world some may decide to use the ListDataModel to capture the row which was selected instead of adding properties to the objects being shown in the datatable.

There a couple of scenario's possible where you simply have no control over the objects being shown (you cannot change them, and thereby not being able to add such boolean property).
There is also the case of simple objects, where you simply cannot anything to them.]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/11332/50154.page#50154</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/11332/50154.page#50154</link>
				<pubDate><![CDATA[Fri, 1 May 2009 09:39:47]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Re:ICEFaces 1.8.0 view/composition bug</title>
				<description><![CDATA[ anyone?]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/12570/49998.page#49998</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/12570/49998.page#49998</link>
				<pubDate><![CDATA[Wed, 29 Apr 2009 02:10:27]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>ICEFaces 1.8.0 view/composition bug</title>
				<description><![CDATA[ Our view layout consists of two halves (left & right) which each compose 50% of the screen.
You can see it as two forms, on on the left side, the other on the right.
Each form consists of a datatable and inside it re-uses a facelets component.

There is also a third page, the popup, which will re-use one of the two search forms (either left or right). Thus it will just re-use one of the two datatables via inclusion of the correct xhtml (left or right).
For my small example I made it static, so when opening the popup the right side xhtml is always included.

Since there is a lot of reuse going on there is some parameterisation where the includes are made. This test project is a strip down from a bigger application, so don't question the parameterisation, it makes sense in the real application :) I  stripped everything of, just leaving the bare components needed to illustrate this issue.

----

The issue:

First, when you hit the search button the right side will display two lines in the datatable. (see ICEFacesIssues-images.zip#ICEFacesIssue1.jpg)
When you click the checkbox on the second line and you click 'open popup' you will get the third table, which is actually the table from the right side re-used. (see ICEFacesIssues-images.zip#ICEFacesIssue2.jpg) 

Now, when you click the checkbox on that popup you'll get:

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
Property 'childProperty' not found on type test.ChildX
</pre>
		</div>
(see ICEFacesIssue3.jpg)

Well, thats correct, childX doesn't have a property 'childPropertyy' (childX has property 'childPropertyx').
But why is it complaining about this? We are cleary re-using the right form, and the right form does not pass 'childpropertyy' as parameter but 'childpropertyx' ! 

So, one way or the other JSF/ICEfaces is getting confused and is applying the wrong parameter to the table I'm reusing.

The attached  test project which demonstrates this issue.
As far as I can see we are not doing anything wrong here, its just a simple composition of pages and components.

It has something to do with the ui:repeat tag. When I replace the collection of childs by a single child, and remove the ui:repeat, the problem is gone.

I'm reporting this as a bug, since this  <b>works fine with ICEFaces 1.7.1</b> (didn't try 1.7.2)... 

Btw; the versions used are mentioned in the ICEFacesIssues-images.zip#ICEFacesIssue-versions.jpg (its SWF 1.0.6, JSF 1.2_12)]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/12570/49686.page#49686</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/12570/49686.page#49686</link>
				<pubDate><![CDATA[Tue, 21 Apr 2009 15:41:33]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Re:Using plain JSF and ICEFaces simultaneously</title>
				<description><![CDATA[ Well, the problem is not related to other component libraries.

I was securing an application and I wanted to also to secure the /xmlhttp and /block callbaks. So these URL's are in the 'secured' zone. 
The login page is in the 'public' zone. 

When accessing the public page ICEFaces is already making callbacks to /xmlhttp and/or /block. 
This makes the application go in an infinite loop, since it needs to authenticate for these URL's, making it forward to the login page and then again callbacks to /xmlhttp and/or /block and so on.

I changed the login page to not use any ice components, but that didn't change anything. 

So then I wanted to assign the faces servlet for the login page and the ice servlet for the rest, but that triggered the nullpointer...

But maybe you're correct: justice should be the solution if I understand the reference guide correctly]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/11392/46084.page#46084</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/11392/46084.page#46084</link>
				<pubDate><![CDATA[Fri, 6 Feb 2009 01:59:19]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Re:Using plain JSF and ICEFaces simultaneously</title>
				<description><![CDATA[ Anyone an idea about this?]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/11392/45949.page#45949</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/11392/45949.page#45949</link>
				<pubDate><![CDATA[Tue, 3 Feb 2009 09:49:26]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Using plain JSF and ICEFaces simultaneously</title>
				<description><![CDATA[ A couple pages in my application must not be ICEFaces aware.
They should be processed like standard JSF pages.
So no ajax magic or other asynch callbacks.

To accomplish this I'm mapping these pages to the normal faces servlet.
However, when I do this I get a NPE :

<blockquote>
java.lang.NullPointerException
	at com.icesoft.faces.context.FacesContextFactoryImpl.getFacesContext(FacesContextFactoryImpl.java:76)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:239)
&nbsp;
		</blockquote>

My setup:

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
  &lt;servlet&gt;
    &lt;display-name&gt;Faces Servlet&lt;/display-name&gt;
    &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
    &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;
    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
  &lt;/servlet&gt;
  
  &lt;servlet&gt;
    &lt;servlet-name&gt;Persistent Faces Servlet&lt;/servlet-name&gt;
    &lt;servlet-class&gt;
			com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet
		&lt;/servlet-class&gt;
    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
  &lt;/servlet&gt;

  &lt;servlet&gt;
    &lt;servlet-name&gt;Blocking Servlet&lt;/servlet-name&gt;
    &lt;servlet-class&gt;
			com.icesoft.faces.webapp.xmlhttp.BlockingServlet
		&lt;/servlet-class&gt;
    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
  &lt;/servlet&gt;
  
  &lt;servlet-mapping&gt;
    &lt;servlet-name&gt;Blocking Servlet&lt;/servlet-name&gt;
    &lt;url-pattern&gt;/block/*&lt;/url-pattern&gt;
  &lt;/servlet-mapping&gt;
  
  &lt;servlet-mapping&gt;
    &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
    &lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;
  &lt;/servlet-mapping&gt;

  &lt;servlet-mapping&gt;
    &lt;servlet-name&gt;Persistent Faces Servlet&lt;/servlet-name&gt;
    &lt;url-pattern&gt;*.ice&lt;/url-pattern&gt;
  &lt;/servlet-mapping&gt;
</pre>
		</div>

So whenever I access a page with the 'jsf' extension I get the nullpointer.
Am I doing something wrong here ?]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/11392/45925.page#45925</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/11392/45925.page#45925</link>
				<pubDate><![CDATA[Mon, 2 Feb 2009 15:48:11]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Re:Rowselector selects every row in the datatable (even when one row is clicked exactly once)</title>
				<description><![CDATA[ Mark: is there a reason why the rowSelector <u>must</u> bind to a boolean property when multiple=false? 

When using a listDataModel you can use the listDataModel  functionality to retrieve the selected row, so there is no need to have an additional property on the classes itself.
Further more, if you are using the ListDataModel with for example plain String's, where are you going to set the boolean property?

Its my believe that the value on the rowSelector should be optional and not using it should not trigger the behavior where all rows get selected.

I also noticed an entry from Krashan Brahmanjara on this Jira issue :

<blockquote>
True. 
Code from current revision 18231 destroys old behaviour of row selector. On paged list is ok but on scrollable list multiple=false not work. 

Quick solution. 
I my environment I restore code component///RowSelector.java from revision 17940 without new enhanced feature. It works good. 
&nbsp;
		</blockquote>

So its indeed a bug then? Can this be fixed?]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/11332/45844.page#45844</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/11332/45844.page#45844</link>
				<pubDate><![CDATA[Fri, 30 Jan 2009 01:51:24]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Re:Rowselector selects every row in the datatable (even when one row is clicked exactly once)</title>
				<description><![CDATA[ Ok, when I return a list of objects having a boolean property (and I bind the value of the row selector to that boolean property) it works.

But I don't understand why its required to have the value set to a boolean property?

We normally use the datatable in combination with a ListDataModel. This offers allready functionality for retrieving the selected row (getRowData/getRowIndex). 

So now we have to foresee a 'selected' property on all our objects we use in the ListDataModel? (which we will not use, since we use the ListDataModel to determine which row was selected...)]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/11332/45759.page#45759</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/11332/45759.page#45759</link>
				<pubDate><![CDATA[Wed, 28 Jan 2009 07:05:54]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Rowselector selects every row in the datatable (even when one row is clicked exactly once)</title>
				<description><![CDATA[ With ICEFaces 1.7.2 SP1 clicking on a row in a datatable having a rowselector, gets all the rows selected. When reverted to 1.7.1 the problem was gone.

I tested this within an isolated test project, with a single page, containing a single action/datatable/rowselector.
When I run it with 1.7.2 (SP1) or higher, I get the multiple row select problem.
When I run the same projec with 1.7.1 its goes as expected.

As you can see in the attached image, I hover my mouse over a row, the row gets light blue (ok) then I click on that row and suddenly every row gets dark blue (= selected = not ok)

The code for the table/action is attached.

I also checked the docs for possible configuration changes that need to be applied starting from 1.7.1+ but I found none in regards to the rowSelector...]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/11332/45708.page#45708</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/11332/45708.page#45708</link>
				<pubDate><![CDATA[Tue, 27 Jan 2009 12:50:45]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>ICEFaces 1.7.2 SP1 not working with webflow 1.0.6</title>
				<description><![CDATA[ After reporting some issues, but never getting any decent response, there is still a problem with webflow 1.0.6 with the 1.7 branch of icefaces. 
1.7.2 had state problems where in 1.7.2 SP1 the page doesn't redirect when you start a flow. So nothing is happening basically.

Since we are possibly in need of a migration to 1.7.2 SP1 I looked at this problem. 
As far as I can tell there is a 'renderResponse()' in View on line 150 (method: updateOnPageRequest). 

What happens is that in that method ICEFaces detects the the GET (as part of the POST/REDIRECT/GET) a refresh. 
When calling renderResponse() the webflow internals do not get a chance to execute. 
When executing the renderREsponse phase there is no restored flowExecution (since the previous phases didn't execute) and therefore nothing is prepared. 
The result is that the page remains the same.

Removing this renderResponse() solves the problem and has, as far as I can tell, no side effects on normal refreshes.

Can anyone from the ICEFaces team have a look at this problem/solution?


http://jira.icefaces.org/browse/ICE-3845
http://jira.icefaces.org/browse/ICE-3713
http://jira.icefaces.org/browse/ICE-3689
http://jira.icefaces.org/browse/ICE-3664]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/11067/44822.page#44822</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/11067/44822.page#44822</link>
				<pubDate><![CDATA[Tue, 6 Jan 2009 17:21:41]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Re:IceFaces 1.7.1 release deadlock on session invalidation</title>
				<description><![CDATA[ We have the same problem with 1.7.1
Since we cannot upgrade to 1.7.2 SP1; it breaks with SWF 1.0.6 and icefaces is not responding to our Jira entries.
Because of this we had to make a custom build of 1.7.1 with the locking fixes applied. We took the fixes as posted in the first post.

However, this did not fix our problem; still locking issues.

After looking at the dumps we saw there is another problem:

T1: in SessionDispatcher the method notifySessionShutdown is executed. This is triggered by the de 'scan' thread in SessionDispatcher which scans every 10seconds -> now holding lock on SessionMonitors
T2: an expire of the session happens -> expire on StandardSession is invoked -> expire() locks this() - now holding lock on HttpSession

...

T1: calling httpSession.invalidate in notifySessionShutdown 
T2: As a result of the expire, making callbacks to registered HttpSessionListener's. Calling: SessionDispatcher$Listener -> sessionDestroyed -> calls notifySessionShutdown

So, in the last two slices: T1 is in need of a lock on the HttpSession, since thats what invalidate requires if you look into StandardSession.
T2 is in need of a lock on SessionMonitors, since its entering notifySessionShutdown. Result: deadlock

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
"Session Monitor" - Thread t@86
   java.lang.Thread.State: BLOCKED on org.apache.catalina.session.StandardSession@1ca9290 owned by: ContainerBackgroundProcessor&#91;StandardEngine&#91;com.sun.appserv&#93;.StandardHost&#91;server&#93;.StandardContext&#91;/vfp-portal-pub&#93;&#93;
        at org.apache.catalina.session.StandardSession.isForegroundLocked&#40;StandardSession.java:1291&#41;
        at org.apache.catalina.session.StandardSession.invalidate&#40;StandardSession.java:1397&#41;
        at org.apache.catalina.session.StandardSessionFacade.invalidate&#40;StandardSessionFacade.java:183&#41;
        at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.notifySessionShutdown&#40;SessionDispatcher.java:190&#41;
        at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.access$300&#40;SessionDispatcher.java:23&#41;
        at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$Monitor.shutdown&#40;SessionDispatcher.java:274&#41;
        at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$Monitor.shutdownIfExpired&#40;SessionDispatcher.java:279&#41;
        at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$Listener$1.run&#40;SessionDispatcher.java:222&#41;
</pre>
		</div>

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
"ContainerBackgroundProcessor&#91;StandardEngine&#91;com.sun.appserv&#93;.StandardHost&#91;server&#93;.StandardContext&#91;/vfp-portal-pub&#93;&#93;" - Thread t@85
   java.lang.Thread.State: BLOCKED on java.util.HashMap@1f03dc9 owned by: Session Monitor
        at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.notifySessionShutdown&#40;SessionDispatcher.java:171&#41;
        at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.access$300&#40;SessionDispatcher.java:23&#41;
        at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$Listener.sessionDestroyed&#40;SessionDispatcher.java:244&#41;
        at com.icesoft.faces.util.event.servlet.ContextEventRepeater.sessionDestroyed&#40;ContextEventRepeater.java:289&#41;
        at org.apache.catalina.session.StandardSession.expire&#40;StandardSession.java:777&#41;
        at org.apache.catalina.session.StandardSession.expire&#40;StandardSession.java:735&#41;
        at org.apache.catalina.session.StandardSession.isValid&#40;StandardSession.java:646&#41;
        at org.apache.catalina.session.StandardManager.processExpires&#40;StandardManager.java:899&#41;
        at org.apache.catalina.core.StandardContext.backgroundProcess&#40;StandardContext.java:5506&#41;
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren&#40;ContainerBase.java:1822&#41;
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run&#40;ContainerBase.java:1811&#41;
        at java.lang.Thread.run&#40;Thread.java:595&#41;
</pre>
		</div>

We fixed this by using a ConcurentMap for the SessionMonitors.
Because of this there is no explicit locking anymore and that solves the problem.

A minor issue with this, is that the map could now be iterated over by multiple threads.
This could result in multiple 'sessionDestroy()' being called on the SessionDispatcher instances hold in the map.
However, since this method only does this; sessionBoundServers.remove(session.getId());
it doesn't really matter if its called multiple times.
Also; ConcurMap "allows" concurent modififcation , so its no issue if T1 and T2 have both iterators and are removing items from the map.]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/9410/44818.page#44818</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/9410/44818.page#44818</link>
				<pubDate><![CDATA[Tue, 6 Jan 2009 16:12:13]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
			<item>
				<title>Re:As of SP1 webflow 1.x does not work anymore (when starting flow page does not change)</title>
				<description><![CDATA[ Any progress on this ?]]></description>
				<guid isPermaLink="true">http://jforum.icesoft.org/JForum/posts/preList/10746/44075.page#44075</guid>
				<link>http://jforum.icesoft.org/JForum/posts/preList/10746/44075.page#44075</link>
				<pubDate><![CDATA[Sat, 13 Dec 2008 06:35:14]]> GMT</pubDate>
				<author><![CDATA[ errorken]]></author>
			</item>
	</channel>
</rss>
