[jira] [Updated] (WW-3462) connection open after report generation
[ https://issues.apache.org/jira/browse/WW-3462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3462: -- Fix Version/s: 3.x connection open after report generation --- Key: WW-3462 URL: https://issues.apache.org/jira/browse/WW-3462 Project: Struts 2 Issue Type: Bug Components: Plugin - JasperReports Affects Versions: 2.1.8 Environment: jdk1.5.0_16 Reporter: Salva Fix For: 3.x Original Estimate: 20m Remaining Estimate: 20m If a report generation was called with connection like following code, database connection will not be closed. I suggest to modify doExecute method of org.apache.struts2.views.jasperreports.JasperReportsResult class after the exportReportToBytes, by adding, in case of conn not null, the conn closing. struts.xml ... action name=report class=myorg.actions.tests.Report result name=success type=jasper param name=location/test/Report.jasper/param param name=connectionmyConnection/param param name=contentDispositionattachment/param param name=formatPDF/param /result /action Action execute method code ... DataSource ds = (DataSource) ictx.lookup(java:jdbc/myApp); myConnection = ds.getConnection(); ... -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3578) replace function is called multiple times, which can be done in one run
[ https://issues.apache.org/jira/browse/WW-3578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3578: -- Fix Version/s: 3.x replace function is called multiple times, which can be done in one run --- Key: WW-3578 URL: https://issues.apache.org/jira/browse/WW-3578 Project: Struts 2 Issue Type: Bug Components: Plugin - JasperReports Affects Versions: 2.2.1.1 Reporter: Xiaoming Shi Fix For: 3.x In the function makeXmlJavaIdentifier (./struts-2.2.1/src/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspUtil.java line: 1059) The replace function is called 3 times, which can be done in one run with a for loop. StringBuilder sb = new StringBuilder(name.length()); for(int i = 0; i name.length(); i++) { char c = name.charAt(i); if (c == '-') sb.append($1); else if (c == '.') sb.append($2); else if (c == ':') sb.append($3); else sb.append(c); } return sb.toString(); The second method can be much faster. (Similar to the MySQL bug http://bugs.mysql.com/bug.php?id=45699) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3456) Input field tags performance degradation on POST versus GET.
[ https://issues.apache.org/jira/browse/WW-3456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3456: -- Fix Version/s: Future Please check the latest version, if the problem remains, please attache some test case with more details Input field tags performance degradation on POST versus GET. Key: WW-3456 URL: https://issues.apache.org/jira/browse/WW-3456 Project: Struts 2 Issue Type: Bug Components: Other Affects Versions: 2.0.11.2 Environment: Operating System: Solaris 10, CPU: UltraSPARC T1 (32 1Ghz proccessors), Application server: glassfish V2 Reporter: Tom Rispoli Fix For: Future I have a JSP that uses s:iterator to display a large number of rows (up to 2000), each row contains input fields displayed using s:checkbox and s:textfield. When the page is initially opened (the request is done using an http GET) the s:checkbox tag averages from .0028 to .0033 seconds to run and the s:textfield averages from .008 to .012 seconds. Once the page is opened on the browser and the form is submitted (an http POST) then when the JSP renders the data (same code on the JSP generating html for the same data) the times get much slower. The s:checkbox averages from .018 to .008 seconds and the s:textfield averages from .027 to .049 seconds. There is a custom tag that is used on the rows as well, it uses OGNL to get its value but its performance remains the same (around .0004 seconds) for all requests, so it doesn't appear to be OGNL that is causing this behavior. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3453) ObjectFactory.getObjectFactory() returns null from ObjectFactory in org.apache.struts2.config.Settings.getDefaultInstance()
[ https://issues.apache.org/jira/browse/WW-3453?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3453: -- Fix Version/s: 3.x ObjectFactory.getObjectFactory() returns null from ObjectFactory in org.apache.struts2.config.Settings.getDefaultInstance() --- Key: WW-3453 URL: https://issues.apache.org/jira/browse/WW-3453 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.8.1 Reporter: Alex Zeng Fix For: 3.x Trying to build my own struts configuration by adding this line into struts.properties struts.configuration=org.apache.struts2.config.MyPropertiesSettings Looking into org.apache.struts2.config.Settings.java the line defaultImpl = (Settings) ObjectFactory.getObjectFactory().buildBean(Thread.currentThread().getContextClassLoader().loadClass(className), null); in method getDefaultInstance() throws NullPointerException since ObjectFactory.getObjectFactory() returns null. Simply changing it to new ObjectFactory() fixes the problem. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-2935) Review and update Struts 2 tutorials for 2.1.x release
[ https://issues.apache.org/jira/browse/WW-2935?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2935: -- Fix Version/s: Future Review and update Struts 2 tutorials for 2.1.x release -- Key: WW-2935 URL: https://issues.apache.org/jira/browse/WW-2935 Project: Struts 2 Issue Type: Task Components: Documentation Reporter: Philip Luppens Fix For: Future Per the comment in the wiki page at http://cwiki.apache.org/confluence/pages/viewpage.action?pageId=33168 we should review the tutorials before releasing a 2.1.x GA, or we will make a poor impression for new users. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3358) Optiontransferselect doesnot move the values to the other box when there is a hypen in the value
[ https://issues.apache.org/jira/browse/WW-3358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3358: -- Fix Version/s: 3.x Optiontransferselect doesnot move the values to the other box when there is a hypen in the value - Key: WW-3358 URL: https://issues.apache.org/jira/browse/WW-3358 Project: Struts 2 Issue Type: Bug Components: Plugin - Tags Affects Versions: 2.1.6 Environment: WAS 6.1 , Struts 2.1.6 Reporter: Sathiya Gopalakrishnan Assignee: Lukasz Lenart Fix For: 3.x In optiontransferselect , when the list value has some value like this say 1000-1212 , whenever the hypen is present the moveselectedoptions javascript doesnot move the value to the other box. because when the javascript sees -1 in the value ,it assumes it to be the headerkey -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3328) make sitemesh plugin OldDecorator2NewStrutsFreemarkerDecorator configurable
[ https://issues.apache.org/jira/browse/WW-3328?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3328: -- Fix Version/s: 3.x make sitemesh plugin OldDecorator2NewStrutsFreemarkerDecorator configurable --- Key: WW-3328 URL: https://issues.apache.org/jira/browse/WW-3328 Project: Struts 2 Issue Type: Improvement Components: Plugin - SiteMesh Reporter: zhouyanming Assignee: musachy Fix For: 3.x struts2 supports sitemesh2.4 now, https://issues.apache.org/struts/browse/WW-3291 I'd like to extends the default OldDecorator2NewStrutsFreemarkerDecorator to do something fantastic,like compress page,render html fragment for AJAX request I with struts provide a @Inject way. here is sample code public class MyOldDecorator2NewStrutsFreemarkerDecorator extends OldDecorator2NewStrutsFreemarkerDecorator { public static final String X_FRAGMENT = X-FRAGMENT; public MyOldDecorator2NewStrutsFreemarkerDecorator(Decorator oldDecorator) { super(oldDecorator); } protected void render(Content content, HttpServletRequest request, HttpServletResponse response, ServletContext servletContext, ActionContext ctx) throws ServletException, IOException { String replacement = request.getHeader(X_FRAGMENT); if (replacement != null) { StringWriter writer = new StringWriter(); content.writeBody(writer); response.getWriter().write(HtmlUtils.compress(replacement.split(,), writer.toString())); return; } else { super.render(content, request, response, servletContext, ctx); } } } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-2954) s:actionerror and s:actionmessage prevent error page handling and throws java.lang.IllegalStateException
[ https://issues.apache.org/jira/browse/WW-2954?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2954: -- Fix Version/s: Future You shouldn't access jsp pages directly, they should be hidden behind actions and results s:actionerror and s:actionmessage prevent error page handling and throws java.lang.IllegalStateException Key: WW-2954 URL: https://issues.apache.org/jira/browse/WW-2954 Project: Struts 2 Issue Type: Bug Components: Core Actions Affects Versions: 2.1.2 Environment: Tomcat 5.5 Reporter: Vlasov Igor Fix For: Future I have simple application with error page in web.xml error-page exception-typejava.lang.Exception/exception-type location/admin/http500.jsp/location /error-page Then i have a simple action and a simple page I try to generate an exception on this page: % String v=null; v.length();% s:actionmessage/ - this throws me to error page AND this is not: s:actionmessage/ % String v=null; v.length();% It stops render the page and generate java.lang.IllegalStateException in the log -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-2957) The response charset encoding is overridden by XSL Result type when no xsl template is provided.
[ https://issues.apache.org/jira/browse/WW-2957?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2957: -- Fix Version/s: 3.x Did you try to use the latest available version ? The response charset encoding is overridden by XSL Result type when no xsl template is provided. Key: WW-2957 URL: https://issues.apache.org/jira/browse/WW-2957 Project: Struts 2 Issue Type: Bug Components: Core Actions Affects Versions: 2.0.15 Reporter: shaked s Fix For: 3.x When using xsl result type with no xsl file, there is no way to change the default charset encoding (ISO-8859-1), the result overrides the content type with text/xml value which restore the response charset to the default value. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (WW-3353) StrutsTestCase doesn't work with rest-plugin
[ https://issues.apache.org/jira/browse/WW-3353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13165929#comment-13165929 ] Lukasz Lenart commented on WW-3353: --- Maybe we should create RestStrutsTestCase class StrutsTestCase doesn't work with rest-plugin Key: WW-3353 URL: https://issues.apache.org/jira/browse/WW-3353 Project: Struts 2 Issue Type: Bug Components: Plugin - REST Affects Versions: 2.1.8 Reporter: Bill Stilwell Fix For: 3.x Attachments: GetOrdersStrutsTest.java, pom.xml StrutsTestCase doesn't seem to work with rest-plugin. I can create action mapping/action proxies, but they don't work - for e.g., a request for /orders/3 against the rest-showcase controller doesn't call setId. I will attach a sample unit test that demonstrates the issue. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3353) StrutsTestCase doesn't work with rest-plugin
[ https://issues.apache.org/jira/browse/WW-3353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3353: -- Fix Version/s: 3.x StrutsTestCase doesn't work with rest-plugin Key: WW-3353 URL: https://issues.apache.org/jira/browse/WW-3353 Project: Struts 2 Issue Type: Bug Components: Plugin - REST Affects Versions: 2.1.8 Reporter: Bill Stilwell Fix For: 3.x Attachments: GetOrdersStrutsTest.java, pom.xml StrutsTestCase doesn't seem to work with rest-plugin. I can create action mapping/action proxies, but they don't work - for e.g., a request for /orders/3 against the rest-showcase controller doesn't call setId. I will attach a sample unit test that demonstrates the issue. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3348) IndexOutOfBoundsException in ValueStackDataSource
[ https://issues.apache.org/jira/browse/WW-3348?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3348: -- Fix Version/s: 3.x IndexOutOfBoundsException in ValueStackDataSource - Key: WW-3348 URL: https://issues.apache.org/jira/browse/WW-3348 Project: Struts 2 Issue Type: Bug Components: Plugin - JasperReports Affects Versions: 2.1.8 Environment: WinXP, Tomcat Reporter: Mark Gorokhov Fix For: 3.x Scenario: - Jasper report with 4 subreports. - Subreports content is provided from org.apache.struts2.views.jasperreports.ValueStackDataSource Exception java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 is thrown from org.apache.struts2.views.jasperreports.ValueStackDataSource: public boolean next() throws JRException { if (firstTimeThrough) { firstTimeThrough = false; } else { valueStack.pop(); == throws exception } . . . } Exception is thrown if the last row from subreport fits the current page and a new page is started. Thus the exception is data dependent. The following workaround works nicely: public boolean next() throws JRException { if (firstTimeThrough) { firstTimeThrough = false; } else { if (valueStack.size() 0) { valueStack.pop(); } } . . . } Please test and implement in the next release. The following does not work (main report is generated partially, stops on empty valueStack condition): public boolean next() throws JRException { if (firstTimeThrough) { firstTimeThrough = false; } else { if (valueStack.size() == 0) { return false; } valueStack.pop(); } . . . } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3352) sometimes can't get the properties in the resource file
[ https://issues.apache.org/jira/browse/WW-3352?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3352: -- Fix Version/s: Future Did you try to ask on the User ML ? Did you try to use the latest version ? sometimes can't get the properties in the resource file --- Key: WW-3352 URL: https://issues.apache.org/jira/browse/WW-3352 Project: Struts 2 Issue Type: Bug Affects Versions: 2.0.11.2 Environment: Suse 10, java version 1.6.0_11 ,struts2.0.11.2, tomcat 6.0.18 Reporter: hamal lin Fix For: Future hi,all here is my thing. when the web application has run several days,the properties in the resource file can't be got ,the getText func announced NullPointerExceptiones, in the beginning the situation is ok. why did this happen? am i set the proerties wrong ? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3019) ConcurrentModificationException using s:iterator (intermittent)
[ https://issues.apache.org/jira/browse/WW-3019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3019: -- Fix Version/s: Future ConcurrentModificationException using s:iterator (intermittent) --- Key: WW-3019 URL: https://issues.apache.org/jira/browse/WW-3019 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.6 Environment: OS: Linux 2.6.18-92.1.13.el5 #1 SMP Wed Sep 24 19:33:52 EDT 2008 i686 i686 i386 GNU/Linux Glassfish: Version = Sun Java System Application Server 9.1_02 Reporter: Chris Dunphy Fix For: Future Attachments: layout_wait.jsp, struts.xml, tiles.xml, viewrequest.jsp, wait.jsp I have an intermittent problem using the s:iterator tag with the waitAndExec interceptor. Here is the file that I am trying to insert into the tiles layout (viewrequest.jsp): %@ taglib prefix=s uri=/struts-tags% s:if test=empeRequest.messages.size() 0 div class=box style=background-color: #CC h3s:property value=empeRequest.description //h3 ul s:iterator value=empeRequest.messages s:if test=status.toString() == 'NORMAL' li style=background-color: #CCFFCCs:property value=message //li /s:if s:elseif test=status.toString() == 'WARNING' li style=background-color: #CCs:property value=message //li /s:elseif s:elseif test=status.toString() == 'ERROR' li style=background-color: #FFs:property value=message //li /s:elseif /s:iterator /ul /div /s:if This is the layout page I am including the above file in (waitlayout.jsp): %@ taglib uri=http://tiles.apache.org/tags-tiles; prefix=tiles% %@ taglib prefix=s uri=/struts-tags% ?xml version=1.0 encoding=utf-8? !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd; html xmlns=http://www.w3.org/1999/xhtml; xml:lang=en head meta http-equiv=refresh content=5;url=s:url includeParams=all / / title${application.title}/title style type=text/css@import url( css/empe.css );/style /head body div class=force-scrollbarnbsp;/div div class=main div class=content tiles:insertAttribute name=body / tiles:insertAttribute name=viewRequest / /div /div /body /html This sometimes crashses with the following stack trace: Caused by: java.util.ConcurrentModificationException at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) at java.util.AbstractList$Itr.next(AbstractList.java:343) at org.apache.struts2.components.IteratorComponent.end(IteratorComponent.java:266) at org.apache.struts2.views.jsp.IteratorTag.doAfterBody(IteratorTag.java:69) at org.apache.jsp.jsp.fragments.viewrequest_jsp._jspx_meth_s_iterator_0(viewrequest_jsp.java from :177) at org.apache.jsp.jsp.fragments.viewrequest_jsp._jspx_meth_s_if_0(viewrequest_jsp.java from :108) at org.apache.jsp.jsp.fragments.viewrequest_jsp._jspService(viewrequest_jsp.java from :67) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411) at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:855) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:703) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:660) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:578) at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:997) at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:682) at org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:103)
[jira] [Updated] (WW-3057) i18n tags lost value problem
[ https://issues.apache.org/jira/browse/WW-3057?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3057: -- Fix Version/s: Future Did you try to use the latest version ? i18n tags lost value problem Key: WW-3057 URL: https://issues.apache.org/jira/browse/WW-3057 Project: Struts 2 Issue Type: Bug Components: Other Affects Versions: 2.0.9 Environment: JVM=1.5.0_16 Struts 2.0.9 Reporter: Pedro Miguel Fix For: Future i18n tags works OK. However, when many people access in the application, it doesn't get the values, and print the keys. For example: // * .properties file * index.submit=Submit // * JSP file s:text name=index.submit/ //Print: Submit //THEN s:text name=index.submit/ //Print: index.submit -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3074) Naming conventions for xml elements of *-validation.xml files are inconsistent
[ https://issues.apache.org/jira/browse/WW-3074?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3074: -- Fix Version/s: 3.x Naming conventions for xml elements of *-validation.xml files are inconsistent -- Key: WW-3074 URL: https://issues.apache.org/jira/browse/WW-3074 Project: Struts 2 Issue Type: Improvement Reporter: Chris Mawata Fix For: 3.x Names of validators are all lower case but the names of their parameters are camel case e.g. field-validator type=stringlength param name=maxLength25/param message.../message /field-validator Since they are literal strings you don't notice unless you have tests for your validations -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3048) %{getText('login.username')} always uses the en_US locale instead of ActionContext's locale
[ https://issues.apache.org/jira/browse/WW-3048?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3048: -- Fix Version/s: 3.x %{getText('login.username')} always uses the en_US locale instead of ActionContext's locale --- Key: WW-3048 URL: https://issues.apache.org/jira/browse/WW-3048 Project: Struts 2 Issue Type: Bug Components: Other Affects Versions: 2.1.6 Environment: Linux(Ubuntu) 2.6.24-19-generic; Sun Java 1.5.0_16; Tomcat 6.0.18; Intel x86 32-bit CPU; integrated with Tile 2.0.6 and Spring Framework 2.5.5 Reporter: jason Fix For: 3.x I have two property files: Messages.properties (the default locale) and Messages_de.properties (German locale). But when i use the following tag with the browser's locale set to de_DE: s:textfield id=username name=username label=%{getText('login.username')} / The output always uses the default locale's property file, i.e. Messages.properties. I even tries to use the request_locale like this: http://myserver:8080/mycontext/myaction.action?request_locale=de But the result is the same! Then I tries to use s:debug/ on the jsp page, and i can see the locale property for 'myaction' object in valueStack is set to 'en_US', but the com.opensymphony.xwork2.ActionContext.locale is set to de_DE. Then I copies the code from Debug.java and put it to myaction's execute() method: ValueStack stack = ActionContext.getContext().getActionInvocation().getStack(); Iterator iter = stack.getRoot().iterator(); List stackValues = new ArrayList(stack.getRoot().size()); OgnlReflectionProvider reflectionProvider = new OgnlReflectionProvider(); OgnlUtil ognlUtil = new OgnlUtil(); reflectionProvider.setOgnlUtil(ognlUtil); while (iter.hasNext()) { Object o = iter.next(); Map values; try { values = reflectionProvider.getBeanMap(o); } catch (Exception e) { throw new StrutsException(Caught an exception while getting the property values of + o, e); } System.out.print(values); } Here i can see the locale property for 'myaction' object in valueStack is set to de_DE, this is correct. My question is why the s:debug/ output for myaction object's locale property is always 'en_US' but my copied code outputs 'de_DE'? and does the %{getText('login.username')} ognl expression use the ActionContext's locale? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (WW-3019) ConcurrentModificationException using s:iterator (intermittent)
[ https://issues.apache.org/jira/browse/WW-3019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13165934#comment-13165934 ] Chris Dunphy commented on WW-3019: -- Hello, I am out of the office until Friday, December 9th, 2011. If you require assistance, please contact one of my colleagues in the Eng - Core Communication Applications team. Thank you, // Chris Dunphy ConcurrentModificationException using s:iterator (intermittent) --- Key: WW-3019 URL: https://issues.apache.org/jira/browse/WW-3019 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.6 Environment: OS: Linux 2.6.18-92.1.13.el5 #1 SMP Wed Sep 24 19:33:52 EDT 2008 i686 i686 i386 GNU/Linux Glassfish: Version = Sun Java System Application Server 9.1_02 Reporter: Chris Dunphy Fix For: Future Attachments: layout_wait.jsp, struts.xml, tiles.xml, viewrequest.jsp, wait.jsp I have an intermittent problem using the s:iterator tag with the waitAndExec interceptor. Here is the file that I am trying to insert into the tiles layout (viewrequest.jsp): %@ taglib prefix=s uri=/struts-tags% s:if test=empeRequest.messages.size() 0 div class=box style=background-color: #CC h3s:property value=empeRequest.description //h3 ul s:iterator value=empeRequest.messages s:if test=status.toString() == 'NORMAL' li style=background-color: #CCFFCCs:property value=message //li /s:if s:elseif test=status.toString() == 'WARNING' li style=background-color: #CCs:property value=message //li /s:elseif s:elseif test=status.toString() == 'ERROR' li style=background-color: #FFs:property value=message //li /s:elseif /s:iterator /ul /div /s:if This is the layout page I am including the above file in (waitlayout.jsp): %@ taglib uri=http://tiles.apache.org/tags-tiles; prefix=tiles% %@ taglib prefix=s uri=/struts-tags% ?xml version=1.0 encoding=utf-8? !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd; html xmlns=http://www.w3.org/1999/xhtml; xml:lang=en head meta http-equiv=refresh content=5;url=s:url includeParams=all / / title${application.title}/title style type=text/css@import url( css/empe.css );/style /head body div class=force-scrollbarnbsp;/div div class=main div class=content tiles:insertAttribute name=body / tiles:insertAttribute name=viewRequest / /div /div /body /html This sometimes crashses with the following stack trace: Caused by: java.util.ConcurrentModificationException at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) at java.util.AbstractList$Itr.next(AbstractList.java:343) at org.apache.struts2.components.IteratorComponent.end(IteratorComponent.java:266) at org.apache.struts2.views.jsp.IteratorTag.doAfterBody(IteratorTag.java:69) at org.apache.jsp.jsp.fragments.viewrequest_jsp._jspx_meth_s_iterator_0(viewrequest_jsp.java from :177) at org.apache.jsp.jsp.fragments.viewrequest_jsp._jspx_meth_s_if_0(viewrequest_jsp.java from :108) at org.apache.jsp.jsp.fragments.viewrequest_jsp._jspService(viewrequest_jsp.java from :67) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411) at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:855) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:703) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:660) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:578) at
[jira] [Updated] (WW-2904) Problem with s:datetimepicker ../ on the days following the last month of the year (or days before the first month)
[ https://issues.apache.org/jira/browse/WW-2904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2904: -- Fix Version/s: 3.x Dojo plugin is deprecated and will be removed from the next major release Problem with s:datetimepicker ../ on the days following the last month of the year (or days before the first month) - Key: WW-2904 URL: https://issues.apache.org/jira/browse/WW-2904 Project: Struts 2 Issue Type: Bug Components: Plugin - Dojo Tags Affects Versions: 2.0.11.1, 2.0.11.2, 2.0.12, 2.0.13, 2.0.14 Reporter: Quinet Jérémie Fix For: 3.x When choosing a day that is after the 12/31 of the current year or before the 01/01 the month used by the datetimepicker taglib is not the correct one. I've seen the answer to the WW-2473 issue and understood it's fixed in the 2.1.x versions but i think i'm not the only one that is currently using only GA and would like to see this bug fixed for the 2.0.X branch. After checking the problem i've found it's in the DatePicker.js dojo file, the test to check if the day to display is before or after the current month is incorrect (line 243) : var curClass = (nextDate.getMonth()this.curMonth.getMonth())?'previous':(nextDate.getMonth()==this.curMonth.getMonth())?'current':'next'; it doesn't test if the day is on the next (or previous) year. Checking on the last 0.4.X dojo version available (0.4.3) this problem is fixed (i don't know which dojo version struts 2.0.14 currently use), the line is replaced with : var curClass = (nextDate.getMonth() != this.curMonth.getMonth() Number(nextDate) Number(this.curMonth))?'previous':(nextDate.getMonth()==this.curMonth.getMonth())?'current':'next'; Couldn't it be possible to use the 0.4.3 version of dojo for the next 2.0.X version of Struts ? Thanks. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3448) query-string support of the s:form tag is incomplete
[ https://issues.apache.org/jira/browse/WW-3448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3448: -- Fix Version/s: 3.x query-string support of the s:form tag is incomplete Key: WW-3448 URL: https://issues.apache.org/jira/browse/WW-3448 Project: Struts 2 Issue Type: Bug Components: Plugin - Spring Affects Versions: 2.2.1 Reporter: Iwasa Kazmi Fix For: 2.3.x Attachments: ServletUrlRenderer.java.patch If the namespace is specified in the s:form tag, and the action name was followed by query string, the url is not rendered correctly. eg. s:form action=View?msgId=%{msgId} namespace=/forum -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3448) query-string support of the s:form tag is incomplete
[ https://issues.apache.org/jira/browse/WW-3448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3448: -- Component/s: (was: Plugin - Tags) Plugin - Spring Affects Version/s: (was: 2.1.8.1) 2.2.1 Fix Version/s: (was: 3.x) 2.3.x query-string support of the s:form tag is incomplete Key: WW-3448 URL: https://issues.apache.org/jira/browse/WW-3448 Project: Struts 2 Issue Type: Bug Components: Plugin - Spring Affects Versions: 2.2.1 Reporter: Iwasa Kazmi Fix For: 2.3.x Attachments: ServletUrlRenderer.java.patch If the namespace is specified in the s:form tag, and the action name was followed by query string, the url is not rendered correctly. eg. s:form action=View?msgId=%{msgId} namespace=/forum -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3261) Error DateTimePicker when erase input then click again the calendar in struts2-dojo-plugin-2.1.6
[ https://issues.apache.org/jira/browse/WW-3261?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3261: -- Fix Version/s: 3.x Dojo plugin is deprecated and will be removed from the next major release Error DateTimePicker when erase input then click again the calendar in struts2-dojo-plugin-2.1.6 Key: WW-3261 URL: https://issues.apache.org/jira/browse/WW-3261 Project: Struts 2 Issue Type: Bug Components: Plugin - Dojo Tags Affects Versions: 2.1.6 Reporter: nikunj mulani Fix For: 3.x When setting a displayFormat in the sx:datetimepicker/ tag, there is a bug on opening two times the calendar, if we erase the choosed date before the second opening. Use case : The date field is empty. We open the calendar and pick a date. The date is well filled in. We erase the date in the input field. We open again the calendar = All dates are NaN (see screenchot) Refer issue id = 2094, 2300 It would be resolve in this version but unfortunatly same over here. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-2998) Serious OGNL Performance Issues
[ https://issues.apache.org/jira/browse/WW-2998?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2998: -- Fix Version/s: 2.3.x Could you try to use the latest version ? There was a lot of improvements regarding OGNL Serious OGNL Performance Issues --- Key: WW-2998 URL: https://issues.apache.org/jira/browse/WW-2998 Project: Struts 2 Issue Type: Improvement Components: Expression Language Affects Versions: 2.0.11 Environment: Windows XP 5.1 (2Gb, dual-core 1.8GHz), Java 1.5.0_08, Tomcat 5.5 Reporter: Matthew Fix For: 2.3.x I am currently running Struts 2.0.11 (planning to upgrade soon) with OGNL 2.6.11 and am having significant trouble with the appalling performance of OGNL. The following XML using Struts 2 Tags and OGNL takes (using the s2 profiling) 2328ms to render %@ page contentType=text/xml %%-- --%%@ taglib prefix=s uri=/struts-tags %%-- --%%@ taglib uri=http://java.sun.com/jsp/jstl/core; prefix=c %%-- --%?xml version=1.0 ? response entities s:iterator value=entities id=entity entity %-- --%id=s:property value=id/ %-- --%name=s:property value=name/ %-- --%externalId=s:property value=externalId/ %-- --%color=s:property value=renderColor/ %-- --%image=s:property value=image.path/ %-- --%includeInKey=s:property value=includeInKey/ %-- --%orderRank=s:property value=orderRank/ %-- --% / /s:iterator /entities /response The exact same functionality, using JSTL tags and EL, takes 15ms %@ page contentType=text/xml %%-- --%%@ taglib prefix=s uri=/struts-tags %%-- --%%@ taglib uri=http://java.sun.com/jsp/jstl/core; prefix=c %%-- --%?xml version=1.0 ? response entities c:forEach items=${entities} var=entity entity %-- --%id=c:out value=${entity.id}/ %-- --%name=c:out value=${entity.name}/ %-- --%externalId=c:out value=${entity.externalId}/ %-- --%color=c:out value=${entity.renderColor}/ %-- --%image=c:out value=${entity.image.path}/ %-- --%includeInKey=c:out value=${entity.includeInKey}/ %-- --%orderRank=c:out value=${entity.orderRank}/ %-- --% / /c:forEach /entities /response In this case the S2/OGNL is 150x (!) slower than the JSTL/EL approach. Now clearly in this case the JSTL/EL approach can be used to get decent performance, but when using S2's Freemarker based tags that option isn't available. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3095) URL has no setEncoding
[ https://issues.apache.org/jira/browse/WW-3095?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3095: -- Fix Version/s: Future URL has no setEncoding -- Key: WW-3095 URL: https://issues.apache.org/jira/browse/WW-3095 Project: Struts 2 Issue Type: Bug Components: Plugin - Tags Affects Versions: 2.1.6 Environment: Struts 2.1.6 TC 6.0.14 JDK 1.6.0.10 Reporter: Martin Gainty Fix For: Future If I set encoding the encoding to UTF-8 in struts.properties as struts.i18n.encoding=UTF-8 //If I implement the include tag I see all appropriate annotations e.g. @StrutsTag(name=include, tldTagClass=org.apache.struts2.views.jsp.IncludeTag, description=Include a servlet's output + (result of servlet or a JSP page)) public class Include extends Component { //more importantly the include will support the STRUTS_I18N_ENCODING DefaultEncoding with this inject //annotation @Inject(StrutsConstants.STRUTS_I18N_ENCODING) public void setDefaultEncoding(String encoding) { defaultEncoding = encoding; } //but viewing the URL code I see @StrutsTag(name=url, tldTagClass=org.apache.struts2.views.jsp.URLTag, description=This tag is used to create a URL) public class URL extends ContextBean //there is no setDefaultEncoding which means any new encodings in struts.properties will not be reflected here MCG 22 April 09 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3099) Applet tag is not working with struts 2 result tag
[ https://issues.apache.org/jira/browse/WW-3099?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3099: -- Description: I want to run applet in struts 2. I have written applet tag in index.jsp like APPLET ALIGN=middle name=secure archive=security.jar codebase=secure CODE=ApplicationSecure.class WIDTH=0 HEIGHT=0 /APPLET security.jar file contains applet class file ApplicationSecure.class. If I write struts action like action name=index result name=success/index.jsp/result /action then on IE status bar its showing applet secure notinited. If i call index.jsp in web.xml its working fine. In IE its showing applet secure started. was: I want to run applet in struts 2. I have written applet tag in index.jsp like APPLET ALIGN=middle name=secure archive=security.jar codebase=secure CODE=ApplicationSecure.class WIDTH=0 HEIGHT=0 /APPLET security.jar file contains applet class file ApplicationSecure.class. If I write struts action like action name=index result name=success/index.jsp/result /action then on IE status bar its showing applet secure notinited. If i call index.jsp in web.xml its working fine. In IE its showing applet secure started. Fix Version/s: 2.3.x Applet tag is not working with struts 2 result tag -- Key: WW-3099 URL: https://issues.apache.org/jira/browse/WW-3099 Project: Struts 2 Issue Type: Bug Components: Plugin - Tags Environment: Struts 2, jsp Reporter: Uttam Patil Fix For: 2.3.x I want to run applet in struts 2. I have written applet tag in index.jsp like APPLET ALIGN=middle name=secure archive=security.jar codebase=secure CODE=ApplicationSecure.class WIDTH=0 HEIGHT=0 /APPLET security.jar file contains applet class file ApplicationSecure.class. If I write struts action like action name=index result name=success/index.jsp/result /action then on IE status bar its showing applet secure notinited. If i call index.jsp in web.xml its working fine. In IE its showing applet secure started. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3284) Support for a Number jsp tag to compliment the Date tag
[ https://issues.apache.org/jira/browse/WW-3284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3284: -- Fix Version/s: 2.3.x Support for a Number jsp tag to compliment the Date tag - Key: WW-3284 URL: https://issues.apache.org/jira/browse/WW-3284 Project: Struts 2 Issue Type: New Feature Components: Core Actions Affects Versions: 2.1.8 Reporter: Graham Leggett Fix For: 2.3.x Attachments: struts-number-tag.patch The attached patch brings in support for a Number tag, to compliment the Date tag, exposing the java.text.NumberFormat class. The main purpose of this tag is to render currency amounts, which are typically expressed as a java.util.Currency and a java.math.BigDecimal. Currently, you can render currency amounts using a format string, but this presupposes that you preselect a given currency, with a given symbol, and given fraction digits. With this tag, you are able to take a UBL XSD, put it through JAXB to produce a set of javabeans, and print currency amounts without being forced to pre-render the amounts in the action class. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3134) devmode=false still shows NoSuchMethodException
[ https://issues.apache.org/jira/browse/WW-3134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3134: -- Fix Version/s: 2.3.x devmode=false still shows NoSuchMethodException --- Key: WW-3134 URL: https://issues.apache.org/jira/browse/WW-3134 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.6 Environment: Linux, Tomcat 5.5 Reporter: Andi Sachs Fix For: 2.3.x Attachments: devMode-method-not-found.patch Hello, setting devmode to false disables the stack trace for an unknown action, but a stacktrace for an unknown method is still shown: https://x/portal/core_welcome!missing.action java.lang.NoSuchMethodException: xx.core.actions.WelcomeAction.missing() java.lang.Class.getMethod(Class.java:1581) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.getActionMethod(AnnotationValidationInterceptor.java:75) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:47) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) Andi -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3363) MultiPartRequest documentation needs updated per 2.1.8 enhancements
[ https://issues.apache.org/jira/browse/WW-3363?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3363: -- Fix Version/s: 2.3.x MultiPartRequest documentation needs updated per 2.1.8 enhancements --- Key: WW-3363 URL: https://issues.apache.org/jira/browse/WW-3363 Project: Struts 2 Issue Type: Bug Components: Documentation Affects Versions: 2.1.8 Reporter: Lauri Lehtinen Fix For: 2.3.x This issue appears when I update my struts2 dependency from 2.1.6 to 2.1.8, and disappears when reverting. Here are some facts I've gathered so far: In my struts.xml: constant name=struts.multipart.parser value=com.systemout.pdf.webapp.base.multipart.MonitoredMultiPartRequest / Tomcat startup: ... 09-12-31 13:36:54 DEBUG org.apache.struts2.config.BeanSelectionProvider - Choosing bean (class com.systemout.pdf.webapp.base.multipart.MonitoredMultiPartRequest) for interface org.apache.struts2.dispatcher.multipart.MultiPartRequest ... On file upload, debugging in org.apache.struts2.dispatcher.Dispatcher.java, after line 697 has been executed, multiNames contains: [default, jakarta, struts] and multipartHandlerName is set to jakarta My custom MonitoredMultiPartRequest is never instantiated, instead, JakartaMultiPartRequest is used. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3153) xwork com.opensymphony.xwork2.config.ConfigurationManager needs better error handling for missing plugin config,class
[ https://issues.apache.org/jira/browse/WW-3153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3153: -- Fix Version/s: Future xwork com.opensymphony.xwork2.config.ConfigurationManager needs better error handling for missing plugin config,class - Key: WW-3153 URL: https://issues.apache.org/jira/browse/WW-3153 Project: Struts 2 Issue Type: Bug Environment: Struts 2.1.6 xwork 2.0-SNAPSHOT J2SE 1.6.0.10 TC 1.6 Reporter: Martin Gainty Fix For: Future xwork com.opensymphony.xwork2.config.ConfigurationManager code /*** Get the current XWork configuration object. By default an instance of DefaultConfiguration will be returned * @see com.opensymphony.xwork2.config.impl.DefaultConfiguration */ public synchronized Configuration getConfiguration() { if (configuration == null) { setConfiguration(new DefaultConfiguration(defaultFrameworkBeanName)); try { configuration.reload(getConfigurationProviders()); } catch (ConfigurationException e) { setConfiguration(null); /** xwork getConfigurationProviders code inlined so we can see whats going on *** * Get the current list of ConfigurationProviders. If no custom ConfigurationProviders have been added, this method * will return a list containing only the default ConfigurationProvider, XMLConfigurationProvider. if a custom * ConfigurationProvider has been added, then the XmlConfigurationProvider must be added by hand. * /p * p/ * TODO: the lazy instantiation of XmlConfigurationProvider should be refactored to be elsewhere. the behavior described above seems unintuitive. * * @return the list of registered ConfigurationProvider objects * @see ConfigurationProvider */ public ListConfigurationProvider getConfigurationProviders() { providerLock.lock(); try { if (configurationProviders.size() == 0) { configurationProviders.add(new XmlConfigurationProvider(xwork.xml, true)); } return configurationProviders; } finally { providerLock.unlock(); } } ***/ throw e; } } else { conditionalReload(); } return configuration; } //end configurationManager //Here is com.opensymphony.xwork2.config.impl.DefaultConfigurationProvider public synchronized ListPackageProvider reloadContainer(ListContainerProvider providers) throws ConfigurationException { ContainerProperties props = new ContainerProperties(); ContainerBuilder builder = new ContainerBuilder(); for (final ContainerProvider containerProvider : providers) { containerProvider.init(this); containerProvider.register(builder, props); } props.setConstants(builder); //a quick recap of setConstants /*public void setConstants(ContainerBuilder builder) { //keySet appears to be empty so the iterator to key wont work here for (Object keyobj : keySet()) { String key = (String)keyobj; builder.factory(String.class, key, new LocatableConstantFactoryString(getProperty(key), getPropertyLocation(key))); } } */ container = builder.create(false); /*start code com.opensymphony.xwork2.inject.ConfigurationBuilder.create() public Container create(boolean loadSingletons) { ensureNotCreated(); created = true; final ContainerImpl container = new ContainerImpl( new HashMapKey?, InternalFactory?(factories)); if (loadSingletons) { //wont happen as this is always false container.callInContext(new ContainerImpl.ContextualCallableVoid() { public Void call(InternalContext context) { for (InternalFactory? factory : singletonFactories) { factory.create(context); } return null; } }); } //final ListClass? staticInjections = new ArrayListClass?(); //no effect as staticInjections are null at this point container.injectStatics(staticInjections); return container; } //end com.opensymphony.xwork2.inject.ConfigurationBuilder.create() */ setContext(container); /*** setContext code inlined so we can see whats going on protected ActionContext setContext(Container cont) { ValueStack vs = cont.getInstance(ValueStackFactory.class).createValueStack(); ActionContext context = new ActionContext(vs.getContext());
[jira] [Updated] (WW-3170) ObjectFactory reporting ERROR's when you attempt to set parameters on a Redirect result
[ https://issues.apache.org/jira/browse/WW-3170?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3170: -- Fix Version/s: 2.3.x ObjectFactory reporting ERROR's when you attempt to set parameters on a Redirect result --- Key: WW-3170 URL: https://issues.apache.org/jira/browse/WW-3170 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.6 Environment: Windows XP SP2 Tomcat 5.5.17 Sun JDK 1.5.0_17 Reporter: Lee Clemens Fix For: 2.3.x Upon upgrading from 2.0.x to 2.1.6, Action results using: param name=xxx${xxx}/param Causes an error and prints a stacktrace. The only 'workaround' I have found is at http://cwiki.apache.org/S2WIKI/troubleshooting-guide-migrating-from-struts-20x-to-21x.html. It simply states to disable ERROR logging. Obviously, I will want to see legitimate ERROR logging for missing properties. However, this is not a legitimate ERROR - as the getters/setters exist between the two actions and this should be working fine (and functionally is working as expected). Stacktrace: Caught OgnlException while setting property 'xxx' on type 'org.apache.struts2.dispatcher.ServletActionRedirectResult'. - Class: ognl.ObjectPropertyAccessor File: ObjectPropertyAccessor.java Method: setProperty Line: 132 - ognl/ObjectPropertyAccessor.java:132:-1 at com.opensymphony.xwork2.ognl.OgnlUtil.internalSetProperty(OgnlUtil.java:392) at com.opensymphony.xwork2.ognl.OgnlUtil.setProperty(OgnlUtil.java:143) at com.opensymphony.xwork2.ognl.OgnlReflectionProvider.setProperty(OgnlReflectionProvider.java:91) at com.opensymphony.xwork2.ObjectFactory.buildResult(ObjectFactory.java:221) at com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:208) at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:355) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:265) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128) at
[jira] [Updated] (WW-3379) Using apache urlrewrite to @ result redirectAction invalid after addActionMessage and addActionError
[ https://issues.apache.org/jira/browse/WW-3379?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3379: -- Fix Version/s: Future Did you try to ask on the User ML ? Using apache urlrewrite to @ result redirectAction invalid after addActionMessage and addActionError Key: WW-3379 URL: https://issues.apache.org/jira/browse/WW-3379 Project: Struts 2 Issue Type: Bug Components: Core Actions Affects Versions: 2.1.8 Environment: Core Interceptors Reporter: lyh Fix For: Future My code: @Namespace(/app) @Results({ @Result(name=success, type=redirectAction, params = {actionName , orders}), }) public class OrdersController extends ActionSupport implements ModelDrivenObject{ // GET /orders public HttpHeaders index() { list = ordersService.getAll(); System.out.println(this.getActionMessages()); // use apache urlrewrite After no value here return new DefaultHttpHeaders(index).disableCaching(); } } // @Namespace(/app) @Results({ @Result(name=success, type=redirectAction, params = { actionName , orders}) }) public class OrdersBatchController extends ActionSupport { private static final long serialVersionUID = 6072741035167921283L; //POST /orders-batch public String create() { addActionMessage(Order-batch removed successfully); return SUCCESS; } } If you did not use apache urlrewrite the code above is no problem. post - http://www.demo.com/app/orders-batchtoorders success In the orders of the index method to obtain actionMessage According to the actual situation into the domain name: http://app.demo.com/orders-batch (Actually equal to http://www.demo.com/app/orders-batch) I have a corresponding change in s: from to ensure that requests to orderBatchController the create method. However, @ result success can not find the corresponding controller, and gives error: namespace: / app / app I re-configured as: @ Result (name = success, type = redirectAction, params = ( namespace ,, actionName, orders)) Note: namespace = correctly when it is requested. But such problems, and my orders, or the index method actionMessages not actionErrors for access, and I do not know why, I need help. Thanks -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3268) problem with property named parameters in my bean
[ https://issues.apache.org/jira/browse/WW-3268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3268: -- Fix Version/s: 2.3.x problem with property named parameters in my bean --- Key: WW-3268 URL: https://issues.apache.org/jira/browse/WW-3268 Project: Struts 2 Issue Type: Improvement Components: Documentation Reporter: Rodrigo Canabrava Fix For: 2.3.x I had a problem with the tag s:select/ that did not render correctly. It ignored the properties that I wanted to use as key and value from my beans, and instead it used the toString() method of my bean. After renaming the bean class and removing all properties, and inserting one by one, I found out that the problem was due to a property named 'parameters' in my bean. So I guess this word is 'reserved', and there should be a warning in the tags documentation that this word cannot be used as a property in my beans, even if I don't use the property in any tag. There is a conflict issue with this word. And I guess there might be other words that could result in the same conflict. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3373) Weblogic 11g throwing java.lang.NullPointerException
[ https://issues.apache.org/jira/browse/WW-3373?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3373: -- Fix Version/s: 2.3.x Weblogic 11g throwing java.lang.NullPointerException Key: WW-3373 URL: https://issues.apache.org/jira/browse/WW-3373 Project: Struts 2 Issue Type: Bug Components: Dispatch Filter Affects Versions: 2.1.8 Environment: Weblogic 11g, running on RHEL 5.3 x86. JVM = jrockit_160_14_R27.6.5-32 Reporter: Daniel Fix For: 2.3.x WAR file works with TOMCAT 6. When I deploy to WEBLOGIC 11g the following NPE is given. Been searching Google and struts issues, but have not been able to find a solution. My knowledge of Java is next to none. Can Someone point me into the right direction? 'weblogic.kernel.Default (self-tuning)' WLS Kernel 1263248899938 BEA-101020 [ServletContext@25367851[app:www module:XXX.war path:/XXX spec-version:2.5]] Servlet failed with Exception java.lang.NullPointerException at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:645) at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:725) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:467) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3367) Involve in IDE support for Struts2
[ https://issues.apache.org/jira/browse/WW-3367?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3367: -- Fix Version/s: Future Involve in IDE support for Struts2 -- Key: WW-3367 URL: https://issues.apache.org/jira/browse/WW-3367 Project: Struts 2 Issue Type: New Feature Components: Other Affects Versions: Future Environment: N/A Reporter: Antonio Sánchez Fix For: Future I believe that productivity is decisive when the time comes for choosing and using any application framework. IDEs greatly improves productivity. I'm just evaluating struts2 by now and I use Netbeans. I have found that the only struts2 plugin for NB is not officially supported by the struts2 project (maybe I'm wrong). This plugin is not bad but It may be improved and it may take time to make it compatible with the latest releases of the IDE. As a product evaluator it would provide a lot of confidence to me if there were some kind of official involvement between IDE project and framework project in order to have both framework and IDE releases synchronized. This cooperation could at least be considered for the most popular ides, like NetBeans and Eclipse. I strongly believe this would be a very important point in decision making (for both framework and ide). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3376) s:action with executeResult=true giving infinite loop resulting stack over flow
[ https://issues.apache.org/jira/browse/WW-3376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3376: -- Fix Version/s: Future Did you try to ask on the User ML ? s:action with executeResult=true giving infinite loop resulting stack over flow - Key: WW-3376 URL: https://issues.apache.org/jira/browse/WW-3376 Project: Struts 2 Issue Type: Bug Components: Core Actions Affects Versions: 2.1.6 Environment: windows xp , Reporter: Hojin Joy Fix For: Future while using validation , whenever validation fail , control should back to the input jsp .But I am having s:action in the jsp for getting radio button list and when validaton failed the control comes to input jsp page but unable to call s:action. for that i added executeResult=true but now i am getting stack over flow alert message when the first time page loads seems like a bug -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3432) OVal plugin should add message variables
[ https://issues.apache.org/jira/browse/WW-3432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3432: -- Fix Version/s: 2.3.x OVal plugin should add message variables Key: WW-3432 URL: https://issues.apache.org/jira/browse/WW-3432 Project: Struts 2 Issue Type: Improvement Affects Versions: 2.1.8.1 Environment: struts-oval-plugin 2.1.8.1 Reporter: Nicolas Bohorquez Gutierrez Labels: oval, s2, struts Fix For: 2.3.x In the method protected void addValidationErrors(ConstraintViolation[] violations, Object action, ValueStack valueStack, String parentFieldname) of org.apache.struts2.oval.interceptor.OValValidationInterceptor the violation.getMessageVariables() should be pushed into the valueStack in order to get access in the resource bundle to important validation context variables like min length, max lenght, substring, expression, etc. thank you -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-2743) Mail Reader Sample Application throws java.lang.ExceptionInInitializerError on Sun One WebServer 6.1
[ https://issues.apache.org/jira/browse/WW-2743?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2743: -- Fix Version/s: Future Did you you try to use the latest version ? Did you ask on the User ML ? Mail Reader Sample Application throws java.lang.ExceptionInInitializerError on Sun One WebServer 6.1 Key: WW-2743 URL: https://issues.apache.org/jira/browse/WW-2743 Project: Struts 2 Issue Type: Bug Affects Versions: 2.0.11 Environment: Sun One WebServer 6.1 SP7 with Java 1.5.0_11 (Note: This seems to be server-specific since I cannot reproduce on Glassfish v2 server.) Reporter: David Fix For: Future Steps to reproduce: 1. Deploy the struts2-mailreader-2.0.11.2 war file to Sun One Web Server 6.1 2. From welcome.do, select the link to Register with the MailReader Demonstration Application. 3. Enter one of the fields with an invalid input and submit the form. 4. Validation causes an exception to be thrown. A java.lang.ExceptionInInitializerError is now thrown. See full stack trace below: [29/Jul/2008:14:51:35] failure ( 2700): for host 127.0.0.1 trying to POST /mail/Registration_save.do, service-j2ee reports: ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'struts.token' on 'class mailreader2.Registration: Error setting expression 'struts.token' with value '[Ljava.lang.String;@107108e' [29/Jul/2008:14:51:35] failure ( 2700): for host 127.0.0.1 trying to POST /mail/Registration_save.do, service-j2ee reports: ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'struts.token.name' on 'class mailreader2.Registration: Error setting expression 'struts.token.name' with value '[Ljava.lang.String;@cfe049' [29/Jul/2008:14:51:35] failure ( 2700): for host 127.0.0.1 trying to POST /mail/Registration_save.do, service-j2ee reports: Could not create and/or set value back on to object java.lang.InstantiationException: org.apache.struts.apps.mailreader.dao.User at java.lang.Class.newInstance0(Class.java:335) at java.lang.Class.newInstance(Class.java:303) at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:123) at com.opensymphony.xwork2.util.InstantiatingNullHandler.createObject(InstantiatingNullHandler.java:123) at com.opensymphony.xwork2.util.InstantiatingNullHandler.nullPropertyValue(InstantiatingNullHandler.java:104) at ognl.ASTProperty.getValueBody(ASTProperty.java:94) at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170) at ognl.SimpleNode.getValue(SimpleNode.java:210) at ognl.ASTChain.setValueBody(ASTChain.java:168) at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177) at ognl.SimpleNode.setValue(SimpleNode.java:246) at ognl.Ognl.setValue(Ognl.java:476) at com.opensymphony.xwork2.util.OgnlUtil.setValue(OgnlUtil.java:186) at com.opensymphony.xwork2.util.OgnlValueStack.setValue(OgnlValueStack.java:176) at com.opensymphony.xwork2.util.OgnlValueStack.setValue(OgnlValueStack.java:164) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:212) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:178) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at
[jira] [Updated] (WW-3406) NullPointer in JSF plug-in
[ https://issues.apache.org/jira/browse/WW-3406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3406: -- Fix Version/s: 2.3.x NullPointer in JSF plug-in -- Key: WW-3406 URL: https://issues.apache.org/jira/browse/WW-3406 Project: Struts 2 Issue Type: Bug Components: Other Affects Versions: 2.1.8.1 Environment: Windows XP, Tomcat 5 Reporter: Alan McLachlan Labels: jsf, navigation, tomcat Fix For: 2.3.x Am getting a NullPointerException in the JSF Plugin StrutsNavigationHandler, line 66. ActionConfig config = ctx.getActionInvocation().getProxy().getConfig(); Debugging, it's ctx.getActionInvocation() that is returning null. Looking at line 63 I think I see the bug: if (ctx == null ctx.getActionInvocation() == null) { Surely that should be || instead of Some context: I have an existing JSF action. I am trying to run it backed by struts, maintaining all the JSF beans and navigation without editing - which means that it'll be mostly backed by stub-type struts actions. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3423) freemarker error in simple template select.ftl when parameter multiple=true and parameter name is missing
[ https://issues.apache.org/jira/browse/WW-3423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3423: -- Fix Version/s: 2.3.x freemarker error in simple template select.ftl when parameter multiple=true and parameter name is missing --- Key: WW-3423 URL: https://issues.apache.org/jira/browse/WW-3423 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.8.1 Environment: Windows XP Java 1.6.0_16 Tomcat 6.0.18 Reporter: Florent Nicoulaud Labels: freemarker, multiple, name, select, tag, template Fix For: 2.3.x File : template/simple/select.ftl Select tag does not require name parameter. But when multiple is set to true the template will try to read parameters.name Leading to the following FreeMarker template error : Expression parameters.name is undefined on line 92, column 85 in template/simple/select.ftl. The problematic instruction: -- == ${parameters.name?html} [on line 92, column 83 in template/simple/select.ftl] -- -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3427) If you alias a property that uses a custom TypeConverter and it throws TypeConversionException the error is never caught
[ https://issues.apache.org/jira/browse/WW-3427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3427: -- Fix Version/s: 3.x If you alias a property that uses a custom TypeConverter and it throws TypeConversionException the error is never caught Key: WW-3427 URL: https://issues.apache.org/jira/browse/WW-3427 Project: Struts 2 Issue Type: Bug Components: Core Interceptors Affects Versions: 2.1.8.1 Environment: Windows Reporter: Sloan Seaman Labels: conversion, struts, type Fix For: 3.x If you define an alias to a property like so: @Actions({ @Action(value=/icc/saveScan, interceptorRefs=@InterceptorRef(ptiDefault), results={ @Result(name=input, location=/error.jsp), @Result(name=success, location=/success.jsp) }, params={aliases, #{\plateId\ : \plate\, + \machineAbbr\ : \machine\, + \imageFiles\ : \scanData\}} */ ) }) and the property (say imageFiles/scanData) has a custom TypeConverter configured like so: @ConversionErrorFieldValidator(type = ValidatorType.FIELD, key=invalid.fieldvalue.xxx, message = well not found or imageFiles not in format: file,wellId|file,wellId|..., shortCircuit=true) @TypeConversion(rule = ConversionRule.COLLECTION, converter = com.ptilabs.icc.action.ScanData) public void setScanData(ListScanData imageFiles) { this.imageFiles = imageFiles; } If the TypeConverter throws a TypeConversionException the exception is never caught by the ConversionErrorInterceptor or ConversionErrorFieldValidator. If I disable the aliasing and rename the method setImageFiles everything works correctly. I'm trying to debug on my own but I can't find the class responsible for catching the TypeConversionException and placing it in the invocationContext.getConversionErrors() -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3433) JSONValidationInterceptor should generate valid JSON responses
[ https://issues.apache.org/jira/browse/WW-3433?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3433: -- Fix Version/s: 2.3.x Is it related to WW-3545 ? JSONValidationInterceptor should generate valid JSON responses -- Key: WW-3433 URL: https://issues.apache.org/jira/browse/WW-3433 Project: Struts 2 Issue Type: Improvement Components: Plugin - JSON Affects Versions: 2.1.8.1 Environment: struts-json-plugin 2.1.8.1 Reporter: Nicolas Bohorquez Gutierrez Labels: json, s2, struts Fix For: 2.3.x The method protected String buildResponse(ValidationAware validationAware) in org.apache.struts2.interceptor.validation.JSONValidationInterceptor should generate valid JSON responses, right now it generates json-commenting responses but this could be worst http://trac.dojotoolkit.org/ticket/6380 In other side it breaks compatibillity with other frameworks like JQuery 1.4 (version 1.3 allow to parse non strict JSON) http://www.neeraj.name/2010/01/15/handling-json-parsing-natively-in-jquery-1-4-and-what-changed-from-jquery-1-3.html. thank you -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3431) OVal plugin with javolution Destination array too small performing validation
[ https://issues.apache.org/jira/browse/WW-3431?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3431: -- Fix Version/s: 2.3.x OVal plugin with javolution Destination array too small performing validation - Key: WW-3431 URL: https://issues.apache.org/jira/browse/WW-3431 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.8.1 Environment: java 1.6 struts-oval-plugin 2.1.8.1 javolution 5.4.2 Reporter: Nicolas Bohorquez Gutierrez Labels: oval, struts Fix For: 2.3.x In method protected void performOValValidation(Object action, ValueStack valueStack, String methodName, String context) throws NoSuchMethodException; of org.apache.struts2.oval.interceptor.OValValidationInterceptor line 174 : addValidationErrors(violations.toArray(new ConstraintViolation[0]), action, valueStack, null); the array provided as an argument for addValidationErrors() has size 0 that causes a Destination array too small exception, it should be something like: addValidationErrors(violations.toArray(new ConstraintViolation[violations.size]), action, valueStack, null); ini order to guarantee the size of array. thank you -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3499) AnnotationParameterFilterIntereptor should support deep OGNL
[ https://issues.apache.org/jira/browse/WW-3499?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3499: -- Fix Version/s: 3.x AnnotationParameterFilterIntereptor should support deep OGNL Key: WW-3499 URL: https://issues.apache.org/jira/browse/WW-3499 Project: Struts 2 Issue Type: Improvement Components: Core Interceptors Affects Versions: 2.2.1 Reporter: John Lindal Fix For: 3.x The code already has a comment about enhancing the interceptor to match the start of an OGNL expression instead of only an exact parameter name. What it really needs, however, is to enhance the Allowed annotation to store a list of white-listed ONGL prefix expressions. This allows control over what parts of a bean may be modified, not just whether or not the entire bean can be modified. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3434) JSONValidationInterceptor thows exception used with OValValidationInterceptor
[ https://issues.apache.org/jira/browse/WW-3434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3434: -- Fix Version/s: 2.3.x JSONValidationInterceptor thows exception used with OValValidationInterceptor - Key: WW-3434 URL: https://issues.apache.org/jira/browse/WW-3434 Project: Struts 2 Issue Type: Bug Components: Plugin - JSON Affects Versions: 2.1.8.1 Environment: struts-json-plugin 2.1.8.1 Reporter: Nicolas Bohorquez Gutierrez Labels: json, oval, s2, struts Fix For: 2.3.x in the method protected String buildResponse(ValidationAware validationAware) of org.apache.struts2.interceptor.validation.JSONValidationInterceptor line 149 the work around described in https://issues.apache.org/jira/browse/WW-2721 tries to remove model. from fieldError.key. But when using OValValidationInterceptor the fieldError.key doesn't contains the substring model. so, the code should be sometring like: sb.append(validationAware instanceof ModelDriven ? fieldError.getKey(). replaceFirst(model\\., ) : fieldError.getKey()); thank you -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3441) support list ui tag bind data by listValue beside by listKey
[ https://issues.apache.org/jira/browse/WW-3441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3441: -- Fix Version/s: 2.3.x support list ui tag bind data by listValue beside by listKey Key: WW-3441 URL: https://issues.apache.org/jira/browse/WW-3441 Project: Struts 2 Issue Type: Improvement Reporter: zhouyanming Fix For: 2.3.x Attachments: patch.txt list ui tag include select checkboxlist radio. typically we use a enum values as list for those tag package biz.model; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.util.LocalizedTextUtil; public enum EmployeeType { PACKER, DELIVERYMAN, WAREHOUSEMAN , SALESMAN, MANAGER, SERVANT; public String getName() { return name(); } public String getDisplayName() { return LocalizedTextUtil.findText(getClass(), name(), ActionContext .getContext().getLocale(), name(), null); } public static EmployeeType parse(String name) { if (name != null) for (EmployeeType en : values()) if (name.equals(en.name()) || name.equals(en.getDisplayName())) return en; return null; } @Override //sometimes we need override toString() to display nicely public String toString() { return getDisplayName(); } } @s.select name=employee.type list=@biz.model.EmployeeType@values() listKey=name listValue=displayName headerKey= headerValue=/ I override enum's toString use displayName replace name,so currently struts2 can't bind data as selected solution: tag.contains(parameters.nameValue, itemKey) -- tag.contains(parameters.nameValue, itemKey) || tag.contains(parameters.nameValue, itemValue) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3506) JasperReports PDF does not display in IE using HTTPS
[ https://issues.apache.org/jira/browse/WW-3506?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3506: -- Fix Version/s: 2.3.x JasperReports PDF does not display in IE using HTTPS Key: WW-3506 URL: https://issues.apache.org/jira/browse/WW-3506 Project: Struts 2 Issue Type: Bug Components: Plugin - JasperReports Affects Versions: 2.2.1 Environment: Windows; Internet Explorer 6, 7, 8; HTTPS Reporter: Andrew McCallum Fix For: 2.3.x Internet Explorer does not normally cache items from HTTPS sites, so cannot store PDF documents prior to launching Adobe Reader. See http://support.microsoft.com/kb/323308 Change JasperReportsResult.java ~ line 285 to add the following: if (https.equalsIgnoreCase(request.getScheme())) { // set the the HTTP Header to work around IE SSL weirdness response.setHeader(CACHE-CONTROL, PRIVATE); response.setHeader(Cache-Control, maxage=3600); response.setHeader(Pragma, public); response.setHeader(Accept-Ranges, none); } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Closed] (WW-3523) OGNL Varargs method invocation fails
[ https://issues.apache.org/jira/browse/WW-3523?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart closed WW-3523. - Resolution: Won't Fix Fix Version/s: 2.2.1 OGNL Varargs method invocation fails Key: WW-3523 URL: https://issues.apache.org/jira/browse/WW-3523 Project: Struts 2 Issue Type: Bug Components: Expression Language Affects Versions: 2.2.1 Environment: Websphere 6.1 Reporter: Alfredo Osorio Fix For: 2.2.1 I'm getting java.lang.IllegalArgumentException when trying to invoke a vararg method with OGNL. Here is an example of the method signature: public String sayHello(String... names); Expression used to invoke it sayHello('Alfred', 'John') assuming that the bean with the method has been pushed onto the ValueStack. I think it has something to do with: ognl.OgnlRuntime.callAppropriateMethod(...) and the arguments being sent to: invokeMethod(target, method, convertedArgs); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3534) PrepareOperations.createActionContext does not detect existing context correctly
[ https://issues.apache.org/jira/browse/WW-3534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3534: -- Fix Version/s: 3.x PrepareOperations.createActionContext does not detect existing context correctly Key: WW-3534 URL: https://issues.apache.org/jira/browse/WW-3534 Project: Struts 2 Issue Type: Bug Components: Dispatch Filter Affects Versions: 2.1.6 Reporter: Jim Culbert Fix For: 3.x The Problem In revision 768529 (current head revision) of /struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java at lines 72-73, there is a logic error. ActionContext.getContext will never return null, it always returns a context object (when no context has been created in the thread, action ActionContext.getContext() casts an empty map to an ActionContext object when it returns, so, even thoughg no initialization has been done, the getContext method still returns a non-null object that contains an empty context map). The implication of this is that, when the StrutsPrepareAndExecuteFilter (and presumably the StrutsPrepareFilter) runs, execution never follows the code branch which is designed to initialize the value stack. I think the reason this does not cause more problems is that there seems to be defensive code in a lot of places that initializes the valuestack/actioncontext if things don't look right. Where I saw the problem In my use case, I initialize the locale in the action context (scriptlet in the view jsp...) prior to using any s:text tag. When I do use a tag, the text helper code detects that there is no value stack and creates a new actioncontext (thus blowing away the locale setting that I had established). The result is that regardless of what I set the locale to, the tags always rendered in the default locale. Hack was to use any tag that manipulates the value stack before setting the locale but, this obviously needs to be fixed... -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3541) Request Parameter to Action Object Mapping Plugin for Insecure Direct Object References
[ https://issues.apache.org/jira/browse/WW-3541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3541: -- Fix Version/s: Future Any progress ? Request Parameter to Action Object Mapping Plugin for Insecure Direct Object References --- Key: WW-3541 URL: https://issues.apache.org/jira/browse/WW-3541 Project: Struts 2 Issue Type: New Feature Components: Core Interceptors Affects Versions: 2.2.1.1 Environment: All OS Reporter: datta kudale Fix For: Future Original Estimate: 96h Remaining Estimate: 96h JSP Parameter to Action Object Mapping (Security) Plugin does this great thing. Here is also a short overview of what it does and why a developer would want to use it. Many applications expose their internal object references to users. Attackers use parameter tampering to change references and violate the intended but unenforced access control policy. Frequently, these references point to file systems and databases, but any exposed application construct could be vulnerable. The best protection is to avoid exposing direct object references to users by using an index, indirect reference map, or other indirect method that is easy to validate. If a direct object reference must be used, ensure that the user is authorized before using it. * Avoid exposing your private object references to users whenever possible, such as primary keys or filenames * Validate any private object references extensively with an accept known good approach * Verify authorization to all referenced objects So to avoid internal object implementation to end user, this plugin can be used. Please refer following link for Plugin https://cwiki.apache.org/confluence/display/S2PLUGINS/Request+Parameter+to+Action+Object+Mapping+Plugin+for+Insecure+Direct+Object+References -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3648) Freemarker template error in client side validation
[ https://issues.apache.org/jira/browse/WW-3648?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3648: -- Fix Version/s: 3.x Freemarker template error in client side validation --- Key: WW-3648 URL: https://issues.apache.org/jira/browse/WW-3648 Project: Struts 2 Issue Type: Bug Components: Integration Affects Versions: 2.2.3 Environment: windows vista,tomcat7 Reporter: Dasari Taraka Rajendra Prasad Labels: freemqarker-integration Fix For: 3.x index.jsp html head meta http-equiv=Refresh content=0;URL=clValidHelp.action / /head /html clValid.jsp %@ taglib prefix=s uri=/struts-tags % %@ taglib prefix=sx uri=/struts-dojo-tags % html head titleStrut2's actions/title link href=s:url value=/css/main.css/ rel=stylesheet type=text/css/ sx:head/ /head body center h1 Service Application/h1 br/ s:actionerror/ s:fielderror/ br/ s:form action=ClientValid validate=true s:textfield name=applName label=Applicant Name / s:textfield name=charges label=Payable charges / s:select label=Service Name emptyOption=true list=services name=service / s:submit align=center value=show client-Side validation/ /s:form /center /body /html struts.xml !DOCTYPE struts PUBLIC -//Apache Software Foundation//DTD Struts Configuration 2.0//EN http://struts.apache.org/dtds/struts-2.0.dtd; struts include file=struts-default.xml/ package name=htcstruts extends=struts-default action name=clValidHelp class=htcstruts.ClValidHelpAction result name=success /clValid.jsp /result /action action name=ClientValid class=htcstruts.ClientValidAction result name=success /clResult.jsp /result result name=input /clValid.jsp /result /action /package /struts ClientValidAction-validator.xml dtd-- validators field name=applName field-validator type=requiredstring param name=trimtrue/param messageApplicant's name is required/message /field-validator /field field name=charges field-validator type=double param name=minExclusive9.99/param param name=maxInclusive120.0/param message Charges should be higher than ${minExclusive} and lessequal to ${maxInclusive} /message /field-validator /field /validators ClValidHelpAction.java public class ClValidHelpAction extends ActionSupport { private ListString services; public ListString getServices() { return this.services; } public void setServices(ListString newServices) { this.services = newServices; } public ClValidHelpAction() { services = new ArrayListString(); services.add(DrivingLicence); services.add(ElectricityBill); services.add(WaterBill); services.add(InsurancePremium); } public String execute() { return SUCCESS; } } ClientValidAction.java public class ClientValidAction extends ActionSupport { private String applName; private String service; private double charges; private String resStr; private ConcurrentHashMapString,Double services; public ClientValidAction() { services = new ConcurrentHashMapString,Double(); services.put(DrivingLicence,new Double(100.5)); services.put(ElectricityBill,new Double(40.5)); services.put(WaterBill,new Double(35.5)); services.put(InsurancePremium,new Double(30.5)); } public String execute() throws Exception { double cost = services.get(service); resStr = hello! +applName+ Charges for + service+ are +cost+.Please ready to pay; return SUCCESS; } public String getResStr() { return resStr; } public String getApplName() { return applName; } public void setApplName(String newName) { applName = newName; } public String getService() { return service; } public void setService(String newService) { service = newService; } public double getCharges() { return charges; } public void setCharges(double newCharge) { charges = newCharge; } } on invoking context i am getting freemarker error stack SEVERE: validator.maxInclusive is not a number, it is freemarker.ext.beans.StringModel The problematic instruction: -- == ${validator.maxInclusive?c} [on line 114, column 63 in template/xhtml/form-close-validate.ftl] in include /${parameters.templateDir}/xhtml/form-close-validate.ftl [on line 25, column 1 in template/xhtml/form-close.ftl] -- Java
[jira] [Updated] (WW-3623) ui tags will have improperly generated id attributes when the tag does not have a name specified and is inside a form
[ https://issues.apache.org/jira/browse/WW-3623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3623: -- Fix Version/s: 2.3.x ui tags will have improperly generated id attributes when the tag does not have a name specified and is inside a form - Key: WW-3623 URL: https://issues.apache.org/jira/browse/WW-3623 Project: Struts 2 Issue Type: Sub-task Components: Core Actions Affects Versions: 2.2.3 Environment: n/a Reporter: Jason Pyeron Fix For: 2.3.x Attachments: struts2-trunk-WW-3623-v1.patch patch fixes issues encountered while working WW-3622. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3624) allow regex matching on fielderror tag
[ https://issues.apache.org/jira/browse/WW-3624?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3624: -- Fix Version/s: 2.3.x allow regex matching on fielderror tag -- Key: WW-3624 URL: https://issues.apache.org/jira/browse/WW-3624 Project: Struts 2 Issue Type: New Feature Components: Core Actions Affects Versions: 2.2.3 Environment: n/a Reporter: Jason Pyeron Fix For: 2.3.x Attachments: struts2-trunk-WW-3624-baselined-without-WW-3622-or-WW-3623.patch, struts2-trunk-WW-3624-depends-on-WW-3622-and-WW-3623.patch, struts2-trunk-WW-3624-site-artifacts-from-maven.patch Very happy with the iterator and complicated sub fields... s:fielderror regex=trues:param^ledger\.records\[s:property value=#row.index /\].*/s:param/s:fielderror the patch attached is baseline against the trunk, it assumes WW-3622 and WW-3623 have not been commited yet. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3630) Add global Failure result
[ https://issues.apache.org/jira/browse/WW-3630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3630: -- Fix Version/s: 3.x Add global Failure result - Key: WW-3630 URL: https://issues.apache.org/jira/browse/WW-3630 Project: Struts 2 Issue Type: Improvement Reporter: Lukasz Lenart Fix For: 3.x Jan Fröhlich: As I am to lazy to register for commenting on the linked page I just do it here - another option than to repeat the result would be, to just add a global result failure to struts.xml. Would make the code even more simple - at least in my oppinion. http://www.facebook.com/struts2/posts/223061464386822 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3606) NPE in struts portlet plugin
[ https://issues.apache.org/jira/browse/WW-3606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3606: -- Fix Version/s: 3.x Does the patch base on the new Portlet 2 Plugin ? NPE in struts portlet plugin Key: WW-3606 URL: https://issues.apache.org/jira/browse/WW-3606 Project: Struts 2 Issue Type: Bug Components: Plugin - Portlet Affects Versions: 2.2.1.1 Environment: Liferay / convention plugin Reporter: Jason Pyeron Fix For: 3.x Attachments: WW-3606-null-parameter-NPE-v2.patch Caused by: java.lang.NullPointerException at org.apache.struts2.portlet.util.PortletUrlHelper.ensureParamsAreStringArrays(PortletUrlHelper.java:239) at org.apache.struts2.portlet.util.PortletUrlHelper.buildUrl(PortletUrlHelper.java:124) at org.apache.struts2.portlet.util.PortletUrlHelper.buildUrl(PortletUrlHelper.java:66) at org.apache.struts2.components.PortletUrlRenderer.renderUrl(PortletUrlRenderer.java:80) at org.apache.struts2.components.Anchor.evaluateExtraParams(Anchor.java:107) at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:856) at org.apache.struts2.components.Anchor.end(Anchor.java:142) at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42) at org.apache.jsp.WEB_002dINF.content.user_002dmanagement_jsp._jspx_meth_s_005fa_005f1(user_002dmanagement_jsp.java:254) at org.apache.jsp.WEB_002dINF.content.user_002dmanagement_jsp._jspService(user_002dmanagement_jsp.java:94) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) ... 227 more -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3415) Issues with Token session interceptor - Blank page is returned in case of double submission
[ https://issues.apache.org/jira/browse/WW-3415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3415: -- Fix Version/s: 2.3.x Issues with Token session interceptor - Blank page is returned in case of double submission --- Key: WW-3415 URL: https://issues.apache.org/jira/browse/WW-3415 Project: Struts 2 Issue Type: Bug Components: Core Interceptors Affects Versions: 2.0.11.1 Reporter: Sachin Tandon Fix For: 2.3.x Blank page is returned in case of double submission. I am using struts version - 2.0.11.1 I have extendend TokenSessionStoreInterceptor class in my code and not changed any functionality. Following is how my class looks like public class MyClass extends TokenSessionStoreInterceptor{ /** * Default Serial Version Id */ private static final long serialVersionUID = 1L; protected String handleInvalidToken(ActionInvocation invocation) throws Exception { ActionContext ac = invocation.getInvocationContext(); HttpServletRequest request = (HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); HttpServletResponse response = (HttpServletResponse) ac.get(ServletActionContext.HTTP_RESPONSE); String tokenName = TokenHelper.getTokenName(); String token = TokenHelper.getToken(tokenName); if ((tokenName != null) (token != null)) { Map params = ac.getParameters(); params.remove(tokenName); params.remove(TokenHelper.TOKEN_NAME_FIELD); ActionInvocation savedInvocation = InvocationSessionStore.loadInvocation(tokenName, token); if (savedInvocation != null) { // set the valuestack to the request scope ValueStack stack = savedInvocation.getStack(); Map context = stack.getContext(); request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, stack); ActionContext savedContext = savedInvocation.getInvocationContext(); savedContext.getContextMap().put(ServletActionContext.HTTP_REQUEST, request); savedContext.getContextMap().put(ServletActionContext.HTTP_RESPONSE, response); Result result = savedInvocation.getResult(); if ((result != null) (savedInvocation.getProxy().getExecuteResult())) { synchronized (context) { result.execute(savedInvocation); } } // turn off execution of this invocations result invocation.getProxy().setExecuteResult(false); return savedInvocation.getResultCode(); } } return INVALID_TOKEN_CODE; } protected String handleValidToken(ActionInvocation invocation) throws Exception { // we know the token name and token must be there String key = TokenHelper.getTokenName(); String token = TokenHelper.getToken(key); InvocationSessionStore.storeInvocation(key, token, invocation); return invocation.invoke(); } } Now, whenever I do a double submission for a functionality like search (which gets loads of data from the database), previously saved invocation does not complete and savedInvocation.getResultCode() returns null (inside handleInvalidToken method). Due to which I receive a blank page. Whenever I do a debug(from eclipse) on handleInvalidToken method, savedInvocation.getResultCode() value changes from null to success as I wait inside the method for sometime. I have also put in savedInvocation.isExecuted() in this handleInvalidToken method and noticed that its value changes from false to true if I wait on the line of code for some time. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3676) javatemplates - no radiobutton is selected if property 'name' is not of type integer or string (e.g. short)
[ https://issues.apache.org/jira/browse/WW-3676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3676: -- Fix Version/s: 2.3.x javatemplates - no radiobutton is selected if property 'name' is not of type integer or string (e.g. short) --- Key: WW-3676 URL: https://issues.apache.org/jira/browse/WW-3676 Project: Struts 2 Issue Type: Bug Components: Plugin - Java Templates Affects Versions: 2.2.3 Reporter: lars geidel Fix For: 2.3.x org.apache.struts2.views.java.simple.RadioHandler:62 //Namevalue needs to cast to a string from object. It's object because the //Property can be defined as String or as Integer String itemNameValueStr; if (nameValue instanceof java.lang.Integer || nameValue instanceof java.lang.String) itemNameValueStr = nameValue.toString(); else itemNameValueStr = null; possible sollution?: String itemNameValueStr = StringUtils.defaultString(nameValue == null ? null : nameValue.toString()); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Closed] (WW-3567) File Upload fails for multiple clicks
[ https://issues.apache.org/jira/browse/WW-3567?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart closed WW-3567. - Resolution: Won't Fix Fix Version/s: 2.1.8 File Upload fails for multiple clicks - Key: WW-3567 URL: https://issues.apache.org/jira/browse/WW-3567 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.8 Reporter: vinay naik Fix For: 2.1.8 We are getting the following exception when we upload a document click on Submit button multiple times quickly. We are setting request type to multipart we have token interceptor in place to handle multiple submissions of the same request. However we have found out that the application fails even before reaching the first interceptor in interceptor stack. I suspect that the FileUploadBase class is trying to access the file input stream simultaneously in two threads causing the IOFileUploadException. In this case the token name token value comes as null in first interceptor. This works properly when we don't upload any file clicks Submit multiple times quickly. [1/26/11 22:48:00:844 EST] 0732 DispatcherI com.opensymphony.xwork2.util.logging.commons.CommonsLogger info Unable to find 'struts.multipart.saveDir' property setting. Defaulting to javax.servlet.context.tempdir [1/26/11 22:48:02:331 EST] 0732 MultiPartRequ W com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn Unable to parse request org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Async IO operation failed, reason: RC: 55 The specified network resource or device is no longer available. at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367) at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parse(JakartaMultiPartRequest.java:93) at org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper.init(MultiPartRequestWrapper.java:75) at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:708) at org.apache.struts2.dispatcher.FilterDispatcher.prepareDispatcherAndWrapRequest(FilterDispatcher.java:327) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:367) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130) at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:832) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:742) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:695) at com.ibm.ws.wswebcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:101) at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.invokeFilters(DefaultExtensionProcessor.java:833) at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:771) at com.ibm.ws.wswebcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:113) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3444) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:267) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:815) at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1466) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:119) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387) at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102) at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1818) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
[jira] [Updated] (WW-3277) text tag does not work properly inside a tag
[ https://issues.apache.org/jira/browse/WW-3277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3277: -- Fix Version/s: 2.3.x text tag does not work properly inside a tag Key: WW-3277 URL: https://issues.apache.org/jira/browse/WW-3277 Project: Struts 2 Issue Type: Bug Environment: working 2.1.6 project upgraded to 2.1.8 Reporter: Peter Triller Fix For: 2.3.x After the update s:text name=my.key / still works but s:a href=myurl s:text name=my.key / /s:a gests silently discarded and no text is in the resulting html -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3326) html attributes onfocus, onblur not working in the ajax components like the autocomleter
[ https://issues.apache.org/jira/browse/WW-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3326: -- Fix Version/s: 3.x Dojo plugin is deprecated and will be removed from the next major release html attributes onfocus, onblur not working in the ajax components like the autocomleter Key: WW-3326 URL: https://issues.apache.org/jira/browse/WW-3326 Project: Struts 2 Issue Type: Bug Components: Plugin - Dojo Tags Affects Versions: 2.1.6 Environment: IE 6 Reporter: zhangxg Fix For: 3.x I tried using the onfocus and onblur attributes in my autcompleter but they simply don't work. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3282) Portlet namespace added multiple times when building form urls
[ https://issues.apache.org/jira/browse/WW-3282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3282: -- Fix Version/s: 3.x Could you check with the latest Portlet 2 plugin ? Portlet namespace added multiple times when building form urls -- Key: WW-3282 URL: https://issues.apache.org/jira/browse/WW-3282 Project: Struts 2 Issue Type: Bug Components: Plugin - Portlet Affects Versions: 2.1.8 Environment: Found in portlet containers Jetspeed 2 and Sitevision Reporter: Leonard Broman Fix For: 3.x When building a form in a portlet, the action path in the portlet URL contains the namespace multiple times, and thus the namespace is not correct. This happens in prependNamespace() in PortletUrlHelper where three components are combined to form the complete namespace path. 1. Portlet namespace 2. Mode namespace 3. Tag namespace field (default current action namespace) In a simple form where namespace is not declared, and action i executing in is proper mode namespace (ex. /portlet/view). Then 2 is /portlet/view and 3 is by default /portlet/view and thus complete namespace becomes /portlet/view/portlet/view Workaround for portlet developers is to set the namespace parameter on the form to / which results in only the mode namespace added to the path and thus the correct action is executed. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3066) RegexFieldValidator not working correctly on IBM JVM - xml validation files
[ https://issues.apache.org/jira/browse/WW-3066?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3066: -- Fix Version/s: Future Seems to be solved already, could you check against the latest version ? RegexFieldValidator not working correctly on IBM JVM - xml validation files --- Key: WW-3066 URL: https://issues.apache.org/jira/browse/WW-3066 Project: Struts 2 Issue Type: Bug Components: XML Validators Affects Versions: 2.1.6 Environment: IBM WAS 7.0 Reporter: Tomasz Filak Fix For: Future We use -validation.xml files in our struts2 web application. Validation worked fine on Tomcat but since we migrated to Websphere 7.0, we have noticed strange behaviour of the XWork Validator framework. After some debugging we found, that the reason was RegexFieldValidator.getTextValue(Element valueEle) method. On IBM JVM, XML expressions containing XML entities (such as amp; or gt; ) are parsed as separate nodes, so following configuration: field-validator type=fieldexpression param name=expression( (placeId != null amp;amp; placeId gt; 0))/param messageString required/message /field-validator resulted in following Nodes being bassed to RegexFieldValidator.getTextValue() method: ( (placeId != null placeId 0)) After merging those nodes, getTextValue returned this String: ( (placeId != null placeId 0)). Additional space were added added between nodes, which broke the whole expression. The same behaviour was noticed when using CDATA tag. Our quick-fix was to override the RegexFieldValidator.getTextValue() to delegate to DomUtils.getTextValue() method. Best regards. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3334) s:url does not escapeAmp
[ https://issues.apache.org/jira/browse/WW-3334?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3334: -- Fix Version/s: 3.x Could you try to use the latest Portlet 2 plugin ? s:url does not escapeAmp Key: WW-3334 URL: https://issues.apache.org/jira/browse/WW-3334 Project: Struts 2 Issue Type: Bug Components: Plugin - Portlet Affects Versions: 2.1.8 Environment: Discovered on Sitevision Reporter: Leonard Broman Fix For: 3.x s:url does not escape entities. And the parameter escapeAmp has no effect whatsoever. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-2561) Included XSL files' URI not being resolved for actions with result type=xslt
[ https://issues.apache.org/jira/browse/WW-2561?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2561: -- Fix Version/s: 3.x Included XSL files' URI not being resolved for actions with result type=xslt -- Key: WW-2561 URL: https://issues.apache.org/jira/browse/WW-2561 Project: Struts 2 Issue Type: Bug Affects Versions: 2.0.11.1 Environment: Windows XP/SP2; WebSphere Application Server v6.1.0.7. Reporter: Victor Voronenko Assignee: Don Brown Fix For: 3.x Make Struts action e.g: action name=DealList class=DealSheetAction result type=xslt name=success param name=exposedValue{deals}/param param name=location/WEB-INF/xsl/dealList.xsl/param /result Supply any XML by including some code like this in action class: public String[] getMonths(){ String months[] = {Jan, Feb, Mar, Apr, May, Jun, July, Aug, Sep, Oct, Nov, Dec}; return months; } Supply the XSL file, sort of this: ?xml version=1.0 encoding=UTF-8? xsl:stylesheet version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform; xsl:include href=/WEB-INF/xsl/pageHeader.xsl/ xsl:include href=/WEB-INF/xsl/pageFooter.xsl/ xsl:output method=html encoding=UTF-8 indent=no/ xsl:template match=result html body xsl:call-template name=pageheader/ br/ There are following months in a year:br/br xsl:for-each select=//item[position() gt; 0 and position() lt; 13] xsl:value-of select=./, /xsl:for-each xsl:call-template name=pagefooter/ /body /html /xsl:template /xsl:stylesheet At a run time it will generate the error: [3/24/08 10:05:03:927 EDT] 001e SystemErr R SystemId Unknown; Line #3; Column #51; Had IO Exception with stylesheet file: /WEB-INF/xsl/pageFooter.xsl [3/24/08 10:05:03:927 EDT] 001e SystemErr R SystemId Unknown; Line #19; Column #41; javax.xml.transform.TransformerException: ElemTemplateElement error: pagefooter with the following stack: java.lang.NullPointerException at org.apache.struts2.views.xslt.XSLTResult.execute(XSLTResult.java:325) at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
[jira] [Updated] (WW-2719) Struts action gives 404 in websphere with file serving disabled
[ https://issues.apache.org/jira/browse/WW-2719?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2719: -- Fix Version/s: Future Struts action gives 404 in websphere with file serving disabled --- Key: WW-2719 URL: https://issues.apache.org/jira/browse/WW-2719 Project: Struts 2 Issue Type: Bug Components: Dispatch Filter Environment: Websphere 6.1 Reporter: Harsh Choudhay Fix For: Future Hi, Here is the situation. We are developing application in struts 2.0 on WAS 6.1. I have tried deploying application with below two settings File Serving Enabled Setting : 1) Everything works fine when I hit following URL in the browser https://192.168.1.35/xy zzz/jsp/login/welcome.jsp(Welcome.jsp just redirects to .action after doing some javascript processing) 2) The above jsp redirects me to https://192.168.1.35/x yzzz/welcome_success.action . and the page comes up just fine File Serving Disabled Setting: 1) On hitting https://192.168.1.35/db4/ jsp/login/welcome.jsp 2) I am redirected to https://192.168.1.35/db 4/welcome_success.action, I get page cannot be displayed error, for file serving disabled I have put all the html,images, js CSS in the apache webserver. I think problem is that neither webserver nor app server knows which one should serve .action urls. Also when I look at the plug-in config file there is no URL mapping for .action. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3286) CLONE -NullPointerException on ComponentTagSupport.doStartTag using jsp:include or s:include
[ https://issues.apache.org/jira/browse/WW-3286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3286: -- Fix Version/s: 3.x CLONE -NullPointerException on ComponentTagSupport.doStartTag using jsp:include or s:include Key: WW-3286 URL: https://issues.apache.org/jira/browse/WW-3286 Project: Struts 2 Issue Type: Bug Components: Plugin - Tags Affects Versions: 2.0.14 Environment: Windows XP 32-bit and JBoss AS 4.0.5GA Reporter: Leonid Rozenblyum Fix For: 3.x When using jsp:include or s:include in a JSP page the next Struts 2 tags will throw: java.lang.NullPointerException at org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:50) This is reproducable in JBoss4.0.5GA even with web.xml settings set to what is described in the original (currently closed issue) https://issues.apache.org/struts/browse/WW-2995 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3069) Migration from 2.0.x to 2.1.x: fieldError does not use the full parameter name as id
[ https://issues.apache.org/jira/browse/WW-3069?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3069: -- Fix Version/s: 3.x Migration from 2.0.x to 2.1.x: fieldError does not use the full parameter name as id Key: WW-3069 URL: https://issues.apache.org/jira/browse/WW-3069 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.6 Reporter: henrik sorensen Fix For: 3.x After upgrading from Struts 2.0.11 to 2.1.6, fieldErrors weren't displayed next to form fields any more. The validation still worked, because I could still see the errors by issuing a s:fielderror/. My form is a value on the action, and is addressed like this: s:textfield label=Your e-mail address name=form.email theme=mytheme / I noticed that to access a separate value in fieldError in 2.1.6, I had to chop off form.: s:fielderror fieldName=form.email / !-- doesn't show anything -- s:fielderror fieldName=email / !-- shows the error-- Now, to be able to show my error using my template, I had to add an ID to my textfield: s:textfield label=Your e-mail address id=email name=form.email theme=mytheme / Then I had to change the default hasErrorField assignment in the controlheader.tpl template: #assign hasFieldErrors = parameters.name?? fieldErrors?? fieldErrors[parameters.name]??/ !-- does not work -- #assign hasFieldErrors = parameters.id?? fieldErrors?? fieldErrors[parameters.id]??/ !-- works as intended -- And change way I fetched errors in my controlfooter.tpl: #list fieldErrors[parameters.name] as error !-- does not work -- #list fieldErrors[parameters.id] as error !-- works -- Voila! I can see field errors again. Just to summarize: To access a fieldError, I have to manually strip form.from form.email. I also have to set an additional ID on my form fields (with the stripped value) to be able to access it from my template. Is this the intended behaviour? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3338) s:hidden tag should interpret its value attribute same as the other tags do.
[ https://issues.apache.org/jira/browse/WW-3338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3338: -- Fix Version/s: 2.3.x s:hidden tag should interpret its value attribute same as the other tags do. -- Key: WW-3338 URL: https://issues.apache.org/jira/browse/WW-3338 Project: Struts 2 Issue Type: Improvement Components: Plugin - Tags Affects Versions: 2.1.8 Reporter: Andreas Krüger Fix For: 2.3.x According to http://struts.apache.org/2.1.8.1/docs/tag-syntax.html , any attribute value= is interpreted for OGNL. This is not true for s:hidden ... value=myprop / , which will use the literal string myprop. To get it to call my bean's getMyprop(), I need to say s:hidden ... value=%{myprop} / Would be nice if this could be streamlined, so s:hidden conforms to the general principle. As that change might break existing code, it might be more easily asked for than done. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3345) Disabled select lists
[ https://issues.apache.org/jira/browse/WW-3345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3345: -- Fix Version/s: 3.x Disabled select lists - Key: WW-3345 URL: https://issues.apache.org/jira/browse/WW-3345 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.8 Reporter: Diego Trombetta Fix For: 3.x Upgrading from version 2.1.2 to version 2.1.8 the behavior of disabled select lists have been broken: when a select list is disabled a hidden input field is generated to keep track of the value in the form submits. Having added the 'disabled' attribute to the hidden.ftl this field disabeld, so it is unuseful! -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-2948) Filter init parameter actionPackages fails on JBoss5
[ https://issues.apache.org/jira/browse/WW-2948?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2948: -- Fix Version/s: 2.3.x Could you check with the latest version ? Filter init parameter actionPackages fails on JBoss5 -- Key: WW-2948 URL: https://issues.apache.org/jira/browse/WW-2948 Project: Struts 2 Issue Type: Bug Affects Versions: 2.0.14, 2.1.6 Environment: JDK 1.6, JBoss 5.0GA Reporter: Wolfgang Knauf Fix For: 2.3.x Attachments: fix_for_struts_issue_WW-2948.patch, fix_for_struts_issue_WW-2948_struts-2.2.3.patch, fix_for_struts_issue_WW-2948_trunk.patch Take the sample struts2-blank-2.0.14.war. Add this init-param to web.xml: filter filter-namestruts2/filter-name filter-classorg.apache.struts2.dispatcher.FilterDispatcher/filter-class init-param param-nameactionPackages/param-name param-valueexample/param-value /init-param /filter Now deployment on JBoss5.0 GA will result in this error: 17:30:16,421 INFO [TomcatDeployment] deploy, ctxPath=/struts2-blank-2.0.14, vfsUrl=struts2-blank-2.0.14.war 17:30:16,890 INFO [XmlConfigurationProvider] Parsing configuration file [struts-default.xml] 17:30:16,953 INFO [XmlConfigurationProvider] Parsing configuration file [struts-plugin.xml] 17:30:16,968 INFO [XmlConfigurationProvider] Parsing configuration file [struts.xml] 17:30:16,968 WARN [Settings] Settings: Could not parse struts.locale setting, substituting default VM locale 17:30:17,156 INFO [ResolverUtil] Scanning for classes in [/C:/temp/jboss-5.0.0.GA/server/default/deploy/struts2-blank-2.0.14.war/WEB-INF/classes/example/] matching criteria: org.apache.struts2.config.ClasspathConfigurationProvider$1@dc9c10 17:30:17,156 ERROR [ResolverUtil] Could not search jar file 'C:\temp\jboss-5.0.0.GA\server\default\deploy\struts2-blank-2.0.14.war\WEB-INF\classes\example' for classes matching criteria: org.apache.struts2.config.ClasspathConfigurationProvider$1@dc9c10 due to an IOException java.io.FileNotFoundException: C:\temp\jboss-5.0.0.GA\server\default\deploy\struts2-blank-2.0.14.war\WEB-INF\classes\example (Das System kann den angegebenen Pfad nicht finden) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.init(Unknown Source) at com.opensymphony.xwork2.util.ResolverUtil.loadImplementationsInJar(ResolverUtil.java:341) at com.opensymphony.xwork2.util.ResolverUtil.findInPackage(ResolverUtil.java:288) at com.opensymphony.xwork2.util.ResolverUtil.find(ResolverUtil.java:240) at org.apache.struts2.config.ClasspathConfigurationProvider.loadPackages(ClasspathConfigurationProvider.java:234) at org.apache.struts2.config.ClasspathConfigurationProvider.loadPackages(ClasspathConfigurationProvider.java:402) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:152) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452) at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:205) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:234) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:332) at org.apache.catalina.core.ApplicationFilterConfig.init(ApplicationFilterConfig.java:90) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3783) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4413) at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:367) at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:146) at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460) at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118) at org.jboss.web.deployers.WebModule.start(WebModule.java:96) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) at
[jira] [Updated] (WW-2856) Client Side Javascript doesn't get generated when using the struts2-guice-plugin
[ https://issues.apache.org/jira/browse/WW-2856?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2856: -- Fix Version/s: 3.x Client Side Javascript doesn't get generated when using the struts2-guice-plugin Key: WW-2856 URL: https://issues.apache.org/jira/browse/WW-2856 Project: Struts 2 Issue Type: Bug Components: Integration Affects Versions: 2.1.2 Environment: Windows Vista, Sun JDK 6, Tomcat 6. struts2-guice-plugin v 1.0.1 and snapshot 20081016. Reporter: Adam Ruggles Fix For: 3.x See http://www.nabble.com/Struts-2.1.2-client-side-validation-doesn%27t-get-generated-to20221161.html for more details. Client Side Javascript doesn't get generated when using the struts2-guice-plugin. performValidation is never set to true when using the guice plugin. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3008) File Upload Interceptor doesn't display i18n message while error occured.
[ https://issues.apache.org/jira/browse/WW-3008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3008: -- Fix Version/s: 3.x File Upload Interceptor doesn't display i18n message while error occured. - Key: WW-3008 URL: https://issues.apache.org/jira/browse/WW-3008 Project: Struts 2 Issue Type: Bug Components: Core Interceptors Affects Versions: 2.1.6 Environment: Tomcat6, Jboss-Web 2.1.1,Jetty 6.1 Reporter: Ken Fix For: 3.x As it described in the document: http://cwiki.apache.org/WW/file-upload-interceptor.html This interceptor will add several field errors, assuming that the action implements ValidationAware. These error messages are based on several i18n values stored in struts-messages.properties, a default i18n file processed for all i18n requests. You can override the text of these messages by providing text for the following keys: struts.messages.error.uploading - a general error that occurs when the file could not be uploaded struts.messages.error.file.too.large - occurs when the uploaded file is too large struts.messages.error.content.type.not.allowed - occurs when the uploaded file does not match the expected content types specified but in fact it doen't show these messages.I followe the code into the interceptor,and find it only catch the exceptions and add the exception's message simplely by invoke addActionError method. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-2987) Validation messages do not get displayed using a redirectAction as the input
[ https://issues.apache.org/jira/browse/WW-2987?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2987: -- Fix Version/s: Future Could you check against the latest Portlet 2 plugin ? Validation messages do not get displayed using a redirectAction as the input Key: WW-2987 URL: https://issues.apache.org/jira/browse/WW-2987 Project: Struts 2 Issue Type: Bug Components: Plugin - Portlet Affects Versions: 2.1.6 Environment: JBoss Portal 2.7.1 Reporter: Dean Pullen Fix For: Future Attachments: ItemAction.java, item.jsp, struts-test.xml This was originally posted to the mailing list without being solved. It seems we're correctly directed back to the input when Validation isn't passed, but we cannot pick up the error messages using the usual tags: s:actionerror / s:fielderror / We're utilising the portletDefaultStack and our Portlet package is extending struts-portlet-default. Our package has no name-space set. For example this is the view, which is the input of the edit action: action name=ItemView class=com.msp.portlets.ItemAction interceptor-ref name=portletDefaultStack/ result/WEB-INF/jsp/welcome/admin/item.jsp/result /action This is the edit action: action name=ItemEdit class=com.msp.portlets. ItemAction method=itemEdit interceptor-ref name=portletDefaultStack/ result type=redirectAction name=success param name=actionNameItemView/param /result result type=redirectAction name=input param name=actionName ItemView /param /result /action This works perfectly if the redirectAction input is replaced with a standard JSP forward, and the validation errors are shown to the user. Utilising validation XML instead of annotations produces the same problem - redirectAction does not work, JSP does. Utilising the messageStoreInterceptor does not help. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3364) Using convertors in JSON serialization
[ https://issues.apache.org/jira/browse/WW-3364?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3364: -- Fix Version/s: 3.x Using convertors in JSON serialization -- Key: WW-3364 URL: https://issues.apache.org/jira/browse/WW-3364 Project: Struts 2 Issue Type: Improvement Affects Versions: 2.1.8 Reporter: Rahul Mohan Fix For: 3.x The bundled JSON plugin does not use registered convertors for data conversion. This seriously affects the implementation of gracefully degrading ajax apps. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3276) Convention plugin fails to resolve action/method correctly
[ https://issues.apache.org/jira/browse/WW-3276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3276: -- Fix Version/s: 3.x Convention plugin fails to resolve action/method correctly -- Key: WW-3276 URL: https://issues.apache.org/jira/browse/WW-3276 Project: Struts 2 Issue Type: Bug Components: Plugin - Convention Affects Versions: 2.1.6 Environment: Eclipse IDE on both Windows OpenSuse 11.2 with Tomcat 2.0.18 Reporter: Roger Rached Fix For: 3.x Attachments: demo.war Each button has the URL - action:deletegroup?deleteId=x where x is the index of the list. If action DemoDelete has the @Annotation @Action(deletegroup) then Struts throws a no action fund. Change the @Annotation to @Action(deletegroup?deleteId=2) and press the appropriate button then the delete method gets called. However, Struts then throws No result defined for action com.blackbox.actions.DemoDelete and result sucess The error thrown doesn't seem to relate to what can't be found. I've noticed that once I start using @Action notations, Struts seems to get confused and the error messages are misleading. For example, remove entry-input.jsp and Struts error message throws No result defined for action com.blackbox.actions.DemoDelete and result input which is extemely confusing when what it seems to be looking for is entry-input.jsp. I have a demo.war file available if ou can tell me where to send/upload -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3010) s:iterator fails to iterate over collections containing null
[ https://issues.apache.org/jira/browse/WW-3010?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3010: -- Fix Version/s: 3.x s:iterator fails to iterate over collections containing null Key: WW-3010 URL: https://issues.apache.org/jira/browse/WW-3010 Project: Struts 2 Issue Type: Bug Affects Versions: 2.0.14 Environment: any Reporter: Daniel Baldes Fix For: 3.x When using the struts2 taglib's iterator tag to iterate over a collection which contains nulls, the current value (id) is not set to null, but to the value it had in the last iteration before. This behaviour is explicitly coded without any obvious reason. See IteratorComponent.java from line 219: if ((id != null) (currentValue != null)) { //pageContext.setAttribute(id, currentValue); //pageContext.setAttribute(id, currentValue, PageContext.REQUEST_SCOPE); stack.getContext().put(id, currentValue); } Expected behaviour: just iterate over the null values as a plain java iterator would. If nulls are forbidden for some important reason, it should throw an execption, but not return a wrong value. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3232) New Cookie Interceptor
[ https://issues.apache.org/jira/browse/WW-3232?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3232: -- Priority: Minor (was: Major) Fix Version/s: 3.x New Cookie Interceptor -- Key: WW-3232 URL: https://issues.apache.org/jira/browse/WW-3232 Project: Struts 2 Issue Type: Improvement Components: Core Interceptors Affects Versions: 2.1.6 Reporter: carlo scarioni Assignee: Maurizio Cucchiara Priority: Minor Fix For: 3.x Attachments: struts-cookie-interceptor.tar.gz Hello, I've developed for my current project a simple Cookie Interceptor. It's like the one in the distribution but different, :) It works by annotating in the action with a @Cookie(name=cookieName,timeToLive=100,path=xxx) a String property. The Interceptor (Which is also a PreResultListener) Scans the action. if it finds a @Cookie annotation it injects the cookie value into the action's property. When the action is executed, the interceptor's beforeResultMethod scans the action again and the values from properties annotated with @Cookie are saved in the response's cookies. This is the basic idea, than using just the getters and setters in the action you can retrieve and set a cookie.. I would love to share this simple interceptor, i would love to see a little of my code added to your project :D ... what can i do for you to see the code and if it's something you like, submit it... thanks.. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3267) ParamsInterceptor doesn't populate request parameters on certain situations
[ https://issues.apache.org/jira/browse/WW-3267?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3267: -- Fix Version/s: 3.x ParamsInterceptor doesn't populate request parameters on certain situations --- Key: WW-3267 URL: https://issues.apache.org/jira/browse/WW-3267 Project: Struts 2 Issue Type: Bug Components: Core Interceptors Affects Versions: 2.1.6 Environment: Tested on windows XP, java 1.5 and Tomcat 6 Reporter: Ricardo Tercero Lozano Fix For: 3.x I've discovered a situation where ParamsInterceptor doesn't populate the action bean attributes. This is the situation: 1) Webapp with struts2 deployed 2) Interceptor stack redefined to have an own interceptor before default stack (just before params interceptor indeed): interceptor-ref name=serverDate / interceptor-ref name=defaultStack param name=validation.includeMethodsvalidar*/param param name=workflow.includeMethodsvalidar*/param /interceptor-ref Where serverDate is an interceptor that only puts an object into de ValueStack. 3) Test, for example, file upload interceptor. So put the 3 attributes onto a bean with setters/getters public File anexo; public String anexoContentType; public String anexoFileName; 4) Run it, and when execution control stops on action method, the attributes are not filled in. After some debugging, I can add another restriction to this test case: the request params have to be direct action attributes (just 'address' instead of 'form.address'). This is the execution sequence: 1.- First, control stops in 'doIntercept' method of ParamsInterceptor. 2.- on line 173, method retrieveParameters is called, returning the parameter list. 3.- on line 186, ac.getValueStack() is called. In debug mode, here the bad situation can be detected. 4.- on line 187, setParameters() method is called. 5.- on this method, on line 273 a newStack.setValue() is called. So, attribute population is handled through setValue on the ValueStack. In both, correct and error situation (no parameters inserted into ValueStack before paramsInterceptor) the call to setValue ends on method 'setProperty' of com.opensymphony.xwork.ognl.accessor.CompoundRootAccessor. This method iterates over the elements of the root property from OgnlStackValue, which is a CompoudRoot object. This CompoundRoot is, in fact, an array with StackValue root elements. CompoundRootAccessor.setProperty, sets a property on the first available element of the CompoundRoot with special programming for 2 object types: 1.- Objects with a set accessor available for the parameter to set. 2.- Maps to insert the parameter. In the correct situation, the composition of the CompoundRoot is like this: [0] ActionBean [1] DefaultTextProvider so the first available element of the CompoundRoot array with a setter for the property is the ActionBean resulting in a call to the bean setter property. In the erro situation, with an interceptor inserting an object into the ValueStack previous to paramsInterceptor execution, the composition of the CompoundRoot is: [0] HashMapK,V (ValueStack root elements). [1] ActionBean [2] DefaultTextProvider so the first available element of the CompoundRoot array with a setter is the HashMap resulting in the request parameters inserted into the root of the ValueStack, but not the ActionBean. This is so, only for direct attributes of the action bean. If the named parameter has dots '.' for object navigation, the OgnlStackValue sets properties right. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3377) template location is not properly resolved when using action-tag
[ https://issues.apache.org/jira/browse/WW-3377?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3377: -- Fix Version/s: 3.x template location is not properly resolved when using action-tag Key: WW-3377 URL: https://issues.apache.org/jira/browse/WW-3377 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.8 Reporter: Philipp Leusmann Fix For: 3.x if an action-tag with executeResults=true includes an action from a different namespace and the template location of the included action in struts.xml is expressed relative to the namespace, template-loading for the included action fails. The template of the included action is searched for in the directory belonging to the namespace of the including action. Example: struts.xml: package name=p1 extends=struts-default namespace=/ns1 action name=includingAction result type=freemarker name=successincluder.ftl/result /action /package package name=p2 extends=struts-default namespace=/ns2 action name=includedAction result type=freemarker name=successincluded.ftl/result /action /package and in includer.ftl: @s.action name=includedAction namespace=ns2 executeResults=true / Will result in an Exception: ERROR ActionComponent:27 - Could not execute action: /ns1/includingAction java.io.FileNotFoundException: Template /ns1/included.ftl not found. at freemarker.template.Configuration.getTemplate(Configuration.java:489) at freemarker.template.Configuration.getTemplate(Configuration.java:459) at org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:168) [...] -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3365) There will be no log4j error message while it displays warning The visited object is null, VisitorValidator will not be able to handle validation properly. Please make sure
[ https://issues.apache.org/jira/browse/WW-3365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3365: -- Fix Version/s: Future Did you try to ask on the User ML ? There will be no log4j error message while it displays warning The visited object is null, VisitorValidator will not be able to handle validation properly. Please make sure the visited object is not null for VisitorValidator to function properly --- Key: WW-3365 URL: https://issues.apache.org/jira/browse/WW-3365 Project: Struts 2 Issue Type: Bug Components: Core Interceptors Affects Versions: 2.1.2 Environment: Tomcat 6.0 + Struts 2.1.2 Reporter: jession ji Fix For: Future We use log4j debug in all validator methods to get the detail for illegal input. And we found that there will might be no log4j log and a waring on tomcat server The visited object is null, VisitorValidator will not be able to handle validation properly. Please make sure the visited object is not null for VisitorValidator to function properly. It will be OK after we restart tomcat server. This issue can not be found every time. Could anyone give me some advice? public void validate(Object object) throws ValidationException { String fieldName = getFieldName(); String val = (String) getFieldValue(fieldName, object); log.logInfo(Field: + fieldName + Value: + val); if ((minLength -1) (val.length() minLength)) { addFieldError(fieldName, object); } else if ((maxLength -1) (val.length() maxLength)) { log.logError(Input validation max length checking failure:+fieldName); addFieldError(fieldName, object); } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3372) Convention Plugin is incompatible with wildcard mappings
[ https://issues.apache.org/jira/browse/WW-3372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3372: -- Fix Version/s: 3.x Convention Plugin is incompatible with wildcard mappings Key: WW-3372 URL: https://issues.apache.org/jira/browse/WW-3372 Project: Struts 2 Issue Type: Bug Components: Plugin - Convention Affects Versions: 2.1.8 Reporter: Matthew Payne Fix For: 3.x When the convention plugin is enabled, wildcard mappings no longer work The following should apply to serveral levels deep. package name=publicPages extends=pmlDefault namespace=/pages/PML_Public action name=** class=com.pennmutual.website.actions.BasePMLAppAction result name=success type=freemarker{1}.html/result /action /package -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3343) multiple forms on a single page renders wrong namespace in form action url
[ https://issues.apache.org/jira/browse/WW-3343?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3343: -- Fix Version/s: Future multiple forms on a single page renders wrong namespace in form action url -- Key: WW-3343 URL: https://issues.apache.org/jira/browse/WW-3343 Project: Struts 2 Issue Type: Bug Components: Core Actions Affects Versions: 2.1.8.1 Reporter: Wes Wannemacher Fix For: Future Attachments: testForm.zip so, this has been bugging me for a while, I decided to test it out. A JSP like that contains something like the following - %@ taglib uri=/struts-tags prefix=s % html body h2Hello World!/h2 s:form action=foo namespace=/ s:submit / /s:form s:form action=bar namespace=/baz s:submit / /s:form /body /html When the page is rendered, the second form will not respect the /baz namespace. I created a sample app and will upload it here. I suspect the ServletUrlRenderer is the culprit, but I'll research more. If someone gets this fixed before me, that's fine, I wanted to post it to JIRA quick because this bug is a pain in my tuches. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3205) Escaped apostrophe in property files
[ https://issues.apache.org/jira/browse/WW-3205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3205: -- Fix Version/s: Future Did you try to ask on the User ML ? Escaped apostrophe in property files Key: WW-3205 URL: https://issues.apache.org/jira/browse/WW-3205 Project: Struts 2 Issue Type: Bug Components: Other Affects Versions: 2.1.6 Reporter: Tamas Ruff Fix For: Future My application contains both struts(1) and strust2 pages, and all the pages use the same property files as resource bundle. Some of the localized texts are used in javascript for both struts1 and struts2 pages. I have a problem with rendering the localized texts which contain apostrophes. For example I have the following base text: Vue d'ensemble de la page Because this localized text will be used in the JavaScript the result of rendering the tags should be: Vue d\'ensemble de la page (apostrophe escaped for javascript) In the strus1 jsp page (somewhere in a javascipt JSON table) I have: bean:message bundle='Struts2Resources' key='menu.item.home.tt'/ To obtain the expected result for this tag in the property file I should have: 'menu.item.home.tt=Vue d\\'ensemble de la page Similarly in the strus2 jsp page (somewhere in a javascipt JSON table) I have: s:text name='menu.item.home.tt'/ To obtain the expected result for this tag in the property file I should have: 'menu.item.home.tt=Vue d\\''ensemble de la page In the first case the result in the struts2 page will be Vue d\ensemble de la page i.e. the apostrophe disappear In the second case the result in the struts1 page will be Vue d\''ensemble de la page which result in javascript error. I don't really understand why is the behavior different for these tags because I suppose that at the background both use the same JDK ResourceBundles. Please suggest an escaping solution which should work for both struts1 and struts2 tags. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3382) Struts 2.1.8.1 s:a tags are not rendering link text
[ https://issues.apache.org/jira/browse/WW-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3382: -- Fix Version/s: 3.x Struts 2.1.8.1 s:a tags are not rendering link text --- Key: WW-3382 URL: https://issues.apache.org/jira/browse/WW-3382 Project: Struts 2 Issue Type: Bug Components: Plugin - Tags Affects Versions: 2.1.8, 2.1.8.1 Reporter: Nikola Zifra Labels: 2181, link, missing, struts, text Fix For: 3.x Hi in one of our companies older projects I am trying to replace existing Struts 2.0.9 with Struts 2.1.8.1. Project uses Maven 2 as build tool and embedded Jetty 6.1.22 through maven jetty plugin. The first problem I encountered is that s:a tags which have used to work normally with Struts 2.0.9 and were generating a href='URL'Some link text/a as output are now generating just a href='URL' /a without any link text. This applies both to Struts 2.1.8.1 and Struts 2.1.8. I tried also servlet-api-2.4 and servlet-api-2.5 as runtime dependency for maven jetty plugin but a href='URL' /a HTML tags were still being generated. However when i switched to Struts 2.1.6 a href='URL'Some link text/a started appearing in generated HTML. Could someone pls. investigate is this a bug or intended behavior of Struts 2.1.8.1. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3399) JCR(JSR-170) Struts2 plugin
[ https://issues.apache.org/jira/browse/WW-3399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3399: -- Fix Version/s: 3.x JCR(JSR-170) Struts2 plugin --- Key: WW-3399 URL: https://issues.apache.org/jira/browse/WW-3399 Project: Struts 2 Issue Type: New Feature Components: Other Reporter: Max Skripnikov Fix For: 3.x Attachments: patch.txt Want to submit a patch for a new feature - plugin for the Struts2 and JCR(JSR-170) integration. It were developed as a part of the Sibutu project (http://code.google.com/p/sibutu/), but since it more relates to Struts2 we will be glad if you include this plugin into the Struts2 in future. Plugin consists of two parts - annotation based interceptor for preloading JCR nodes, and wrapper classes for transparent wrapping of JCR Nodes so they implement both javax,jcr.Node and java.util.Map. This approach allows node's properties to be set directly by Struts2, also validation can easily be done and JCR node's properties can be referenced in JSP pages in a standard way. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3413) struts2-archetype-blank application pom.xml modifucations
[ https://issues.apache.org/jira/browse/WW-3413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3413: -- Fix Version/s: 2.3.x struts2-archetype-blank application pom.xml modifucations - Key: WW-3413 URL: https://issues.apache.org/jira/browse/WW-3413 Project: Struts 2 Issue Type: Bug Components: Example Applications Affects Versions: 2.1.8.1 Environment: Maven2 Reporter: Oleg Mikheev Fix For: 2.3.x The pom.xml that is produced by running mvn archetype:generate -B-DgroupId=tutorial -DartifactId=tutorial -DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=struts2-archetype-blank -DarchetypeCatalog=http://people.apache.org/builds/struts/2.1.8.1/m2-staging-repository/ probably has two things than need to be modified. First of all two dependencies can be safely removed from it: dependency groupIdorg.springframework/groupId artifactIdspring-mock/artifactId version2.0.8/version scopetest/scope /dependency dependency groupIdorg.springframework/groupId artifactIdspring-core/artifactId version2.5/version scopetest/scope /dependency Second, test scope should be added to the struts2-junit-plugin so that is won't get deployed: dependency groupIdorg.apache.struts/groupId artifactIdstruts2-junit-plugin/artifactId version${struts2.version}/version *scopetest/scope* /dependency -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3430) s:hidden tag doesn't generate HTML code for table row and cell and so produce a validation error
[ https://issues.apache.org/jira/browse/WW-3430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3430: -- Fix Version/s: 3.x s:hidden tag doesn't generate HTML code for table row and cell and so produce a validation error -- Key: WW-3430 URL: https://issues.apache.org/jira/browse/WW-3430 Project: Struts 2 Issue Type: Bug Components: Integration Affects Versions: 2.1.8.1 Environment: Reproducable at any environment Reporter: Alexey Malev Labels: error, hidden, html, input Fix For: 3.x Attachments: diff.txt s:hidden tag simply generates input type=hidden ... /. hidden.ftl in attachment is a replacement for a hidden.ftl template in simple theme folder. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3447) convention plugin has no testcases
[ https://issues.apache.org/jira/browse/WW-3447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3447: -- Fix Version/s: Future convention plugin has no testcases -- Key: WW-3447 URL: https://issues.apache.org/jira/browse/WW-3447 Project: Struts 2 Issue Type: Bug Components: Plugin - Convention Affects Versions: 2.1.8 Environment: All Reporter: Martin Gainty Fix For: Future Original Estimate: 1h Remaining Estimate: 1h There are currently no testcases for convention plugin there is no way to verify if convention-plugin actually works ..we need pass/fail testcases for all of constant parameters from struts-plugin.xml constant name=struts.convention.actionConfigBuilder value=convention/ constant name=struts.convention.actionNameBuilder value=convention/ constant name=struts.convention.resultMapBuilder value=convention/ constant name=struts.convention.interceptorMapBuilder value=convention/ constant name=struts.convention.conventionsService value=convention/ constant name=struts.convention.result.path value=/WEB-INF/content// constant name=struts.convention.result.flatLayout value=true/ constant name=struts.convention.action.suffix value=Action/ constant name=struts.convention.action.disableScanning value=false/ constant name=struts.convention.action.mapAllMatches value=false/ constant name=struts.convention.action.checkImplementsAction value=true/ constant name=struts.convention.default.parent.package value=convention-default/ constant name=struts.convention.action.name.lowercase value=true/ constant name=struts.convention.action.name.separator value=-/ constant name=struts.convention.package.locators value=action,actions,struts,struts2/ constant name=struts.convention.package.locators.disable value=false/ constant name=struts.convention.package.locators.basePackage value=/ constant name=struts.convention.exclude.packages value=org.apache.struts.*,org.apache.struts2.*,org.springframework.web.struts.*,org.springframework.web.struts2.*,org.hibernate.*/ constant name=struts.convention.relative.result.types value=dispatcher,velocity,freemarker/ constant name=struts.convention.redirect.to.slash value=true/ constant name=struts.convention.action.alwaysMapExecute value=true/ constant name=struts.mapper.alwaysSelectFullNamespace value=true/ !-- constant name=struts.convention.action.includeJars / -- constant name=struts.convention.action.fileProtocols value=jar / constant name=struts.convention.classes.reload value=false / constant name=struts.convention.exclude.parentClassLoader value=true / -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3442) StrutsTestCase does not initialise session map
[ https://issues.apache.org/jira/browse/WW-3442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3442: -- Fix Version/s: 2.3.x StrutsTestCase does not initialise session map -- Key: WW-3442 URL: https://issues.apache.org/jira/browse/WW-3442 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.8.1 Reporter: Paul Grove Fix For: 2.3.x In our unit tests we were setting http session object attributes but these we never getting copied into the action session map as it was not being initialised correctly in the getActionProxy method. By adding the following code at the end of the method test worked correctly ActionContext.getContext().setSession(new HashMapString, Object()); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3459) label tag does not evaluate label text correctly (uses value stack rather than message resource)
[ https://issues.apache.org/jira/browse/WW-3459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3459: -- Fix Version/s: 2.3.x label tag does not evaluate label text correctly (uses value stack rather than message resource) Key: WW-3459 URL: https://issues.apache.org/jira/browse/WW-3459 Project: Struts 2 Issue Type: Bug Components: Plugin - Tags Affects Versions: 2.1.8.1 Reporter: Andy Chapman Fix For: 2.3.x s:form theme=simple s:label key=Username for=Username / s:textfield key=Username / /s:form Gives a label with the same text as appears in the textfield (i.e. Username from the value stack rather than the message resource). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3464) Wildcard Mappings, Last one loses.
[ https://issues.apache.org/jira/browse/WW-3464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3464: -- Fix Version/s: 3.x Wildcard Mappings, Last one loses. -- Key: WW-3464 URL: https://issues.apache.org/jira/browse/WW-3464 Project: Struts 2 Issue Type: Bug Components: XML Configuration Affects Versions: 2.1.8.1 Environment: OS X 10.6.4, Java 5, Running from inside Netbeans using embedded tomcat Reporter: Robert M. Zigweid Fix For: 3.x Given the struts.xml snippet: action name=* method={1} class=web.BaseView result name=success type=tilesWelcome/result result name=test type=tilestest/result /action action name=Project* method={1} class=web.ProjectView result name=none type=tilesNoProject/result /action I generate the log results as follows: 20676 [http-8084-2] DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@61b59919], property=struts] 20682 [http-8084-2] DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@61b59919], property=struts] 20689 [http-8084-2] DEBUG com.opensymphony.xwork2.DefaultActionProxy - Creating an DefaultActionProxy for namespace / and action name ProjectStatus 20689 [http-8084-2] DEBUG com.opensymphony.xwork2.config.impl.AbstractMatcher - Attempting to match 'ProjectStatus' to a wildcard pattern, 3 available 20689 [http-8084-2] DEBUG com.opensymphony.xwork2.config.impl.AbstractMatcher - Value matches pattern '*' 20703 [http-8084-2] DEBUG com.opensymphony.xwork2.interceptor.I18nInterceptor - intercept '//ProjectStatus' { 20704 [http-8084-2] DEBUG com.opensymphony.xwork2.interceptor.I18nInterceptor - applied invocation context locale=en 20704 [http-8084-2] DEBUG com.opensymphony.xwork2.interceptor.I18nInterceptor - before Locale=en 20735 [http-8084-2] DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler - Entering nullPropertyValue [target=[web.BaseView@55d7fc31, com.opensymphony.xwork2.DefaultTextProvider@61b59919], property=struts] 20765 [http-8084-2] DEBUG org.apache.struts2.interceptor.FileUploadInterceptor - Bypassing //ProjectStatus 20765 [http-8084-2] DEBUG com.opensymphony.xwork2.interceptor.StaticParametersInterceptor - Setting static parameters {} 20767 [http-8084-2] DEBUG com.opensymphony.xwork2.interceptor.ParametersInterceptor - Setting params NONE 20767 [http-8084-2] DEBUG com.opensymphony.xwork2.interceptor.ParametersInterceptor - Setting params As you can see the * is matched as opposed to Project*, which seems to go against the 'last one wins' as is described by the struts documentation on http://struts.apache.org/2.1.8.1/docs/wildcard-mappings.html Now, if I reverse the order of the actions in struts.xml I get the following result: 13176 [http-8084-1] DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@18a4edc4], property=struts] 13176 [http-8084-1] DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@18a4edc4], property=struts] 13176 [http-8084-1] DEBUG com.opensymphony.xwork2.DefaultActionProxy - Creating an DefaultActionProxy for namespace / and action name ProjectStatus 13176 [http-8084-1] DEBUG com.opensymphony.xwork2.config.impl.AbstractMatcher - Attempting to match 'ProjectStatus' to a wildcard pattern, 3 available 13176 [http-8084-1] DEBUG com.opensymphony.xwork2.config.impl.AbstractMatcher - Value matches pattern 'Project*' 13177 [http-8084-1] DEBUG com.opensymphony.xwork2.interceptor.I18nInterceptor - intercept '//ProjectStatus' { 13177 [http-8084-1] DEBUG com.opensymphony.xwork2.interceptor.I18nInterceptor - applied invocation context locale=en 13177 [http-8084-1] DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler - Entering nullPropertyValue [target=[web.ProjectView@63ad6884, com.opensymphony.xwork2.DefaultTextProvider@18a4edc4], property=locale] 13177 [http-8084-1] DEBUG com.opensymphony.xwork2.interceptor.I18nInterceptor - before Locale=null 13177 [http-8084-1] DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler - Entering nullPropertyValue [target=[web.ProjectView@63ad6884, com.opensymphony.xwork2.DefaultTextProvider@18a4edc4], property=struts] 13178 [http-8084-1] DEBUG org.apache.struts2.interceptor.FileUploadInterceptor - Bypassing //ProjectStatus
[jira] [Updated] (WW-3495) DateTimePicker uses the hardcoded format (i.e. yyyy-MM-dd'T'HH:mm:ss) for dates
[ https://issues.apache.org/jira/browse/WW-3495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3495: -- Fix Version/s: 3.x DateTimePicker uses the hardcoded format (i.e. -MM-dd'T'HH:mm:ss) for dates --- Key: WW-3495 URL: https://issues.apache.org/jira/browse/WW-3495 Project: Struts 2 Issue Type: Improvement Affects Versions: 2.0.11 Reporter: Sergiusz Kierat Fix For: 3.x There is no possibility to set the custom format for date value type. It is always formated by RFC3339_FORMAT. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3481) Using stream results with content-disposition: attachment; filename=whatever in HTTPS and IE does not work
[ https://issues.apache.org/jira/browse/WW-3481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3481: -- Fix Version/s: 3.x Using stream results with content-disposition: attachment; filename=whatever in HTTPS and IE does not work Key: WW-3481 URL: https://issues.apache.org/jira/browse/WW-3481 Project: Struts 2 Issue Type: Bug Components: New API, Documentation Affects Versions: 2.1.8.1 Reporter: Andy Chapman Fix For: 3.x I have a page which allows the download of files. I implement some complex security around this so I use a stream result from an action to return the resulting file. It works beautifully in Firefox, Chrome, Opera etc but in IE (I'm using version 8 but I think it affects other versions as well) it gives an error - Internet Explorer cannot download whatever from wherever. Internet explorer was not able to open this Internet Site. The request is either unavailable or cannot be found. Please try again later. This is apparently to do with the Cache-Control: no-cache being incorrectly implemented in IE since version 6 (i.e. all current versions). As I understand it, IE deletes the file before it can be saved. The solution in the documentation at http://struts.apache.org/2.1.8.1/docs/stream-result.html points to http://struts.apache.org/2.1.8.1/docs/https-and-ie-issues.html which is very out of date (I don't think interceptors work that way any more) and even when adapted to version 2.1.8.1 (my feeble effort below) doesn't work because I can't change the allowCaching parameter at run time (it needs to be true for IE downloads and false for everything else). It would be really good to: 1) Make the allowCaching parameter of the StreamResult class take a stack parameter and OGNL expression (like the other parameters) 2) Include the workaround for IE misbehaviour in the StreamResult class doExecute method Cheers --- public class HTTPRequestCachePrivateInterceptor implements Interceptor { public void destroy() {} public void init() {} public String intercept(ActionInvocation invocation) throws Exception { HttpServletRequest request = (HttpServletRequest)invocation.getInvocationContext().get(ServletActionContext.HTTP_REQUEST); HttpServletResponse response = (HttpServletResponse) invocation.getInvocationContext().get(ServletActionContext.HTTP_RESPONSE); if (request!=null response!=null) { if (request.isSecure()) { String userAgent = request.getHeader(User-Agent); if (userAgent!=null) { if (userAgent.indexOf(MSIE)=0) { response.setHeader(Cache-Control, private, no-transform, must-revalidate, max-age=5); } } } } return invocation.invoke(); } } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3516) Add div tag to s:checkboxlist UI Tag
[ https://issues.apache.org/jira/browse/WW-3516?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3516: -- Fix Version/s: 3.x Add div tag to s:checkboxlist UI Tag Key: WW-3516 URL: https://issues.apache.org/jira/browse/WW-3516 Project: Struts 2 Issue Type: Improvement Components: Plugin - Tags Affects Versions: 2.2.1 Environment: n/a Reporter: Burton Rhodes Assignee: Maurizio Cucchiara Fix For: 3.x Attachments: checkboxlist.ftl Original Estimate: 1h Remaining Estimate: 1h Currently the checkboxlist UI Tag does not implement the cssClass or cssStyle attributes in checkboxlist.ftl file (for both simple and xhtml themes). The file should be modified using a div tag so that css attibutes can be used around both the checkbox and label. This will allow user full flexibility with the layout of the checkboxlist. The layout capabilities for this tag out of the box are not adequate for almost any UI. Almost without fail users want a one column list or fixed width list so that the input type=checkbox and label tags do not break on a line. This fix could also be implemented on radio an option tags as well. Fully functional code snippet below and examples. // *** Modified Code: /template/simple/checkboxlist.ftl #-- ***Added div tag to use cssClass and/or cssStyle, etc -- div #include /${parameters.templateDir}/simple/css.ftl / input type=checkbox name=${parameters.name?html} value=${itemKeyStr?html} id=${parameters.name?html}-${itemCount}#rt/ #if tag.contains(parameters.nameValue, itemKey) checked=checked#rt/ /#if #if parameters.disabled?default(false) disabled=disabled#rt/ /#if #if parameters.title?? title=${parameters.title?html}#rt/ /#if #include /${parameters.templateDir}/simple/scripting-events.ftl / #include /${parameters.templateDir}/simple/common-attributes.ftl / / label for=${parameters.name?html}-${itemCount} class=checkboxLabel${itemValue?html}/label #-- ** End div -- /div // * Will produce multi-column (fixed width for each item), preserving checkbox and label on the same line, and carry over to next line s:checkboxlist name=customers list=%{customerList} cssClass=AnyClass cssStyle=float: left; width:150px / // * Will produce fixed width one column list, 150px wide s:checkboxlist name=customers list=%{customerList} cssClass=AnyClass cssStyle=width:150px / -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3144) Label tag doesn't use key attribute properly
[ https://issues.apache.org/jira/browse/WW-3144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3144: -- Fix Version/s: (was: 3.x) 2.3.x Label tag doesn't use key attribute properly -- Key: WW-3144 URL: https://issues.apache.org/jira/browse/WW-3144 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.6 Reporter: Dave Newton Priority: Minor Fix For: 2.3.x s:label name=foo/ works s:label name=foo label=%{getText('foo')}/ works s:label key=foo/ puts the foo msg into the not-label label. Positively labelous. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3521) I18n issure. If you configed default locale in struts.xml, when you request by other locale, the default locale returned.
[ https://issues.apache.org/jira/browse/WW-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3521: -- Fix Version/s: 3.x I18n issure. If you configed default locale in struts.xml, when you request by other locale, the default locale returned. - Key: WW-3521 URL: https://issues.apache.org/jira/browse/WW-3521 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.8, 2.1.8.1, 2.2.1 Environment: Windows/Linux, others not test SUN JDK 1.6 Reporter: Isaac Qu Fix For: 3.x If you configed default locale in struts.xml, when you request by other locale, the default locale returned. I found the following issues in Dispatcher.java: Line 571 and 654: locale = LocalizedTextUtil.localeFromString(defaultLocale, request.getLocale()); According LocalizedTextUtil.localeFromString method signature, the first parameter is request localeStr, the second parameter is defaultLocale should be: locale = LocalizedTextUtil.localeFromString( request.getLocale(), defaultLocale); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3530) Invalid cache key in AnnotationActionValidationManager.buildValidatorKey when using visitor field validators
[ https://issues.apache.org/jira/browse/WW-3530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3530: -- Fix Version/s: 3.x Invalid cache key in AnnotationActionValidationManager.buildValidatorKey when using visitor field validators - Key: WW-3530 URL: https://issues.apache.org/jira/browse/WW-3530 Project: Struts 2 Issue Type: Bug Components: XML Validators Affects Versions: 2.2.1 Reporter: Johnny Yu Fix For: 3.x Error scenerio: MyAction-validation.xml: validators field name=myField !-- MyClass -- field-validator type=visitor param name=contextbasic/param param name=appendPrefixtrue/param message/ /field-validator /field field name=myField field-validator type=visitor param name=contextadditional/param param name=appendPrefixtrue/param message/ /field-validator /field /validators In this case, validators in MyClass-basic-validation.xml will be executed two times, but validators in MyClass-additional-validation.xml will just ignored. The problem is caused by AnnotationActionValidationManager.buildValidatorKey(Class) which returns the same cache key for the validator cache. The current cache key is created by: StringBuilder sb = new StringBuilder(clazz.getName()); sb.append(/); sb.append(proxy.getConfig().getName()); sb.append(|); sb.append(proxy.getMethod()); The context is not a part of the cache key. Therefore, the two visitor validator will just get the same cache key. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (WW-3561) Struts2.1.8 use Tiles not to support chinese(Internationalization I18n)
[ https://issues.apache.org/jira/browse/WW-3561?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3561: -- Fix Version/s: Future Struts2.1.8 use Tiles not to support chinese(Internationalization I18n) Key: WW-3561 URL: https://issues.apache.org/jira/browse/WW-3561 Project: Struts 2 Issue Type: Bug Affects Versions: 2.1.8 Environment: Windows XP, Eclipse, Tomcat6.0.14, Struts2.1.8, Maven Reporter: keming.hu Fix For: Future Attachments: StrutsHelloWorld.rar When I use struts2-core-2.1.8.jar and struts2-tiles-plugin-2.1.8.jar to test a jsp which it needs I18n support for chinese, there are ApplicationResources_en_US.properties and ApplicationResources_zh_CN.properties in classpath. If I use tiles, for example s:textfield name=userName key=label.username id=userName / The chinese will be produced disorder code (???) in the page I use this command native2ascii -encoding UTF-8 a.txt ApplicationResources_zh_CN.properties. And all jsps adopt uniform charset (utf-8) %@ page contentType=text/html; charset=UTF-8 pageEncoding=UTF-8% Please refer to the following Struts.xml struts constant name=struts.enable.DynamicMethodInvocation value=false / constant name=struts.devMode value=false / constant name=struts.custom.i18n.resources value=ApplicationResources / package name=default extends=struts-default namespace=/ result-types result-type name=tiles class=org.apache.struts2.views.tiles.TilesResult / /result-types action name=login class=net.viralpatel.struts2.LoginAction result name=success type=tiles/welcome.tiles/result result name=errorLogin.jsp/result /action action name=customer class=net.viralpatel.struts2.CustomerAction result name=success type=tiles/customer.success.tiles/result result name=input type=tiles/customer.tiles/result /action action name=customer-form result name=success type=tiles/customer.tiles/result /action /package /struts But when I do not use tiles, these jsps will display correctly Please refer to the Struts.xml struts constant name=struts.enable.DynamicMethodInvocation value=false / constant name=struts.devMode value=false / constant name=struts.custom.i18n.resources value=ApplicationResources / package name=default extends=struts-default namespace=/ action name=login class=net.viralpatel.struts2.LoginAction result name=successWelcome.jsp/result result name=errorLogin.jsp/result /action action name=customer class=net.viralpatel.struts2.CustomerAction result name=success Customer.jsp/result result name=inputCustomer.jsp/result /action action name=customer-form result name=successCustomer.jsp/result /action /package /struts -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (WW-3555) Cannot deploy struts 2 web application into JBoss 6
[ https://issues.apache.org/jira/browse/WW-3555?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart resolved WW-3555. --- Resolution: Fixed Fix Version/s: 2.3.1 Cannot deploy struts 2 web application into JBoss 6 --- Key: WW-3555 URL: https://issues.apache.org/jira/browse/WW-3555 Project: Struts 2 Issue Type: Bug Affects Versions: 2.2.1.1 Environment: JBoss 6.0.0.Final Reporter: Böszörményi Péter Assignee: Lukasz Lenart Fix For: 2.3.1 When I try to deploy a struts2 web application, an error occurs. The problem is that in JBoss 6 the vsfzip scheme changed to vfs, therefore com.opensymphony.xwork2.util.URLUtil.isJBoss5Url return false. Stacktrace: 16:03:53,498 INFO [org.jboss.web.tomcat.service.deployers.TomcatDeployment] deploy, ctxPath=/struts2-blank 16:03:53,527 WARN [com.opensymphony.xwork2.util.FileManager] Could not create JarEntryRevision for [vfs:/opt/jboss/6.0.0.Final/server/default/deploy/struts2-blank.war/WEB-INF/lib/struts2-core-2.2.1.1]!: java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.open(Native Method) [:1.6.0_23] at java.util.zip.ZipFile.init(ZipFile.java:127) [:1.6.0_23] at java.util.jar.JarFile.init(JarFile.java:135) [:1.6.0_23] at java.util.jar.JarFile.init(JarFile.java:99) [:1.6.0_23] at com.opensymphony.xwork2.util.FileManager$JarEntryRevision.build(FileManager.java:307) [:2.2.1.1] at com.opensymphony.xwork2.util.FileManager.loadFile(FileManager.java:145) [:2.2.1.1] at com.opensymphony.xwork2.util.FileManager.loadFile(FileManager.java:105) [:2.2.1.1] at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:898) [:2.2.1.1] at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:154) [:2.2.1.1] at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:121) [:2.2.1.1] at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:179) [:2.2.1.1] at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) [:2.2.1.1] at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371) [:2.2.1.1] at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415) [:2.2.1.1] at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69) [:2.2.1.1] at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51) [:2.2.1.1] at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:447) [:6.0.0.Final] at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3246) [:6.0.0.Final] at org.apache.catalina.core.StandardContext.start(StandardContext.java:3843) [:6.0.0.Final] at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:294) [:6.0.0.Final] at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:146) [:6.0.0.Final] at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:477) [:6.0.0.Final] at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118) [:6.0.0.Final] at org.jboss.web.deployers.WebModule.start(WebModule.java:95) [:6.0.0.Final] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_23] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_23] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_23] at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_23] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) [:6.0.0.GA] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) [:6.0.0.GA] at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) [:6.0.0.GA] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:271) [:6.0.0.GA] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:670) [:6.0.0.GA] at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206) [:2.2.0.GA] at $Proxy41.start(Unknown Source) at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:53) [:2.2.0.GA] at
[jira] [Closed] (WW-3555) Cannot deploy struts 2 web application into JBoss 6
[ https://issues.apache.org/jira/browse/WW-3555?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart closed WW-3555. - Cannot deploy struts 2 web application into JBoss 6 --- Key: WW-3555 URL: https://issues.apache.org/jira/browse/WW-3555 Project: Struts 2 Issue Type: Bug Affects Versions: 2.2.1.1 Environment: JBoss 6.0.0.Final Reporter: Böszörményi Péter Assignee: Lukasz Lenart Fix For: 2.3.1 When I try to deploy a struts2 web application, an error occurs. The problem is that in JBoss 6 the vsfzip scheme changed to vfs, therefore com.opensymphony.xwork2.util.URLUtil.isJBoss5Url return false. Stacktrace: 16:03:53,498 INFO [org.jboss.web.tomcat.service.deployers.TomcatDeployment] deploy, ctxPath=/struts2-blank 16:03:53,527 WARN [com.opensymphony.xwork2.util.FileManager] Could not create JarEntryRevision for [vfs:/opt/jboss/6.0.0.Final/server/default/deploy/struts2-blank.war/WEB-INF/lib/struts2-core-2.2.1.1]!: java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.open(Native Method) [:1.6.0_23] at java.util.zip.ZipFile.init(ZipFile.java:127) [:1.6.0_23] at java.util.jar.JarFile.init(JarFile.java:135) [:1.6.0_23] at java.util.jar.JarFile.init(JarFile.java:99) [:1.6.0_23] at com.opensymphony.xwork2.util.FileManager$JarEntryRevision.build(FileManager.java:307) [:2.2.1.1] at com.opensymphony.xwork2.util.FileManager.loadFile(FileManager.java:145) [:2.2.1.1] at com.opensymphony.xwork2.util.FileManager.loadFile(FileManager.java:105) [:2.2.1.1] at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:898) [:2.2.1.1] at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:154) [:2.2.1.1] at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:121) [:2.2.1.1] at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:179) [:2.2.1.1] at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) [:2.2.1.1] at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371) [:2.2.1.1] at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415) [:2.2.1.1] at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69) [:2.2.1.1] at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51) [:2.2.1.1] at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:447) [:6.0.0.Final] at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3246) [:6.0.0.Final] at org.apache.catalina.core.StandardContext.start(StandardContext.java:3843) [:6.0.0.Final] at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:294) [:6.0.0.Final] at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:146) [:6.0.0.Final] at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:477) [:6.0.0.Final] at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118) [:6.0.0.Final] at org.jboss.web.deployers.WebModule.start(WebModule.java:95) [:6.0.0.Final] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_23] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_23] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_23] at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_23] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) [:6.0.0.GA] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) [:6.0.0.GA] at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) [:6.0.0.GA] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:271) [:6.0.0.GA] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:670) [:6.0.0.GA] at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206) [:2.2.0.GA] at $Proxy41.start(Unknown Source) at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:53) [:2.2.0.GA] at
[jira] [Closed] (WW-3566) Move portlet2 plugin from sandbox to struts2 trunk
[ https://issues.apache.org/jira/browse/WW-3566?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart closed WW-3566. - Resolution: Fixed Fix Version/s: 2.3.1 Move portlet2 plugin from sandbox to struts2 trunk -- Key: WW-3566 URL: https://issues.apache.org/jira/browse/WW-3566 Project: Struts 2 Issue Type: New Feature Components: Plugin - Portlet Affects Versions: 2.2.1.1 Reporter: Johannes Geppert Fix For: 2.3.1 Attachments: struts2-portlet2-plugin.patch Move the portlet2 plugin version out of sandbox into struts2 trunk. This version brings the JSR286 advantages to the developer and i think it is production ready. I work with sandbox version since over an year without trouble. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira