[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-1065) Entity Query should support multiple value bindings on restrictions.
by sal something (JIRA)
Entity Query should support multiple value bindings on restrictions.
--------------------------------------------------------------------
Key: JBSEAM-1065
URL: http://jira.jboss.com/jira/browse/JBSEAM-1065
Project: JBoss Seam
Issue Type: Bug
Components: Framework
Affects Versions: 1.2.0.GA
Reporter: sal something
Entity Query should support multiple value bindings on restrictions.
The use case would be the 'between' statement, as of now Entity Query will throw an exception using a 'between' statement:
Caused by: java.lang.IllegalArgumentException: there should be exactly one value binding in a restriction: applicationDeadline between #{vacancyBrowseSearch.appDeadlineStartDate} and #{vacancyBrowseSearch.appDeadlineEndDate}
at org.jboss.seam.framework.Query.parseEjbql(Query.java:145)
at org.jboss.seam.framework.EntityQuery.createQuery(EntityQuery.java:100)
at org.jboss.seam.framework.EntityQuery.getResultList(EntityQuery.java:41)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 3 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-909) RCFaces compatibility
by Daniel Wiell (JIRA)
RCFaces compatibility
---------------------
Key: JBSEAM-909
URL: http://jira.jboss.com/jira/browse/JBSEAM-909
Project: JBoss Seam
Issue Type: Bug
Affects Versions: 1.1.6.GA
Environment: JBoss Seam 1.1.6, JSF 1.1 RI (or MyFaces 1.1.5), Facelets 1.1.11, RCFaces 1.0b3 (or nightly from 20070221), Tomcat 5.5.20
Reporter: Daniel Wiell
1. Download RCFaces-facelets-starter-kit-v1-0b3.war (http://downloads.sourceforge.net/rcfaces/RCFaces-facelets-starter-kit-v1-...).
2. Deploy it in Tomcat.
3. Try the app - sorting the table works fine.
4. Build the "hibernate" example in Seam 1.1.6.
5. Copy over the jar files from the hibernate webapp to the "RCFaces-facelets-starter-kit" webapp, excluding the MyFaces jars and removing any dublicates.
6. Add "SeamListener" and "Seam Redirect Filter" to web.xml.
7. Add "SeamPhaseListener" to faces-config.xml.
8. Copy the components.xml and remove "bookingDatabase".
8. Redeploy the app.
9. Try it - when sorting you get the following stacktrace:
java.lang.IllegalStateException: No phase id bound to current thread (make sure you do not have two SeamPhaseListener instances installed)
at org.jboss.seam.contexts.PageContext.getPhaseId(PageContext.java:153)
at org.jboss.seam.contexts.PageContext.isRenderResponsePhase(PageContext.java:165)
at org.jboss.seam.contexts.PageContext.getCurrentReadableMap(PageContext.java:76)
at org.jboss.seam.contexts.PageContext.get(PageContext.java:66)
at org.jboss.seam.contexts.Contexts.lookupInStatefulContexts(Contexts.java:160)
at org.jboss.seam.Component.getInstance(Component.java:1635)
at org.jboss.seam.jsf.SeamVariableResolver.resolveVariable(SeamVariableResolver.java:53)
at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:134)
at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:65)
at com.sun.el.parser.AstValue.getValue(AstValue.java:106)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:56)
at org.rcfaces.core.internal.component.BasicComponentEngine.getInternalProperty(BasicComponentEngine.java:149)
at org.rcfaces.core.internal.component.BasicComponentEngine.getValue(BasicComponentEngine.java:402)
at org.rcfaces.core.internal.component.CameliaGridComponent.getValue(CameliaGridComponent.java:418)
at org.rcfaces.core.internal.component.CameliaGridComponent.getDataModel(CameliaGridComponent.java:401)
at org.rcfaces.renderkit.html.internal.renderer.DataGridRenderer$TableRenderContext.<init>(DataGridRenderer.java:2624)
at org.rcfaces.renderkit.html.internal.renderer.DataGridRenderer$TableRenderContext.<init>(DataGridRenderer.java:2691)
at org.rcfaces.renderkit.html.internal.renderer.DataGridRenderer.createTableContext(DataGridRenderer.java:677)
at org.rcfaces.renderkit.html.internal.service.DataGridService.writeJs(DataGridService.java:242)
at org.rcfaces.renderkit.html.internal.service.DataGridService.service(DataGridService.java:171)
at org.rcfaces.core.internal.config.ServicesRegistryImpl.afterPhase(ServicesRegistryImpl.java:121)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:254)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:29)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
10. Comment out the "SeamPhaseListener" and retry - now it works again.
It's too bad, since RCFaces seems like a really great component library.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 3 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3124) How to produce: No active JTA transaction on joinTransaction call
by Terry (JIRA)
How to produce: No active JTA transaction on joinTransaction call
-----------------------------------------------------------------
Key: JBSEAM-3124
URL: http://jira.jboss.com/jira/browse/JBSEAM-3124
Project: Seam
Issue Type: Quality Risk
Components: Core
Affects Versions: 2.0.1.GA
Environment: JBoss 4.2EAP, Faceslets
Reporter: Terry
Priority: Optional
Fix For: The future
Following unrelated exception is thrown, if in EntityQuery extented class, there is a space in # and { or EL of Restrictions list. eg,
private static final String[] RESTRICTIONS = {
"lower(orgCampus.id) = # {courseSysCourseList.selectedOrgCampusIdConverted}",
"lower(org.id) = #{courseSysCourseList.selectedOrgIdConverted}",
}
Caused by: javax.persistence.TransactionRequiredException: No active JTA transaction on joinTransaction call
at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:469)
at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:442)
at org.jboss.seam.persistence.EntityManagerProxy.joinTransaction(EntityManagerProxy.java:120)
at org.jboss.seam.transaction.AbstractUserTransaction.enlist(AbstractUserTransaction.java:73)
at org.jboss.seam.framework.EntityQuery.joinTransaction(EntityQuery.java:230)
Perhaps a more appropriate exception would be helpful in this instance.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 3 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3897) MultipartRequest Error: 100% CPU (for 2.0.2.GA) or Missing data (for trunk)
by Bryan Brouckaert (JIRA)
MultipartRequest Error: 100% CPU (for 2.0.2.GA) or Missing data (for trunk)
---------------------------------------------------------------------------
Key: JBSEAM-3897
URL: https://jira.jboss.org/jira/browse/JBSEAM-3897
Project: Seam
Issue Type: Bug
Components: Core
Affects Versions: 2.0.2.GA, The future
Environment: Seam 2.0.2.GA
Reporter: Bryan Brouckaert
Priority: Critical
There is a fundamental error in MultipartRequest that causes 100% CPU usage in a very specific case. I had it for version 2.0.2.GA, but I saw in the code that the issue is still in the trunk. In the trunk version it will not caus 100% CPU, but the rest of the request will be ignored.
The errors that cause it
--------------------------------
1) If a multipart header is longer then 2K, the class will at a certain point start reading blocks of 0 bytes. It does this because it only reads the amound of bytes that are still free in the buffer. Because the buffer is only 2 K big and a header must be entirely in the buffer in order to be processed, this can be 0 bytes if the header is bigger then 2 K. The trunk solves this by using a loop counter, while it should test if there is still place in the buffer before reading that amount of bytes. Of course, 2 K headers should not occur, but it should be detected.
2) The code assumes that the CR-LF that devides the data and the headers are in the same block of the buffer as the header itself. If this isn't the case (you must be unlucky for this to happen) the emtpy line isn't treated as the divider between headers and data but as a header itself. Because the empty lines is treated as a header, the data below it is also treated as a header. Because data can easly be more then 2 K, you get quickly into error 1.
I had a case where the first 2K of the request is always the same for a specific user. Unfortuantely, the only part that did not fit in the first 2K was the viewstate, which is easly bigger then 2K. Because the boundary has a random number, the size varried slightly and for about 50% of the requests made by a certain user we got the above problem. The only thing the "fix" of the trunk would have done, is throwing an error instaid of using 100% CPU but the user would have been very unhapy.
My solution to the problem
------------------------------------
I did not have time to wait for a fix, I do use seam for a very critical healthcare platform, I fixed it myself.
1) Dynamicly growning buffers in case the headers are bigger then 2K. At 128 K I throw an error, no header should be longer then that (probably that is more then frendly enough)
2) Check if a header isn't an empty line, if so threat it as the devider between the header and data.
Some closure notes
----------------------------
I included the patched version (2.0.2.GA) that I'm using now. My unlucky user confirmed that it solved the problem, all his files where uploaded without any problem.
The loopcount is a good idea, it is always possible that a stream keeps returning 0 bytes even if you request more then that. But I assure you, that was not the problem, the problem was that the code only requested 0 bytes. I have a 1.8 G logfile to prove it, and I will send it to you if you don't beleave me ;-)
I had to add some TRACE info in order find the solution. Since nobody in his right mind has trace on by default I left it in.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 4 months