im using a TreeTable with 15 columns and 12 contains a cellEditor. After 29 rows i cant expand any further nodes and the site seems to be broken (no buttons are working). After removing some cellEditor i can add more rows until the site is broken again. If i remove all cellEditors its working fine. If i add only a few its wokring fine but extrem slow. this behaviour is only on my server ( running linux with a tomcat 7), locally everything is running fine.
Im using PF 11.0.4 and Mojarra 2.3.14. Tested on Tomcat 7 and Tomcat 8.
here is a simple version as i said this only works locally
My xhtml:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<title>PrimeFaces Test</title>
<h:outputScript name="test.js" />
<h:outputStylesheet name="test.css" />
</h:head>
<h:body>
<h1>#{testView.string}</h1>
<h:form id="frmTest">
<p:treeTable id="table" var="prozess" editable="true" editMode="cell"
editInitEvent="dblclick" value="#{testView.root}"
widgetVar="proTable" emptyMessage="Kein Prozess gefunden"
scrollHeight="70vh" scrollable="true">
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<f:facet name="input">
<p:inputText value="#{prozess}" />
</f:facet>
<f:facet name="output">
<h:outputText value="#{prozess}" />
</f:facet>
</p:cellEditor>
</p:column>
</p:treeTable>
</h:form>
</h:body>
</html>
My bean:
package org.primefaces.test;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.math.BigDecimal;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
import org.primefaces.model.CheckboxTreeNode;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.TreeNode;
import org.primefaces.model.charts.ChartData;
import org.primefaces.model.charts.donut.DonutChartDataSet;
import org.primefaces.model.charts.donut.DonutChartModel;
import lombok.Data;
@Data
@Named
@ViewScoped
public class TestView implements Serializable {
/**
*
*/
private static final long serialVersionUID = -8053071088222244162L;
private String string;
private TreeNode<String> root;
@PostConstruct
public void init() {
setString("Welcome to PrimeFaces!!!");
buildDoc();
}
public void buildDoc(){
root = new DefaultTreeNode<String>();
for(int i = 0;i<100;i++){
DefaultTreeNode<String> noroot = new DefaultTreeNode<String>("Node"+i,root);
for(int j=0;j<20;j++){
new DefaultTreeNode<String>("Node"+j,noroot);
}
}
}
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
/**
* @return the root
*/
public TreeNode<String> getRoot() {
return root;
}
/**
* @param root the root to set
*/
public void setRoot(TreeNode<String> root) {
this.root = root;
}
}
Problem was a firewall at my server installation, closed every connection with more than 500 params