En développement un écran très complexe dans une de nos applications, nous avons reçu ce type d’erreur, qui nous ont – au début – parues aléatoire. Après de nombreuses recherches, surtout afin de créer un cas de test satisfaisant, nous nous sommes aperçu que le problème se posait à cause d’un trop grand nombre de paramètres POST.
Voici l’anomalie qui se produit:
java.lang.IllegalArgumentException: null source
at java.util.EventObject.<init>(Unknown Source)
at javax.faces.event.SystemEvent.<init>(SystemEvent.java:71)
at javax.faces.event.ComponentSystemEvent.<init>(ComponentSystemEvent.java:73)
at javax.faces.event.PostRestoreStateEvent.<init>(PostRestoreStateEvent.java:73)
at com.sun.faces.lifecycle.RestoreViewPhase.deliverPostRestoreStateEvent(RestoreViewPhase.java:271)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:257)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at fr.test.framework.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:24)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at fr.test.framework.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:38)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:489)
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
at java.lang.Thread.run(Unknown Source)
En effet, JBoss se base sur TOMCAT qui lui même possède une limite non pas en taille mais en nombre de paramètres.
Afin de pallier au problème, soit vous limiter le nombre de paramètre de la page (pas forcément évident), soit vous pouvez augmenter le nombre de paramètres acceptés par Jboss 7 en ajoutant cette ligne au fichier de config standalone.xml
<system-properties>
<property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT" value="5000" />
</system-properties>
Le problème rencontré se traduit par une impossibilité de se connecter à une base oracle sous Unix suite à la modification des droits sur le fichier /dev/null.
Material Dialog : c’est quoi et comment l’utiliser ? - Tuto Android
On vous explique pas à pas les étapes dans JMeter pour enregistrer un scénario, définir les variables, configurer les threads et les loops dans JMeter. Le but : lancer les tirs de performance !