Messages posted by: atomz4peace  XML
Profile for atomz4peace -> Messages posted by atomz4peace [121] Go to Page: Previous  1, 2, 3, 4, 5, 6, 7, 8, 9 Next 
Author Message
I'm seeing something fairly new, perhaps new as of 1.8.2 but can't be sure. I have a sortable datatable of 100 items per page, but total of 5,000 or more entries. For sorting, I use the same collections.sort as per one of the examples.

When I use MSIE and click the column heading to sort, everything is fine. It takes maybe 1-2 secs and repaints the page.

If I do that same with firefox, I also see the page repaint after 1-2 seconds, but then instantly goes into the program unresponsive mode for about 30 seconds or more. Meanwhile the cpu is pegged at 50% (dual core) all tied to firefox.exe.

So something is going awry. Has anyone seen similar and give any tips on how to figure it out?

We tested with both 1.8.2 and the latest svn from yesterday.

Not sure if this is known, but I saw a bad performance issue related to the autocentre parameter of a panelpopup. If the panel is set to rendered=true but visible=false, when autocentre=true, MSIE starts gobbling up cpu time when you scroll. Firefox does not.

In my test case I had a datatable with about 50 rows. When I had the panelpopup as desribed above, it was super sluggish to scroll while firefox was fine. Once I changed it so that rendered was not always true, then it worked fine.

I suspect that the if this was not a modal popup and I really wanted it on the page, autocentering as I scroll, it would be slow as well. This is using msie 8 and ice 1.8.2.

Yes, forgot that one. Not much to it:

public String editSOD() {
 		return ("EDITSOD");
 	public void editSOD(ActionEvent event) {
 		 FacesContext ctx = FacesContext.getCurrentInstance();
 		 Map map = ctx.getExternalContext().getRequestMap();		 
 		 SODObject entry = (SODObject) map.get("entry");

Also, the command buttons are in a datatable cell. I have a similar button NOT in a table that works fine.

Funny thing is that I thought this worked in a previous version (we are at 1.8.1 today) so I'll have to go back-rev and test.
I just noticed something on a switch to 1.8.1 that I had not seen previously. We have one page that throws an NPE when doing an action="" navigation. We see this below.

Any ideas of what to try?


 Caused by: java.lang.NullPointerException
 	at javax.faces.component.UIComponentBase.getRenderer(UIComponentBase.java:1093)
 	at javax.faces.component.UIComponentBase.getClientId(UIComponentBase.java:272)
 	at com.icesoft.faces.component.panelseries.UISeries.restoreChild(UISeries.java:505)
 	at com.icesoft.faces.component.ext.HtmlDataTable.restoreChild(HtmlDataTable.java:443)
 	at com.icesoft.faces.component.panelseries.UISeries.restoreChildState(UISeries.java:464)
 	at com.icesoft.faces.component.panelseries.UISeries.restoreChildState(UISeries.java:467)
 	at com.icesoft.faces.component.ext.HtmlDataTable.restoreChildrenState(HtmlDataTable.java:313)
 	at com.icesoft.faces.component.panelseries.UISeries.setRowIndex(UISeries.java:138)
 	at com.icesoft.faces.component.panelseries.UISeries$RowEvent.broadcast(UISeries.java:611)
 	at com.icesoft.faces.component.panelseries.UISeries.broadcast(UISeries.java:275)
 	at javax.faces.component.UIData.broadcast(UIData.java:677)
 	at com.icesoft.faces.component.panelseries.UISeries.broadcast(UISeries.java:270)
 	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:287)
 	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:401)
 	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95)
 	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
 	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
 	at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:18)
 	at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java:122)
 	at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:73)
 	at com.icesoft.faces.webapp.http.core.RequestVerifier.service(RequestVerifier.java:28)
 	at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
 	at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160)
 	at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$1.service(SessionDispatcher.java:42)
 	at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:19)
 	at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63)
 	at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:62)
 	at com.icesoft.faces.webapp.http.servlet.SessionVerifier.service(SessionVerifier.java:22)
 	at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
 	at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:153)
 	... 40 more
 The jspx is:
 <ice:commandButton value="Report" partialSubmit="true" action="#{ListSodBean.reportSOD}" actionListener="#{ListSodBean.editSOD}" styleClass="buttonsmall" />

Is there any way to run icefaces under IIS? I saw a couple articles where you can use the MS java sdk and run your servlets under IIS, though I have not tried.

But does anyone think you could run icefaces without a tomcat/weblogic/etc... server behind it?

Note that if you have NULL values in your table, you will get an NPE. A while page we took some demo code from Philip and made our own data exporter. It looks like his code become and dataexport. We fixed the NPE and added PDF as well. We also added a tag to ignore images and use the alt tag. Here are some diffs that might apply to the production code:

