[JBoss Seam] - Re: Crazy rendering after validation error (post 4.2 upgrade
by lowecg2004
Getting a bit further with this.
I'm using Trinidad (trinidad-*-1.2-07-may-SNAPSHOT.jar) and I'm using the <trh:body> tag in my pages, this alone was causing the duplication of my pages on validation error.
Along the same lines, <tr:commandLink> also causes the individual link to duplicate.
Has anyone come across this before?
Cheers,
C.
PS - I tried to replicate this with the SeamDiscs example however if I click on the Artists or Discs links at the top of the page I get the following exception:
09:02:16,203 ERROR [STDERR] 30-May-2007 09:02:16 com.sun.facelets.FaceletViewHandler handleRenderException
| SEVERE: Error Rendering View[/artists.xhtml]
| java.lang.IndexOutOfBoundsException: Index: 4,Size: 4
| at java.util.SubList.rangeCheck(AbstractList.java:746)
| at java.util.SubList.get(AbstractList.java:619)
| at org.jboss.seam.trinidad.EntityKeyManager.getKey(EntityKeyManager.java:53)
| at org.jboss.seam.trinidad.EntityCollectionModel.getRowKey(EntityCollectionModel.java:24)
| at org.apache.myfaces.trinidad.component.UIXCollection.getRowKey(UIXCollection.java:363)
| at org.apache.myfaces.trinidad.component.UIXCollection._saveStampState(UIXCollection.java:1138)
| at org.apache.myfaces.trinidad.component.UIXCollection.preRowDataChange(UIXCollection.java:684)
| at org.apache.myfaces.trinidad.component.UIXCollection.setRowKey(UIXCollection.java:420)
| at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableUtils$RowLoop._restoreOldState(TableUtils.java:60)
| at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableUtils$RowLoop.run(TableUtils.java:80)
| at org.apache.myfaces.trinidadinternal.renderkit.core.desktop.DesktopTableRenderer._renderTableRows(DesktopTableRenderer.java:903)
| at org.apache.myfaces.trinidadinternal.renderkit.core.desktop.DesktopTableRenderer.renderTableRows(DesktopTableRenderer.java:637)
| at org.apache.myfaces.trinidadinternal.renderkit.core.desktop.DesktopTableRenderer.renderTableContent(DesktopTableRenderer.java:363)
| at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.TableRenderer.encodeAll(TableRenderer.java:282)
| at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:184)
| at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:701)
| at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:525)
| at org.apache.myfaces.trinidad.render.RenderUtils.encodeRecursive(RenderUtils.java:70)
| at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:258)
| at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:280)
| at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:73)
| at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:153)
| at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:184)
| at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:701)
| at org.ajax4jsf.framework.renderer.RendererBase.renderChild(RendererBase.java:286)
| at org.ajax4jsf.framework.renderer.RendererBase.renderChildren(RendererBase.java:262)
| at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:189)
| at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:184)
| at org.ajax4jsf.framework.renderer.RendererBase.encodeChildren(RendererBase.java:121)
| at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
| at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:250)
| at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:280)
| at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:73)
| at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.renderContent(BodyRenderer.java:137)
| at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:153)
| at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.encodeAll(BodyRenderer.java:79)
| at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:184)
| at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:701)
| at org.apache.myfaces.trinidad.component.UIXComponentBase.__encodeRecursive(UIXComponentBase.java:1225)
| at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeAll(UIXComponentBase.java:721)
| at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
| at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
| at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
| at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
| at org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:232)
| at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:210)
| at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:167)
| at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:140)
| at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:93)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:59)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:55)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:47)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:55)
| at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:81)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:55)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:126)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:248)
| at org.jboss.seam.web.AbstractAjax4jsfFilter.doFilter(AbstractAjax4jsfFilter.java:35)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:55)
| at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:64)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:55)
| at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:126)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.ap
| 09:02:16,203 ERROR [STDERR] ache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:619)
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4049615#4049615
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4049615
18 years, 10 months
[JBoss jBPM] - Re: Signal a task on a html form submit
by cahimoped
I just solved my problem. I was trying to get my taskInstance to be signaled with code when I thought about another solution :
I don't put a dataform inside my form but the form inside my dataform. This way the default transition button can still work and I just have to put some javascript on it like that :
<jbpm:dataform>
| <f:facet name="header">
| Envoyer un fichier local
| </f:facet>
| <jbpm:datacell>
| <f:facet name="header">
| Selectionnez le fichier a envoyer :
| </f:facet>
| <form name="uploadFile" enctype="multipart/form-data" method="POST" action="uploadSuivi">
| <input class="file" type="file" name="suiviXLS"/>
| <input class="text" type="hidden" name="nomProjet" value="#{var['nomProjet']}"/>
| </form>
| </jbpm:datacell>
|
| <jbpm:datacell>
| <f:facet name="header">
| <h:outputText value="Actions"/>
| </f:facet>
| <tf:transitionButton transition="OK" value="Envoyer" onclick="document.forms['uploadFile'].submit();"/>
| </jbpm:datacell>
| </jbpm:dataform>
It works well, my task is validated, the next task is created, my servlet is called and my file saved... I'm happy but I'm feeling very stupid to think about that so late. I knew this should be easy :)
Btw I think a little more documentation must be written on EL (some examples would be great) and since jBPM JSF tags are still here in the new admin console and usable from jBPM and JSF users, I think they deserve a little Javadoc like the official JSF one : http://java.sun.com/javaee/javaserverfaces/1.2_MR1/docs/tlddocs/index.html.
That's absolutly not a urgent task... but it would help...
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4049612#4049612
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4049612
18 years, 10 months
[EJB 3.0] - Re: EJB-QL Convert timestamp to date
by kpiis
"mikezzz" wrote : Hi,
|
| I have a enitity with a timestamp field, but would like to query it with a date value. Is there a portable way to truncate a timestamp to a date within an ejb-ql query?
|
| E.g. something that would be functionally equivalent to the following Postgres query.
|
| SELECT * FROM foo WHERE date_trunc('day', foo.timestamp) = date '2007-03-01'
|
| Regards,
| Michael Barker.
The protable way is using Query.setParameter methods:
The quote from Monson-Haefel book:
If you need to pass java.util.Date or java.util.Calendar parameters into a query, you need to use special setParameter methods:
package javax.persistence;
public enum TemporalType {
DATE, //java.sql.Date
TIME, //java.sql.Time
TIMESTAMP //java.sql.Timestamp
}
public interface Query
{
Query setParameter(String name, java.util.Date value, TemporalType temporalType);
Query setParameter(String name, Calendar value, TemporalType temporalType);
Query setParameter(int position, Date value, TemporalType temporalType);
Query setParameter(int position, Calendar value, TemporalType temporalType);
}
A Date or Calendar object can represent a real date, a time of day, or a numeric timestamp. Because these object types can represent different things at the same time, you need to tell your Query object how it should use these parameters. The javax.persistence.TemporalType passed in as a parameter to the setParameter( ) method tells the Query interface what database type to use when converting the java.util.Date or java.util.Calendar parameter to a native SQL type.
It's working :) - I am using it.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4049611#4049611
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4049611
18 years, 10 months