This will fix a NPE from having NULL in a cell. Note our additional textonly value to ignore images.

22:16:56,843 INFO [STDOUT] java.lang.NullPointerException
22:16:56,843 INFO [STDOUT] at com.icesoft.faces.component.dataexporter.DataExporterRenderer.encodeParentAndChildrenAsString(DataExporterRenderer.java:169)

ValueBinding vb = uic.getValueBinding("value");
if (vb != null) {
if (vb.getValue(fc) != null) {
if (textOnly) {
* Check if it's an image or outputText
if (uic instanceof UIGraphic) {
ValueBinding vbAlt = uic.getValueBinding("alt");
str += vbAlt.getValue(fc).toString();
} else if (uic instanceof UIOutput && !(uic instanceof javax.faces.component.html.HtmlOutputLink)) {
str += vb.getValue(fc).toString();
} else {
str += vb.getValue(fc).toString();
I just noticed something that I never saw before so not sure if it's related to icefaces but wanted to see if anyone had a clue on it.

- I use ant to build my web app.
- I clean everything, build dir, deploy dir, and rebuild and deploy.
- On *some* of the jspx pages I get an error like this when I try to view the page via the browser:

javax.servlet.jsp.JspException: javax.faces.el.EvaluationException: java.lang.Error: Unresolved compilation problem:
The import org.apache.commons.httpclient cannot be resolved

- If I then touch the source of the backing bean and redeploy just that class, the jspx builds and the page can be viewed.
- If we then make changes to the jspx and redeploy, it still works.

So it seems like just a problem on new deploys not seeing the build libs or something. This only happens on my jspx/icefaces pages, not on any plain 'ol jsp ones.

Any thoughts? Thanks!
I was using jboss dev studio.

I have a project in jboss dev studio / eclipse 3.4.1, with the 1.7.2sp1 plugin. My project has the JSF nature and I tried to add the ICE project facet. When I do, I get a nullpointerexception here:

at com.icesoft.ide.eclipse.icefaces.core.utils.ICEfacesFacetUtil11.getURLMappings(ICEfacesFacetUtil11.java:235)
at com.icesoft.ide.eclipse.icefaces.core.facet.ICEfacesFacetInstallDelegate$UpdateWebXMLForJ2EE.run(ICEfacesFacetInstallDelegate.java:250)
at org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit.modify(WebArtifactEdit.java:667)
at com.icesoft.ide.eclipse.icefaces.core.facet.ICEfacesFacetInstallDelegate.createServletAndModifyWebXML(ICEfacesFacetInstallDelegate.java:118)
at com.icesoft.ide.eclipse.icefaces.core.facet.ICEfacesFacetInstallDelegate.execute(ICEfacesFacetInstallDelegate.java:85)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.callDelegate(FacetedProject.java:1394)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.modifyInternal(FacetedProject.java:401)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.mergeChangesInternal(FacetedProject.java:1134)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.access$2(FacetedProject.java:1070)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject$5.run(FacetedProject.java:1052)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProject.mergeChanges(FacetedProject.java:1062)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProjectWorkingCopy.commitChanges(FacetedProjectWorkingCopy.java:1827)
at org.eclipse.wst.common.project.facet.ui.internal.FacetsPropertyPage$3.run(FacetsPropertyPage.java:185)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
at org.eclipse.wst.common.project.facet.ui.internal.FacetsPropertyPage$4.run(FacetsPropertyPage.java:199)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

Any thoughts?

Yeah, we saw that too and fixed it by hacking it to always export all rows. In outputexportrenderer I changed this:

int rowIndex = uiData.getFirst();

to rowIndex = 0

Then commented out:

// if (numberOfRowsToDisplay > 0
// && countOfRowsDisplayed >= numberOfRowsToDisplay) {
// break;
// }

We've made other changes so there might be more, but that's the idea. Just force it to loop over all rows.
This question is related to the JIRA here http://jira.icefaces.org/browse/ICE-1623 and the thread at http://www.icefaces.org/JForum/posts/list/8300.page.

So I have Philip's massively cool export component working until I hit a snag. I have a datatable where one cell contains another datatable, like this. I omitted the other columns that work fine.

 				<ice:dataTable id="SODReport" var="entry" resizable="true" 
 					value="#{SODReportBean.entryList}" styleClass="menutable"
 					width="100%" sortColumn="#{SODReportBean.sortColumnName}"
 					rows="#{SODReportBean.entriesPerPage}" headerClass="bold"
 						<f:facet name="header">
 							<ice:commandSortHeader columnName="#{SODReportBean.col7Name}"
 								<ice:outputText value="#{SODReportBean.col7Name}" />
 						<ice:panelGrid columns="1">
 							<ice:dataTable var="conflictgroupitem"
 								value="#{entry.conflictGroupList}" scrollable="false"
 								columnWidths="50em" scrollHeight="5em">
 									<f:facet name="header">
 										<ice:outputText value="Privileges" rendered="false"/>
 									<ice:outputText value="#{conflictgroupitem.name}" styleClass="blue bold" 
 									title="Privilege: #{conflictgroupitem.description}"/>

So we're going through using Philip's code and I'm trying to get the data inside of this column. In the UI, it shows as expected as a list of strings.

When we hit this column, we get to the following code:

 			ValueBinding vb = uic.getValueBinding("value");
 			if (vb != null) {
 				if (vb.getValue(fc) != null) {

This is where it's interesting. It returns a ValueBinding. In this case, the exprString is #{filtergroupitem.name}, as expected. There does exist a "getName" method in the object behind filtergroupitem. But the method vb.getValue(fc) returns null. I debugged down a ways into the JSF code (1.1 RI) and the getvalue expression evaluator would not evaluate.

The summary is that the datatable has some columns that are simple text or date, these work fine. One column contains a list of objects, the filterGroupList. Like this:

Datatable = List of objects = entryList

One of the values of this entryList object is itself a list of Objects, the filterGroupList.

This may be more of a faces-related issue but am hoping anyone here has an idea of how to get these values out into the pdf/xls/csv.


The ValueBinding will not evaluate the parameters
I just tried the binary and source release of 1.7.2. I was using 1.7.1 and basically just plopped the new jar (icefaces.jar and icefaces-comps.jar) files on top of the old ones in my WEB-INF directory. I restarted jboss and got this:

21:14:45,406 INFO  [STDOUT] java.lang.ClassNotFoundException: com.icesoft.faces.component.outputresource.OutputResourceRenderer
 1:14:45,406 INFO  [STDOUT] 	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
 21:14:45,406 INFO  [STDOUT] 	at java.security.AccessController.doPrivileged(Native Method)
 21:14:45,421 INFO  [STDOUT] 	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 21:14:45,421 INFO  [STDOUT] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
 21:14:45,421 INFO  [STDOUT] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
 21:14:45,421 INFO  [STDOUT] 	at com.sun.faces.util.Util.loadClass(Util.java:448)
 21:14:45,421 INFO  [STDOUT] 	at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:896)
 21:14:45,421 INFO  [STDOUT] 	at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:945)
 21:14:45,421 INFO  [STDOUT] 	at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:426)
 21:14:45,421 INFO  [STDOUT] 	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:348)

and so on...

Anyone have a clue what this is all about? The application won't deploy. If I copy the 1.7.1 jars, it's fine again.

Thank you. That's great. I saw that this prototype uses an HtmlCommandLink. Is there an easy way to have it use a graphic image with a link?

I see this:

 		HtmlCommandLink link = (HtmlCommandLink) fc.getApplication()
 		link.setId(oe.getId() + PREPARE_FILE_HIDDEN_SUFFIX);
 		String clickToCreateFileText = oe.getClickToCreateFileText();
 		if (clickToCreateFileText == null)
 			clickToCreateFileText = "Click to create export file";

But instead of giving a String in link.setValue(clickToCreateFileText); can you feed this a graphicImage, or is there another component besides HtmlCommandLink link HtmlGraphicLink??? I didn't see anything like that in the docs.

Thanks, that did the trick. The component was not updating based on the pull down, but that's ok.

So I'm going to modify this to have icons instead of the pull down. I also noticed that it builds the file, then changes the link to a /resource/ URL. If I reload the datatable with new values, that link stays put.

I'll do the work on changing that to be dynamic if you can give a couple of pointers on just where to adjust that part of it, so that the csv/xls is re-generated every time based on the current value.

I'll post the changes when done if there is interest.

Any quick ideas why the component won't show? I copies the values from faces-config.xml and copied in the custom.taglib.xml and custom.tags.tld.

Everything parses file, eclipse pulls it up, I had jxl anyway, but when I view source I see only:

<div id="mainform:exp_cont"></div>

"mainform" is the id of my ice:form. I'm assuming that exp_cont comes from the component? Any ideas what to check and/or debug to see why nothing is showing? Is it supposed to show a text link or what is the output that I'm expecting? I'm using 1.7.0 on jboss 4.0.1sp1.

Profile for atomz4peace -> Messages posted by atomz4peace [121] Go to Page: Previous  1, 2, 3, 4, 5, 6, 7, 8, 9 Next 
Go to:   
Powered by JForum 2.1.7ice © JForum Team