[jira] [Updated] (WW-3209) Select components do not allow setting attributes and JavaScript events on tags
[ https://issues.apache.org/jira/browse/WW-3209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3209: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Select components do not allow setting attributes and JavaScript events on > tags > -- > > Key: WW-3209 > URL: https://issues.apache.org/jira/browse/WW-3209 > Project: Struts 2 > Issue Type: Improvement > Components: Other >Affects Versions: 2.1.8 >Reporter: Tim Stavenger >Priority: Minor > Fix For: 6.4.0 > > > The combobox, select, optiontransferselect and any other tag that uses the > or tags do not allow you to set any additional > attributes or JavaScript events besides the value posted back to the server > and the value displayed to the user. > I had a scenario where the client wanted a hover to appear for each option in > a multi-select component. I could have used the title attribute or the > onchange/onclick events of , but couldn't because Struts didn't > support them (at least without modifying Struts). I ended up with a different > implementation that listened for onchange and onclick events for the /> tag. It works, but isn't exactly what the user wanted. I could also have > just manually used the and tag, but would have lost > everything else Struts provides. > See http://www.w3schools.com/tags/tag_optgroup.asp and > http://www.w3schools.com/tags/tag_option.asp for the available attributes and > events. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-3835) use TemplateDirectiveModel instead of TemplateTransformModel in org.apache.struts2.views.freemarker.tags.TagModel.
[ https://issues.apache.org/jira/browse/WW-3835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3835: -- Fix Version/s: 6.4.0 (was: 6.2.0) > use TemplateDirectiveModel instead of TemplateTransformModel in > org.apache.struts2.views.freemarker.tags.TagModel. > -- > > Key: WW-3835 > URL: https://issues.apache.org/jira/browse/WW-3835 > Project: Struts 2 > Issue Type: Improvement >Reporter: Yanming Zhou >Priority: Major > Fix For: 6.4.0 > > > http://freemarker.sourceforge.net/docs/api/freemarker/template/TemplateTransformModel.html > Objects that implement this interface can be used as user-defined directives > (much like macros); you should rather use the newer TemplateDirectiveModel > instead. Altough implementing output filters is more handy with this > interface, this interface will be certainly deprecated as superfluous, > starting from FreeMarker 2.4. But as far as the template engine is concerned, > you can use both equivalently as a user-defined directive. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-3452) let struts.custom.i18n.resources supports wildcard
[ https://issues.apache.org/jira/browse/WW-3452?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3452: -- Fix Version/s: 6.4.0 (was: 6.2.0) > let struts.custom.i18n.resources supports wildcard > -- > > Key: WW-3452 > URL: https://issues.apache.org/jira/browse/WW-3452 > Project: Struts 2 > Issue Type: Improvement >Reporter: Yanming Zhou >Priority: Major > Labels: message, resource > Fix For: 6.4.0 > > Original Estimate: 4h > Remaining Estimate: 4h > > {code:xml} > value="resources.i18n.messages,com.acme.messages.*" /> > {code} > following code is my uncompleted patch,I want to know how to scan wildcard > resources using xwork/struts2 util class. > org.apache.struts2.config.BeanSelectionProvider line:245 > {code:java} > > LocalizedTextUtil.addDefaultResourceBundle("org/apache/struts2/struts-messages"); > String bundles = > props.getProperty(StrutsConstants.STRUTS_CUSTOM_I18N_RESOURCES); > if (bundles != null && bundles.length() > 0) { > StringTokenizer customBundles = new > StringTokenizer(props.getProperty(StrutsConstants.STRUTS_CUSTOM_I18N_RESOURCES), > ", "); > while (customBundles.hasMoreTokens()) { > String name = customBundles.nextToken(); > // add start > if(name.contains("*")){ > Collection resources = new HashSet(); > //TODO scan resources from classpath > for(String res : resources) > try { > LOG.info("Loading global messages from " + res); > LocalizedTextUtil.addDefaultResourceBundle(res); > } catch (Exception e) { > LOG.error("Could not find messages file " + res + > ".properties. Skipping"); > } > continue; > } > // add end > try { > LOG.info("Loading global messages from " + name); > LocalizedTextUtil.addDefaultResourceBundle(name); > } catch (Exception e) { > LOG.error("Could not find messages file " + name + > ".properties. Skipping"); > } > } > } > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-2867) Add a method allowing to know what is the name of the "method" passed in the request
[ https://issues.apache.org/jira/browse/WW-2867?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2867: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Add a method allowing to know what is the name of the "method" passed in the > request > > > Key: WW-2867 > URL: https://issues.apache.org/jira/browse/WW-2867 > Project: Struts 2 > Issue Type: Improvement > Components: "New" API >Affects Versions: 2.0.11 > Environment: XP2 Tomcat 5.5 JDK 1.5.0.12 >Reporter: olivier dupuy >Priority: Minor > Fix For: 6.4.0 > > Attachments: ASF.LICENSE.NOT.GRANTED--Olivier Dupuy.vcf > > > Add a method allowing to know what is the name of the "method" passed in the > request > Methods can be specified in a form in the JSP, for submit buttons and you can > use them in links too. > Add a method in ActionSupport called String getActionmethodName() > if you submit method:save it would return "save" etc. > I use a an equivalent method to do some security logic in my actions if > multiple methods can hit the same action -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-3526) Augment JakartaMultiPartRequest to include optional progress listener
[ https://issues.apache.org/jira/browse/WW-3526?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3526: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Augment JakartaMultiPartRequest to include optional progress listener > - > > Key: WW-3526 > URL: https://issues.apache.org/jira/browse/WW-3526 > Project: Struts 2 > Issue Type: New Feature > Components: Dispatch Filter >Affects Versions: 6.1.1 > Environment: N/A >Reporter: Bob Glamm >Priority: Minor > Fix For: 6.4.0 > > Attachments: upload-listener.tar.gz > > > Original concept from David Casserly: see > http://www.devedup.com/ajaxfileupload/ > The basic idea is to augment JakartaMultiPartRequest to allow users to > specify a file upload progress listener (see Commons FileUpload > ServletFileUpload.setProgressListener()). The original concept by Casserly > references a specific ProgressMonitor class that implements FileUpload's > ProgressListener interface. I'd propose an alternate solution: allow the > user to configure the fully-qualified name of an optional listener class via > @Inject("struts.multipart.monitor"), then: > o require the listener class to also implement an interface that specifies > public void abort(); as its only method; > o in JakartaMultiPartRequest.parseRequest(), attempting to instantiate the > specified listener class via Class.forName().newInstance(); > o store the instantiated listener in the session, as per Casserly's > example; > o in JakartaMultiPartRequest.parse(), in the catch(FileUploadException) > block, calling the abort() method on the listener class if it is in the > session. > Users can then implement an action that retrieves the upload status (via AJAX > or some other mechanism) by retrieving their listener object from the session > (as per Casserly's example.) AJAX retrieval allows implementation of file > upload progress bars, a la GMail's attachment upload mechanism. > One possible issue I see with this is: what happens if multiple file upload > requests happen simultaneously for a user session? > I have a partial implementation but I'm not familiar with the Struts > development process or philosophies, so I'm throwing this out there for > review. If there are better ways to do this, let me know. I can > (eventually) provide a patch to 2.2.1 or HEAD with a little assistance, I > think. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[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: 6.4.0 (was: 6.2.0) > 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 >Priority: Major > Fix For: 6.4.0 > > > 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 was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-2635) Flash scope
[ https://issues.apache.org/jira/browse/WW-2635?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2635: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Flash scope > --- > > Key: WW-2635 > URL: https://issues.apache.org/jira/browse/WW-2635 > Project: Struts 2 > Issue Type: New Feature > Components: "New" API >Reporter: Guillaume Bilodeau >Priority: Major > Fix For: 6.4.0 > > Attachments: FlashInterceptor.java, FlashInterceptorTest.java, > FlashResult.java, FlashResultTest.java > > > I have developed a FlashResult / FlashInterceptor pair to implement "flash" > scope in a way that follows the usual Struts2 principles and respects its > "feel". > It basically works like the ServletActionRedirectResult except that instead > of converting all extra parameters to strings and adding them as HTTP > parameters in the redirect URL, it creates a HashMap using these parameter > key/value pairs with no conversion and stores it in the user session. On the > next HTTP request the FlashInterceptor, if properly added to the interceptor > stack, will retrieve this map and copy the map entries to the target action > using the parameter keys. It should work for all data types. > To function correctly this approach assumes that bug WW-2170 is fixed. The > implementation also borrows a lot from the ServletActionRedirectResult and > some refactoring should > be done. > While there may be issues with flash scope in general with regards to > repeated GETs being inconsistent, there are some valid use cases such as when > saving messages to be displayed after a redirect. I think it's good for the > developer to have this tool and it could make a nice addition to the Struts2 > code base. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4062) Invalid OGNL expressions are not cached
[ https://issues.apache.org/jira/browse/WW-4062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4062: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Invalid OGNL expressions are not cached > --- > > Key: WW-4062 > URL: https://issues.apache.org/jira/browse/WW-4062 > Project: Struts 2 > Issue Type: Bug > Components: Value Stack >Affects Versions: 2.3.14 >Reporter: Saulius Tvarijonas >Priority: Major > Fix For: 6.4.0 > > Attachments: WW-4062.PNG > > > I am using velocity to render results page. During performance optimizations > I noticed significant memory usage from > *com.opensymphony.xwork2.ognl.OgnlUtil#compile*. There is caching implemented > in OgnlUtil, but if expression compilation fails, it is not cached. > I am not really sure if this problem is in struts or velocity engine. But > situation is following: > # In velocity template trying to render string *$!foo* > # If value is null, velocity calls > *org.apache.velocity.runtime.parser.node.ASTReference#getNullString* > # Internally there is call to *context.get(".literal." + nullString)* > # And this ".literal." expression always reaches *OgnlUtil#compile* and > compilation fails. > Below is stacktrace for more details: > {code} > at com.opensymphony.xwork2.ognl.OgnlUtil.compile(OgnlUtil.java:248) > at com.opensymphony.xwork2.ognl.OgnlUtil.getValue(OgnlUtil.java:236) > at > com.opensymphony.xwork2.ognl.OgnlValueStack.getValueUsingOgnl(OgnlValueStack.java:291) > at > com.opensymphony.xwork2.ognl.OgnlValueStack.tryFindValue(OgnlValueStack.java:274) > at > com.opensymphony.xwork2.ognl.OgnlValueStack.tryFindValueWhenExpressionIsNotNull(OgnlValueStack.java:256) > at > com.opensymphony.xwork2.ognl.OgnlValueStack.findValue(OgnlValueStack.java:236) > at > com.opensymphony.xwork2.ognl.OgnlValueStack.findValue(OgnlValueStack.java:298) > at > org.apache.struts2.dispatcher.StrutsRequestWrapper.getAttribute(StrutsRequestWrapper.java:82) > at org.apache.velocity.tools.view.context.ChainedContext.getAttribute(Unknown > Source:-1) > at org.apache.velocity.tools.view.context.ChainedContext.internalGet(Unknown > Source:-1) > at org.apache.velocity.context.AbstractContext.get(AbstractContext.java:193) > at > org.apache.velocity.context.InternalContextAdapterImpl.get(InternalContextAdapterImpl.java:267) > at > org.apache.velocity.runtime.parser.node.ASTReference.getNullString(ASTReference.java:510) > at > org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:465) > at > org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) > at > org.apache.velocity.runtime.parser.node.ASTStringLiteral.value(ASTStringLiteral.java:330) > at > org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71) > at > org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142) > at > org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) > at org.apache.velocity.runtime.directive.Parse.render(Parse.java:260) > at > org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207) > at > org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) > at org.apache.velocity.Template.merge(Template.java:356) > at org.apache.velocity.Template.merge(Template.java:260) > at > org.apache.struts2.dispatcher.VelocityResult.doExecute(VelocityResult.java:156) > at > org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-3666) TypeConverter should trim before conversion to things that are not Strings
[ https://issues.apache.org/jira/browse/WW-3666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3666: -- Fix Version/s: 6.4.0 (was: 6.2.0) > TypeConverter should trim before conversion to things that are not Strings > -- > > Key: WW-3666 > URL: https://issues.apache.org/jira/browse/WW-3666 > Project: Struts 2 > Issue Type: Improvement > Components: Value Stack >Affects Versions: 2.2.1.1 > Environment: Standard Struts2 implementation with Jetty >Reporter: adam brin >Priority: Minor > Fix For: 6.4.0 > > > For a simple struts2 application, when you pass in parameters that are not > "Strings" for example Longs or Enums the Xwork2 TypeConverter (and Struts2's > handling) needs some work. > Issues: > * numeric values are not properly parsed if they have space characters > * enum values are not properly parsed if they have space characters > * ideally some exception would bubble back up in the form of an ActionError > Attached (in comments) is a simple controller and test case using HTMLUnit to > demonstrate the issue. Even with the following logger settings, no errors > are visible: > {noformat}log4j.logger.org.apache.struts2=TRACE > log4j.logger.com.opensymphony.xwork2=TRACE > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-5060) Struts 2 Rest Plugin Conversion Issue
[ https://issues.apache.org/jira/browse/WW-5060?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-5060: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Struts 2 Rest Plugin Conversion Issue > - > > Key: WW-5060 > URL: https://issues.apache.org/jira/browse/WW-5060 > Project: Struts 2 > Issue Type: Bug > Components: Other >Affects Versions: 2.3.1 >Reporter: Ronak Jain >Priority: Major > Fix For: 6.4.0 > > > I integrated strust2 convention plugin and rest plugin. > When a request come to server where my field is long and I am sending a > string then default stacktrace occurs. > I want to handle the exception from my side but before request come to any > interceptor, it is throwing exception. > > My configuration : > name="jackson" class="org.apache.struts2.rest.handler.JacksonLibHandler"/> > > > > > /> > class="com.elitecore.neoxemsippbx.coreneoxemsippbx.ep.util.EliteJsonResult" /> > > > class="com.elitecore.neoxemsippbx.system.interceptor.TransactionInterceptor"> > class="com.elitecore.neoxemsippbx.system.interceptor.AuditInterceptor" /> > class="com.elitecore.neoxemsippbx.system.interceptor.CustomRestWorkflowInterceptor"/> > > > name="excludeMethods">deleteConfirm,cacheServerGroups,validateRuleset > > > > * > > > > > > ${actionChainUrl} > type="tiles">commons/general/UnhandledException > commons/general/Error > ${actionChainUrl} > type="tiles">ServerManagerWelcome > ${actionChainUrl} > type="tiles">${actionChainUrl} > _${actionChainUrl} > ${actionChainUrl} > ${actionChainUrl} > ${actionChainUrl} > > > > attachment;filename=${fileName} > $(contentType) > fileInputStream > 1024 > > > > false > > ${includeSearchProperties} > > > > exception="java.lang.Throwable"> > exception="java.lang.RuntimeException"> > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4672) StrutsApplicationResource incompatible with superclass PostfixedApplicationResource
[ https://issues.apache.org/jira/browse/WW-4672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4672: -- Fix Version/s: 6.4.0 (was: 6.2.0) > StrutsApplicationResource incompatible with superclass > PostfixedApplicationResource > --- > > Key: WW-4672 > URL: https://issues.apache.org/jira/browse/WW-4672 > Project: Struts 2 > Issue Type: Bug > Components: Plugin - Tiles >Affects Versions: 2.5.2 >Reporter: Joonas Vali >Priority: Minor > Fix For: 6.4.0 > > > {{org.apache.struts2.tiles.StrutsApplicationResource}} constructor takes in a > single parameter, URL, and from this parameter getPath() is asked, which > returns absolute path to a resource on disk (usually?), and this is passed to > the superclass as String. > This logic is however incompatible with superclass > {{org.apache.tiles.request.locale.PostfixedApplicationResource}} which is > built to deal with relative paths to the context root. e.g > '/WEB-INF/tiles.xml'. > Previous creates issues with 'refreshing' enabled in > (CachingLocaleUrlDefinitionDAO) superclass > {{org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO#refreshRequired()}} > method, which iterates over these resource paths and ultimately calls > {{servletContext#getResource(path)}}, which always returns null on absolute > paths. This results in the following NPE on next line where > {{resource.getLastModified()}} is asked. > {noformat} > java.lang.NullPointerException > at > org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO.refreshRequired(BaseLocaleUrlDefinitionDAO.java:120) > at > org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getDefinitions(CachingLocaleUrlDefinitionDAO.java:130) > at > org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getDefinition(CachingLocaleUrlDefinitionDAO.java:105) > at > org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getDefinition(CachingLocaleUrlDefinitionDAO.java:49) > at > org.apache.tiles.definition.UnresolvingLocaleDefinitionsFactory.getDefinition(UnresolvingLocaleDefinitionsFactory.java:89) > at > org.apache.tiles.impl.BasicTilesContainer.getDefinition(BasicTilesContainer.java:286) > at > org.apache.tiles.impl.BasicTilesContainer.isValidDefinition(BasicTilesContainer.java:273) > at > org.apache.tiles.TilesContainerWrapper.isValidDefinition(TilesContainerWrapper.java:88) > at > org.apache.tiles.impl.mgmt.CachingTilesContainer.isValidDefinition(CachingTilesContainer.java:100) > at > org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:139) > at > org.apache.struts2.result.StrutsResultSupport.execute(StrutsResultSupport.java:208) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4797) orphaned Factory code never called from spring-plugin
[ https://issues.apache.org/jira/browse/WW-4797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4797: -- Fix Version/s: 6.4.0 (was: 6.2.0) > orphaned Factory code never called from spring-plugin > -- > > Key: WW-4797 > URL: https://issues.apache.org/jira/browse/WW-4797 > Project: Struts 2 > Issue Type: Task > Components: Plugin - Spring >Affects Versions: 2.3.31 > Environment: JDK 1.8 > Struts-2.3.4 > Maven 3.3.1 >Reporter: Martin Gainty >Priority: Minor > Labels: spring-plugin > Fix For: 6.4.0 > > Original Estimate: 168h > Remaining Estimate: 168h > > {{org.springframework.beans.BeanWrapper}} not created in struts-spring-plugin > {{org.apache.struts2.spring.ClassReloadingBeanFactory}} contains orphaned > {{createBeanInstance}} which currently is not implemented in spring plugin > {code:java} > public class ClassReloadingBeanFactory extends > org.springframework.beans.factory.support.DefaultListableBeanFactory { > @Override > protected org.springframework.beans.BeanWrapper createBeanInstance(String > beanName, org.springframework.beans.factory.support.RootBeanDefinition mbd, > Object[] args) { > Class beanClass = resolveBeanClass(mbd, beanName, null); > if (mbd.getFactoryMethodName() != null) { > return instantiateUsingFactoryMethod(beanName, mbd, args); > } > //commented to cached constructor is not used > /* // Shortcut when re-creating the same bean... > if (mbd.resolvedConstructorOrFactoryMethod != null) { > if (mbd.constructorArgumentsResolved) { > return autowireConstructor(beanName, mbd, null, args); > } else { > return instantiateBean(beanName, mbd); > } > }*/ > // Need to determine the constructor... > Constructor[] ctors = > determineConstructorsFromBeanPostProcessors(beanClass, beanName); > if (ctors != null || > mbd.getResolvedAutowireMode() == > RootBeanDefinition.AUTOWIRE_CONSTRUCTOR || > mbd.hasConstructorArgumentValues() || > !ObjectUtils.isEmpty(args)) { > return autowireConstructor(beanName, mbd, ctors, args); > } > // No special handling: simply use no-arg constructor. > return instantiateBean(beanName, mbd); > } > {code} > //orphaned org.apache.struts2.spring.ClassReloadingXMLWebApplicationContext > org.apache.struts2.spring.ClassReloadingXMLWebApplicationContext: > {code:java} > setupReloading(...) > { > > //setup the bean factory > beanFactory = new ClassReloadingBeanFactory(); > beanFactory.setInstantiationStrategy(new > ClassReloadingInstantiationStrategy()); > beanFactory.setBeanClassLoader(classLoader); > /* Where is BeanWrapper created by createBeanInstance& return to client */ > //start watch thread > fam.start(); > } > {code} > this orphaned code contains {{RootBeanDefiniton}} parameter > {{org.springframework.beans.factory.support.RootBeanDefinition}} mbd > which is used to construct class of bean here: > {{Class beanClass = resolveBeanClass(mbd, beanName, null);}} > i assume createBeanInstance is implemented in possibly 2.4.x? > Thanks! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-1522) Automatic Alias ActionConfigs
[ https://issues.apache.org/jira/browse/WW-1522?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-1522: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Automatic Alias ActionConfigs > - > > Key: WW-1522 > URL: https://issues.apache.org/jira/browse/WW-1522 > Project: Struts 2 > Issue Type: Improvement >Reporter: Ted Husted >Priority: Major > Fix For: 6.4.0 > > > Create ActionConfigs for Action class methods that do not already have aliases > The initial "dynamic method invocation" implementation does not create an > ActionConfig, but scans for a "!" and invokes the method directly. The > implementation doesn't allow these alias methods to be browsed, overrridden > with static actions, nor can they have their own validators, type convertors > or resources. > Rather than scan for dynamic method references at run time, an alternate > approach would be to scan the configuration when it is first loaded and > create ActionConfigs for all potential alias methods. > See also http://www.mail-archive.com/dev%40struts.apache.org/msg25916.html -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-1742) new token associated execute and wait interceptor
[ https://issues.apache.org/jira/browse/WW-1742?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-1742: -- Fix Version/s: 6.4.0 (was: 6.2.0) > new token associated execute and wait interceptor > - > > Key: WW-1742 > URL: https://issues.apache.org/jira/browse/WW-1742 > Project: Struts 2 > Issue Type: Improvement > Components: Core Interceptors >Reporter: Thomas Micheline >Priority: Minor > Fix For: 6.4.0 > > Attachments: TokenizedExecuteAndWaitInterceptor.java > > > A new interceptor could be created which associates background processes with > a token rather than a session. This way, an application could allow separate > background processes to the same user operating in multiple windows/tabs. > I'll provide the class which makes use of the getName method suggest in > WW-1740 (and the change in WW-1741 is also needed if the token interceptor > preceeds this interceptor in the stack). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-3226) Add optional support to AliasInterceptor to overwrite aliased parameters
[ https://issues.apache.org/jira/browse/WW-3226?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3226: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Add optional support to AliasInterceptor to overwrite aliased parameters > > > Key: WW-3226 > URL: https://issues.apache.org/jira/browse/WW-3226 > Project: Struts 2 > Issue Type: Improvement > Components: Core Interceptors >Affects Versions: 2.1.8 >Reporter: Jasper Rosenberg >Priority: Minor > Fix For: 6.4.0 > > > It would be great if the AliasInterceptor could overwrite the aliased > parameters rather than just inject them under different names, much like I > recall staticParams supports. I suspect many, like me, were surprised to > learn this wasn't how it currently behaved. It would have to be a new flag > to maintain backwards compatibility. > Alternatively, the ParametersInterceptor could be enhanced to take an > optional aliases map. That would be pretty handy. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-2820) REST Plugin Issues/Improvements
[ https://issues.apache.org/jira/browse/WW-2820?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2820: -- Fix Version/s: 6.4.0 (was: 6.2.0) > REST Plugin Issues/Improvements > --- > > Key: WW-2820 > URL: https://issues.apache.org/jira/browse/WW-2820 > Project: Struts 2 > Issue Type: Improvement > Components: Plugin - REST >Affects Versions: 2.1.2 >Reporter: Alvin Singh >Priority: Major > Fix For: 6.4.0 > > > I didn't know whether I should create separate issues for each (some are not > issues but just require some doco). Issues described here - > http://www.nabble.com/forum/ViewPost.jtp?post=19230238&framed=y - > - If you want a blank namespace - do not use "/" as your namespace in your > struts xml's or in namespace notation. Inconsistent behavior starts to occur. > - If you want a specific namespace - e.g. /v1 - you must ensure your > namespace has prefixed slash i.e. "/v1" otherwise it will not work > - If you are using tiles or even jsp (I think) and have the same name folder > as a namespace your rest urls will not execute the action > - Your actions/controllers must be suffixed with 'Controller' or the action > mapper will not pick them up (wiki says it is optional) > - If you have a action/controller name the same as the package name its in - > strange things happen (can't find action mapping etc.). e.g package name is > au.com.test.rest.space, class in this package with name SpaceController will > not work correctly - SpacesController will. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-3476) Allow overwriting of constants for each package
[ https://issues.apache.org/jira/browse/WW-3476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3476: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Allow overwriting of constants for each package > --- > > Key: WW-3476 > URL: https://issues.apache.org/jira/browse/WW-3476 > Project: Struts 2 > Issue Type: New Feature > Components: XML Configuration >Affects Versions: 2.2.1 >Reporter: Johannes Geppert >Priority: Major > Fix For: 6.4.0 > > > Allow to overwriting of constants for each package. > So I can specify as example for each package an other ActionMapper, Local or > other location for the JSP Files. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[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: 6.4.0 (was: 6.2.0) > Using convertors in JSON serialization > -- > > Key: WW-3364 > URL: https://issues.apache.org/jira/browse/WW-3364 > Project: Struts 2 > Issue Type: Improvement > Components: Plugin - JSON >Affects Versions: 2.1.8 >Reporter: Rahul Mohan >Priority: Major > Labels: JSON > Fix For: 6.4.0 > > > The bundled JSON plugin does not use registered convertors for data > conversion. This seriously affects the implementation of gracefully degrading > ajax apps. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-3233) @Result name aliases
[ https://issues.apache.org/jira/browse/WW-3233?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3233: -- Fix Version/s: 6.4.0 (was: 6.2.0) > @Result name aliases > > > Key: WW-3233 > URL: https://issues.apache.org/jira/browse/WW-3233 > Project: Struts 2 > Issue Type: Improvement > Components: Plugin - Convention >Affects Versions: 2.1.6 >Reporter: Alex Siman >Priority: Minor > Fix For: 6.4.0 > > > Suppose we have LoginAction which maps to "login.jsp". How to use the same > JSP for "input" (or whatever else) result w/o using of result location? For > now we do: > @Results({ > @Result( > name = Action.INPUT, > location = "login.jsp" > ) > }) > public class LoginAction {...} > But it would be better to have something like @Result.aliases[]. > Concept example: > @Results({ > @Result( > /*name = "success", */ > aliases = {"input", "error"} > ) > }) > public class LoginAction {...} > And this action must be mapped to page "login.jsp" on any of these action > results: > "success" > "input" > "error" -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-2963) default-action-ref fails to find wildcard named actions
[ https://issues.apache.org/jira/browse/WW-2963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-2963: -- Fix Version/s: 6.4.0 (was: 6.2.0) > default-action-ref fails to find wildcard named actions > --- > > Key: WW-2963 > URL: https://issues.apache.org/jira/browse/WW-2963 > Project: Struts 2 > Issue Type: Bug > Components: Core Actions >Affects Versions: 2.1.6 > Environment: Windows XP, jetty 6.1.5, Java 1.6 >Reporter: Tomasz Nurkiewicz >Priority: Minor > Fix For: 6.4.0 > > > With {{struts.xml}} fragment given below: > {code:xml} > > > > > > > > {code} > Struts2 returns 404: "There is no Action mapped for namespace / and action > name ." Specifying action with no wildcard name (e.g. {{ name="movies" />}}) works as expected. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[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: 6.4.0 (was: 6.2.0) > 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 >Priority: Major > Fix For: 6.4.0 > > 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 was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-3532) client validation isn't generated when using a VisitorFieldValidator annotation
[ https://issues.apache.org/jira/browse/WW-3532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3532: -- Fix Version/s: 6.4.0 (was: 6.2.0) > client validation isn't generated when using a VisitorFieldValidator > annotation > --- > > Key: WW-3532 > URL: https://issues.apache.org/jira/browse/WW-3532 > Project: Struts 2 > Issue Type: Bug >Affects Versions: 2.2.1 > Environment: jboss 5, struts2-core-2.2.1.jar >Reporter: David G >Priority: Minor > Fix For: 6.4.0 > > Attachments: AnnotationValidationConfigurationBuilderTest.java > > > When using a VisitorFieldValidator in an action, the generated Javascript > doesn't validate fields on the referenced POJO, i.e. the example I have below > would only generate: > > function validateForm_createAccount() { > form = document.getElementById("createAccount"); > clearErrorMessages(form); > clearErrorLabels(form); > var errors = false; > var continueValidation = true; > return !errors; > } > > I have two current workarounds, but they're a bit of a pain: > 1) Using XML validation instead of annotations. > 2) Not to use the VisitorFieldValidator model, and instead have the form > fields referenced directly in the Action class. > Here's the code I've been using (a trimmed down version of it anyway ;-) ) > AccountManagementAction.java: > public class AccountManagementAction extends ActionSupport > { > private Account account; > public Account getAccount() > { > return account; > } > @VisitorFieldValidator > public void setAccount(Account account) > { > this.account = account; > } > ... > } > Account.java: > public class Account > { > private String username; > public String getUsername() > { > return username; > } > @Validations( > requiredStrings = @RequiredStringValidator(trim = true, message > = "Required"), > stringLengthFields = @StringLengthFieldValidator( > minLength = "2", maxLength = "10", trim = true, > message = "This must be between ${minLength} and > ${maxLength} letters"), > regexFields = @RegexFieldValidator(expression = > "^[0-9a-zA-Z]*$", > message = "Only plain letters and numbers are allowed") > ) > public void setUsername(String username) > { > this.username = username; > } > } > registration.jsp: > <%@page contentType="text/html" pageEncoding="UTF-8"%> > <%@ taglib prefix="s" uri="/struts-tags" %> > "http://www.w3.org/TR/html4/loose.dtd";> > > > > > > > > > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-3540) repopulateField config does not work correctly after conversion failed
[ https://issues.apache.org/jira/browse/WW-3540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3540: -- Fix Version/s: 6.4.0 (was: 6.2.0) > repopulateField config does not work correctly after conversion failed > -- > > Key: WW-3540 > URL: https://issues.apache.org/jira/browse/WW-3540 > Project: Struts 2 > Issue Type: Bug > Components: Core Interceptors >Affects Versions: 2.0.14, 2.2.1 > Environment: tomcat 6.0.29 >Reporter: PanQuanyi >Priority: Minor > Fix For: 6.4.0 > > Original Estimate: 96h > Remaining Estimate: 96h > > input.jsp content: > label="Age"> > ValidateAction.java content: > public class ValidateAction extends ActionSupport{ > private int age; > public int getAge() { > return age; > } > public void setAge(int age) { > this.age = age; > } > @Override > public String execute() throws Exception { > return SUCCESS; > } > } > ValidateAction-conversion.xml: > > > > false > age not valid configed in xml > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[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: 6.4.0 (was: 6.2.0) > 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 >Priority: Major > Fix For: 6.4.0 > > > Error scenerio: > MyAction-validation.xml: > > > > basic > true > > > > > > additional > true > > > > > 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 was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-3576) SessionMap is not thread-safe
[ https://issues.apache.org/jira/browse/WW-3576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3576: -- Fix Version/s: 6.4.0 (was: 6.2.0) > SessionMap is not thread-safe > - > > Key: WW-3576 > URL: https://issues.apache.org/jira/browse/WW-3576 > Project: Struts 2 > Issue Type: Bug > Components: Other >Affects Versions: 2.2.1 >Reporter: Sylvain Veyrié >Assignee: Lukasz Lenart >Priority: Major > Fix For: 6.4.0 > > > Searching for a bug after some stress test (Exception on "getAttribute": > already invalidated session), I reviewed SessionMap.java. > Following WW-239, SessionMap has been made thread-safe. > All methods are like this : > public void doSomething() { > if (session == null) { > return; > } > > synchronized (session) { > session.doSometing(); > } > } > For example: > public void invalidate() { > if (session == null) { > return; > } > > synchronized (session) { > session.invalidate(); > session = null; > entries = null; > } > } > IMHO this is not thread-safe. With the example of invalidate(), if there is a > context switch just before the synchronized, the nullity is no more checked. > If another invalidate() is called at least a NPE can be thrown. There are > probably other side-effects like my exception problem. > As now Struts 2 only supports Java 5+, there is two ways to fix it : > * use a double-check-locking (DCL) and set session "volatile" (easy way) > * use java.util.concurrent instead of synchronized keyword > If you agree and choose one of those fixes, I can provide a patch. > For the moment, I don't know if my bug is resolved if we directly use javax > session, without this wrapper. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4147) Have StrutsPrepareAndExecuteFilter initialize Freemarker rather than first actual Request
[ https://issues.apache.org/jira/browse/WW-4147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4147: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Have StrutsPrepareAndExecuteFilter initialize Freemarker rather than first > actual Request > - > > Key: WW-4147 > URL: https://issues.apache.org/jira/browse/WW-4147 > Project: Struts 2 > Issue Type: Improvement > Components: Other >Affects Versions: 2.3.15.1 >Reporter: Jasper Rosenberg >Priority: Minor > Labels: freemarker, performance, startup > Fix For: 6.4.0 > > > Currently, the first request to the web app triggers getting the Freemarker > Configuration, which causes it to be built for the first time. > Depending on circumstances, this might be a bit slow. It would be nice if > when struts was coming up, it forced Freemarker initialization before it the > server was declared ready to accept requests. > The way I hacked around this was to extend StrutsPrepareAndExecuteFilter so > that in init(FilterConfig), I get the current FreemarkerManager, and call > .getConfiguration(filterConfig.getServletContext()) on it. > As an aside, it was surprisingly difficult to get the Container to use to > inject the FreemarkerManager instance in StrutsPrepareAndExecuteFilter. I'm > guessing I'm just missing something. > I recognize not all struts apps are using freemarker, which is probably why > it inits lazily, but it would be great to have an easy hook, and > StrutsPrepareAndExecuteFilter is the obvious place since you have access to > the ServletContext. > {code:java} > private FreemarkerManager freemarkerManager; > /** > * Override to initialize freemarker hooks proactively. > */ > @Override > public void init(final FilterConfig filterConfig) throws ServletException > { > super.init(filterConfig); > // Inject the freemarker manager > prepare.assignDispatcherToThread(); > try { > Dispatcher.getInstance().getContainer().inject(this); > } finally { > Dispatcher.setInstance(null); > } > > // Force initialization of the freemarker configuration > freemarkerManager.getConfiguration(filterConfig.getServletContext()); > } > @Inject > public void setFreemarkerManager(FreemarkerManager freemarkerManager) { > this.freemarkerManager = freemarkerManager; > } > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4291) Can't use Spring bean name for type convertor
[ https://issues.apache.org/jira/browse/WW-4291?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4291: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Can't use Spring bean name for type convertor > - > > Key: WW-4291 > URL: https://issues.apache.org/jira/browse/WW-4291 > Project: Struts 2 > Issue Type: Improvement > Components: Plugin - Spring >Affects Versions: 6.1.1 >Reporter: Jasper Rosenberg >Priority: Minor > Fix For: 6.4.0 > > > If in your xwork.conversion.properties file you try to use a Spring bean name > instead of a class name, it blows up. > This is because DefaultConfiguration.createBootstrapContainer() ends up using > DefaultTypeConverterCreator which has the generic ObjectFactory at that point > because it happens before the struts.properties file is ever loaded (where in > my case the SpringObjectFactory is defined.) > {noformat} > 10:20:06,910 ERROR [DefaultConversionPropertiesProcessor] Conversion > registration error > java.lang.ClassNotFoundException: entityObjectTypeConvertor > at > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) > at > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) > at > com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:152) > at > com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:108) > at > com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:161) > at > com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:151) > at > com.opensymphony.xwork2.conversion.impl.DefaultTypeConverterCreator.createTypeConverter(DefaultTypeConverterCreator.java:23) > at > com.opensymphony.xwork2.conversion.impl.DefaultConversionPropertiesProcessor.loadConversionProperties(DefaultConversionPropertiesProcessor.java:64) > at > com.opensymphony.xwork2.conversion.impl.DefaultConversionPropertiesProcessor.process(DefaultConversionPropertiesProcessor.java:40) > at > com.opensymphony.xwork2.conversion.impl.XWorkConverter.setConversionPropertiesProcessor(XWorkConverter.java:179) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:299) > at > com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:438) > at > com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:207) > ... > at > com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:484) > at > com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:584) > at > com.opensymphony.xwork2.inject.ContainerBuilder.create(ContainerBuilder.java:484) > at > com.opensymphony.xwork2.config.impl.DefaultConfiguration.createBootstrapContainer(DefaultConfiguration.java:324) > at > com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:221) > at > com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) > at > org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446) > at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490) > at > org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) > at > org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) > at > org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:325) > at > org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:235) > at > org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:194) > at > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295) > at > org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) > at > org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:115) > at > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072) > at > org.apache.catalina.core.StandardContext.start(StandardContext.java:4726) > at >
[jira] [Updated] (WW-3933) Provide web-fragment.xml for easier deployment on Servlet 3.0 compliant containers
[ https://issues.apache.org/jira/browse/WW-3933?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-3933: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Provide web-fragment.xml for easier deployment on Servlet 3.0 compliant > containers > -- > > Key: WW-3933 > URL: https://issues.apache.org/jira/browse/WW-3933 > Project: Struts 2 > Issue Type: Improvement > Components: Dispatch Filter >Affects Versions: 2.3.7 >Reporter: Daniel Le Berre >Priority: Minor > Fix For: 6.4.0 > > > Servlet 3.0 specification includes the possibility for libraries to ship > web-fragment.xml files in their META-INF directory to contribute some > declarations to the main web.xml file. > Struts 2 only requires the declaration of a filter in the web.xml file to > work. When building Servlet 3.0 webapp, the web.xml file is often not used at > all. > It would be nice to ship a web-fragment.xml file in struts 2 that declares > the PrepareAndExecute filter to simplify the use of the framework on a > servlet 3.0 stack. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4184) When a getter of an action calls getText("getterName.something"), method call stack overflow occurs
[ https://issues.apache.org/jira/browse/WW-4184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4184: -- Fix Version/s: 6.4.0 (was: 6.2.0) > When a getter of an action calls getText("getterName.something"), method call > stack overflow occurs > --- > > Key: WW-4184 > URL: https://issues.apache.org/jira/browse/WW-4184 > Project: Struts 2 > Issue Type: Bug >Affects Versions: 2.3.15.1 > Environment: Windows Vista, Java 7, Tomcat 7 >Reporter: recyclebin5385 >Priority: Minor > Fix For: 6.4.0 > > Attachments: WebContent.zip, src.zip > > > Under a certain condition, calling a getter of an action causes method call > stack overflow. > If a jsp file contains a tag, it doesn't work and throws > java.util.ConcurrentModificationException. > The condition is described below. > - The action class extends com.opensymphony.xwork2.ActionSupport. > - The action class has a getter and the getter calls the action class's > method getText(). > The argument of getText() is like "getterName.something". > If the getter is getFoo(), the argument is like 'foo.bar'. > - An *empty* properties file exists with the same name as the action class > in the same package. > If the action class is TestAction, the name of the properties file is > TestAction.properties > - The JSP file has tag . > It seems that tries to call getFoo() and causes call stack > overflow. > It has something to do with the problem? > 1. calls the action class's method getFoo(). > 2. getFoo() calls getText("foo.bar"). > 3. getText() calls LocalizedTextUtil.findText(Class aClass, String > aTextName, Locale locale, String defaultMessage, Object[] args, ValueStack > valueStack). > 4. There is no property named foo.bar, so LocalizedTextUtil.findText() tries > to get "foo.bar" from the value stack. > 5. The action class instance is on the top of the value stack, so the action > class's getFoo() is called. > 6. Go back to 2. This loop continues infinitely -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4395) Make email validator regex comply with RFC 6531
[ https://issues.apache.org/jira/browse/WW-4395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4395: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Make email validator regex comply with RFC 6531 > > > Key: WW-4395 > URL: https://issues.apache.org/jira/browse/WW-4395 > Project: Struts 2 > Issue Type: Improvement > Components: Core Actions >Affects Versions: 2.3.16.3 >Reporter: Miguel Almeida >Priority: Major > Labels: email, regex, validation > Fix For: 6.4.0 > > > This is the regex for email validation in Struts: > {noformat} > \\b^['_a-z0-9-\\+]+(\\.['_a-z0-9-\\+]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)\* > \.([a-z]{2}|aero|arpa|asia|biz|com|coop|edu|gov|info|int|jobs|mil|mobi| > museum|name|nato|net|org|pro|tel|travel|xxx)$\\b > {noformat} > This doesn't allow special characters (e.g. àéí, äëö,...). > However, International characters above U+007F are permitted by [RFC > 6531|http://tools.ietf.org/html/rfc6531] > Because some mail servers seem to follow this standard, regex should be > improved to allow email addresses valid according to this standard. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4394) Move JSP support into dedicated plugin
[ https://issues.apache.org/jira/browse/WW-4394?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4394: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Move JSP support into dedicated plugin > -- > > Key: WW-4394 > URL: https://issues.apache.org/jira/browse/WW-4394 > Project: Struts 2 > Issue Type: Improvement >Reporter: Lukasz Lenart >Priority: Major > Fix For: 6.4.0 > > > The same as WW-4243 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4329) Support ConfigurationManagerListener
[ https://issues.apache.org/jira/browse/WW-4329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4329: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Support ConfigurationManagerListener > > > Key: WW-4329 > URL: https://issues.apache.org/jira/browse/WW-4329 > Project: Struts 2 > Issue Type: Improvement > Components: Core Actions >Reporter: Jasper Rosenberg >Priority: Minor > Fix For: 6.4.0 > > > I wanted to run some validation checks on the actions after they were loaded. > I could do it at startup by creating a DispatcherListener. However, in > development, if the Configuration reloads in devMode, I have no way to know > that and rerun my validation. It would be great to just mimic the > DispatcherListener pattern for the ConfigurationManager so one could register > ConfigurationManagerListeners for when the configuration is loaded/reload. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4625) Struts 2 XSS vulnerability with when is used.
[ https://issues.apache.org/jira/browse/WW-4625?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4625: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Struts 2 XSS vulnerability with when is used. > --- > > Key: WW-4625 > URL: https://issues.apache.org/jira/browse/WW-4625 > Project: Struts 2 > Issue Type: Bug >Affects Versions: 2.3.24, 2.3.28 > Environment: Operating System: Windows 7(N/A). > Application Server: Tomcat 6(any server running on JRE1.6 or before JRE). > Java: jdk1.5.0.11. > Developloment Framework: Struts 2.3.28, 2.3.24.1. > Browser: FireFox 38.0.1. >Reporter: Naozumi Taromaru >Priority: Major > Labels: struts2, vulnerability, xss > Fix For: 6.4.0 > > > tag and JspTemplateEngine use > org.apache.struts2.components.Include#include. > (I use tag.) > The included page is encoded by response character encoding(default is > ISO-8859-1(ServletResponse)). > But encoded result is decoded by 'request' character encoding(default is > UTF-8(@Inject(StrutsConstants.STRUTS_I18N_ENCODING))). > org.apache.struts2.components.Include use wrong character encoding. > If request and response character encoding are specifically configured to > same character encoding, > there are no problems. > However, if request and response character encoding are not specifically > configured, > (or <%@ page contentType="text/html; charset=ISO-8859-1" %> is written in JSP > only,) > the included page is encoded by ISO-8859-1 and decoded by UTF-8. > By using old decoding rule of UTF-8(enable on JRE1.5.0_16 or before and > JRE1.6.0_10 or before), > XSS vulnerability occurs, even if input value is sanitized when output as > . > Please refer to description of WW-4507 for sample attack parameter > information. > Please refer to my comment written in WW-4507 for more analysis information. > P.S. > I'm thinking WW-4507(S2-028) has been caused by this. > (WW-4507(S2-028) is not fixed in 2.3.28.) > But if it's different, please show the hidden reproduction condition to > WW-4507. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4508) DefaultActionMapperTest failures due to invalid mock type for parameterMap
[ https://issues.apache.org/jira/browse/WW-4508?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4508: -- Fix Version/s: 6.4.0 (was: 6.2.0) > DefaultActionMapperTest failures due to invalid mock type for parameterMap > -- > > Key: WW-4508 > URL: https://issues.apache.org/jira/browse/WW-4508 > Project: Struts 2 > Issue Type: Bug > Components: Unit Tests >Affects Versions: 2.3.24 > Environment: The JVM where this was encountered is the Waratek JVM > (www.waratek.com) which contains support for prevention of SQL Injection > attacks. This bug is not reproducible using OpenJDK or any other JVM due to > the fact the tests reference only the keys and not the values. >Reporter: Dermot McGahon >Priority: Minor > Fix For: 6.4.0 > > > All of the tests which use StrutsMockHttpServletRequest are setting up > incorrectly typed parameterMaps in the mock. > A parameterMap should be typed > java.util.Map and not Map > as the tests are doing i.e the value parameter should be String[] and not > String. This caused us to see test failures when treating those values as > String[] when they weren't. > See: > http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html > http://docs.oracle.com/javaee/7/api/javax/servlet/ServletRequest.html#getParameterMap%28%29 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4421) Duplicate @Action value annotation check skipped
[ https://issues.apache.org/jira/browse/WW-4421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4421: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Duplicate @Action value annotation check skipped > > > Key: WW-4421 > URL: https://issues.apache.org/jira/browse/WW-4421 > Project: Struts 2 > Issue Type: Bug > Components: Annotations, Plugin - Convention >Affects Versions: 2.3.16.3 >Reporter: Sebastian Haas >Priority: Major > Fix For: 6.4.0 > > Attachments: MethodCheckFailsOnStartup.java, > MethodCheckSkippedOnStartup.java > > > {{PackageBasedActionConfigBuilder#buildConfiguration}} checks if there are > duplicate action names on method annotations. If {{ActionSupport#execute}} is > overridden and annotated with {{@Action}}, the duplicate action name check is > skipped. > The check is disabled due to > {code:title=PackageBasedActionConfigBuilder.java:674}if > (!map.containsKey(DEFAULT_METHOD){code} > Having duplicate action names leads to different behavior with Java 7 or Java > 8 environment (due to reflection method order). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4904) Support for cross context request processing
[ https://issues.apache.org/jira/browse/WW-4904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4904: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Support for cross context request processing > - > > Key: WW-4904 > URL: https://issues.apache.org/jira/browse/WW-4904 > Project: Struts 2 > Issue Type: Improvement > Components: Dispatch Filter >Affects Versions: 2.3.34 > Environment: Wildlfy 10.1.0 > Struts 2.3.34 > JDK 1.8.0_151 >Reporter: Prasanth >Priority: Minor > Fix For: 6.4.0 > > > When a request is forwarded from one context to another (both using struts2) > {code:java} > ServletContext sContext = context.getContext("/context2"); > RequestDispatcher rd = sContext.getRequestDispatcher(resource); > rd.forward(request, response); > {code} > you get a {{ClassCastException}}. Both the projects has their own struts jars > (in WEB-INF/lib folder). > {noformat} > Caused by: java.lang.ClassCastException: > org.apache.struts2.dispatcher.mapper.ActionMapping cannot be cast to > org.apache.struts2.dispatcher.mapper.ActionMapping > at > org.apache.struts2.dispatcher.ng.PrepareOperations.findActionMapping(PrepareOperations.java:163) > at > org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:92) > at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) > at > io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) > at > io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) > at > io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) > at > io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) > at > io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) > at > io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) > at > io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) > at > io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:274) > at > io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:209) > at > io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:221) > ... 128 more > {noformat} > To make it work you have to have a filter (before struts2 filter) in the > application that is receiving the request and have the below two lines. > {code:java} > request.setAttribute("struts.actionMapping", new ActionMapping()); > request.setAttribute("struts.valueStack", null); > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4858) JSONInterceptor must not populate value stack directly
[ https://issues.apache.org/jira/browse/WW-4858?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4858: -- Fix Version/s: 6.4.0 (was: 6.2.0) > JSONInterceptor must not populate value stack directly > -- > > Key: WW-4858 > URL: https://issues.apache.org/jira/browse/WW-4858 > Project: Struts 2 > Issue Type: Improvement > Components: Plugin - JSON >Affects Versions: 2.3.1, 6.1.1 >Reporter: Yasser Zamani >Priority: Major > Labels: decouple, refactoring > Fix For: 6.4.0 > > Attachments: StrutsUnifiedDataModel.png > > > {{JSONInterceptor}} must populate value stack via OGNL to honor our > exclusions! > So according to my current quick view and understanding, I'm planning > something like below which also resolves WW-3364: {{JSONInterceptor}} could > be an extension of {{ModelDrivenInterceptor}} via some refactoring of both. > From hereafter, {{JSONPopulator}} could be removed and {{JSONInterceptor}} > must give population up to {{ParametersInterceptor}}. This simply could be > achieved by something like pushing {{JSONInterceptor.root}} into top of stack > and also moving posted json to http params (or if was impossible some > refactoring of {{ParametersInterceptor}}). > Please cast here any objections, votes or idea. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4428) Add support for new Java 8 LocalDate and LocalDateTime to the JSON plugin
[ https://issues.apache.org/jira/browse/WW-4428?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4428: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Add support for new Java 8 LocalDate and LocalDateTime to the JSON plugin > - > > Key: WW-4428 > URL: https://issues.apache.org/jira/browse/WW-4428 > Project: Struts 2 > Issue Type: Bug > Components: Plugin - JSON >Affects Versions: 2.3.20 >Reporter: Alessandro Nistico >Priority: Major > Labels: JSON > Fix For: 6.4.0 > > > The JSONWriter and the JSONPopulator do not handle the new LocalDate and > LocalDateTime as primitive date values and will handle them through > introspection which will create the wrong JSON object. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4483) Add Listener for Configuration events
[ https://issues.apache.org/jira/browse/WW-4483?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4483: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Add Listener for Configuration events > - > > Key: WW-4483 > URL: https://issues.apache.org/jira/browse/WW-4483 > Project: Struts 2 > Issue Type: New Feature > Components: XML Configuration >Affects Versions: 2.3.20 >Reporter: Jasper Rosenberg >Priority: Minor > Fix For: 6.4.0 > > > We have some rules that we enforce on our struts action and package > configurations. We currently enforce these by validating the configuration > in non-production environments in a > DispatcherListener.dispatcherInitialized() implementation. > That works great at startup but, in development, I dynamically reload the > configuration (say to fix an action definition), > DispatcherListener.dispatcherInitialized() is not invoked, and so the > configuration I reloaded is not revalidated. > It would be great if struts2 supported a ConfigurationListener interface that > could listen for at least init complete, and reload complete events. I could > see a lot of practical uses for that. Thanks! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4478) Can't install own ValidatorFileParser
[ https://issues.apache.org/jira/browse/WW-4478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4478: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Can't install own ValidatorFileParser > - > > Key: WW-4478 > URL: https://issues.apache.org/jira/browse/WW-4478 > Project: Struts 2 > Issue Type: Improvement > Components: XML Validators >Affects Versions: 2.3.20 >Reporter: Jasper Rosenberg >Priority: Minor > Fix For: 6.4.0 > > > I'd like to install my own implementation of > com.opensymphony.xwork2.validator.ValidatorFileParser, but I can't w/o > overwriting the whole default struts xml because it uses "default" as the > name, and there is no property with which to set it. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4759) Dedicated struts2-api Maven artefact
[ https://issues.apache.org/jira/browse/WW-4759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4759: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Dedicated struts2-api Maven artefact > > > Key: WW-4759 > URL: https://issues.apache.org/jira/browse/WW-4759 > Project: Struts 2 > Issue Type: New Feature > Components: "New" API >Affects Versions: 2.5.10 >Reporter: Lukasz Lenart >Priority: Major > Fix For: 6.4.0 > > > Create a new Maven artefact {{struts2-api}} and move all the interfaces > there, those interfaces are extension points that can be used by users to > implement custom behaviour -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-4301) includeProperties Does Not Work with a List of Lists
[ https://issues.apache.org/jira/browse/WW-4301?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-4301: -- Fix Version/s: 6.4.0 (was: 6.2.0) > includeProperties Does Not Work with a List of Lists > > > Key: WW-4301 > URL: https://issues.apache.org/jira/browse/WW-4301 > Project: Struts 2 > Issue Type: Bug > Components: Plugin - JSON >Affects Versions: 2.3.16 >Reporter: Andrew Bernhagen >Priority: Minor > Labels: JSON > Fix For: 6.4.0 > > Original Estimate: 24h > Remaining Estimate: 24h > > I found this issue when using server-side processing with JQuery Datatables > and attempting to populate. > Say I have this getter/field on my action: > {code:java} > public List> getListOfLists() { > return listOfLists; > } > {code} > My struts.xml is defined as follows: > {code:xml} > class="com.example.web.action.WebAction"> > > false >name="includeProperties">listOfLists\[\d+\]\[\d+\] > > > {code} > However, the include patterns that are constructed within JSONUtil are not > accurate. Instead of making the expected pattern that would work: > {noformat} > listOfLists > listOfLists\[\d+\] > listOfLists\[\d+\]\[\d+\] > {noformat} > Only the following are created: > {noformat} > listOfLists\[\d+\] > listOfLists\[\d+\]\[\d+\] > {noformat} > Because the first "listOfLists" is not created, the property is excluded in > the results. > This all happens because of line 463 in JSONUtil: > {code:java} > addPattern(results, patternExpr.substring(0, > patternExpr.lastIndexOf(includePatternData.get(ARRAY_BEGIN_STRING).get(type))), > type); > {code} > Since we're going at the last index of the ARRAY_BEGIN_STRING string, it's > skipping the first index. This could be updated to be smarter to build the > include patterns as expected. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-5225) add accessor to the original filename into JakartaMultiPartRequest & MultiPartRequestWrapper
[ https://issues.apache.org/jira/browse/WW-5225?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-5225: -- Fix Version/s: 6.4.0 (was: 6.2.0) > add accessor to the original filename into JakartaMultiPartRequest & > MultiPartRequestWrapper > > > Key: WW-5225 > URL: https://issues.apache.org/jira/browse/WW-5225 > Project: Struts 2 > Issue Type: Improvement >Reporter: Eric Blanquer >Priority: Trivial > Fix For: 6.4.0 > > > HTML input file with *webkitdirectory* *mozdirectory* allow to upload a folder > {code}{code} > but MultiPartRequestWrapper.getFileNames("folder") returns only the > canonicalName of files > https://github.com/apache/struts/blob/12beb20949a14e8bcdff2e8ca1749ea29d880a77/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java#L233 > it will be very useful to be able to get the original *filename* of the > multipart request to be able to create the folder arborescence > multipart POST eg: > {code}-19664509768416840202761310294 > Content-Disposition: form-data; name="folder"; > filename="folder0/folder1/file1.txt" > Content-Type: text/plain > -19664509768416840202761310294 > Content-Disposition: form-data; name="folder"; > filename="folder0/folder2/file2.txt" > Content-Type: text/plain > -19664509768416840202761310294 > Content-Disposition: form-data; name="folder"; > filename="folder0/folder3/file3.txt" > Content-Type: text/plain > -19664509768416840202761310294-- > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-5294) s:url tag usage in a public page triggers a warning to not expose JSP pages directly
[ https://issues.apache.org/jira/browse/WW-5294?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-5294: -- Fix Version/s: 6.4.0 (was: 6.2.0) > s:url tag usage in a public page triggers a warning to not expose JSP pages > directly > - > > Key: WW-5294 > URL: https://issues.apache.org/jira/browse/WW-5294 > Project: Struts 2 > Issue Type: Bug >Affects Versions: 6.1.2 > Environment: Ubuntu 20, Java 8, Tomcat 9 >Reporter: Erica Kane >Assignee: Lukasz Lenart >Priority: Major > Fix For: 6.4.0 > > > I have a number of public pages that use the {{}} tags with no issues. > But one page uses an {{}} tag, and every time it is visited I get a > warning on our logs the Action invocation context is null, and that JSP pages > should not be exposed directly. This is an informational page only, and I > can't think why the URL tag is unsafe to use while the a tag is safe. I am > assuming this is a bug, but of course if there is an issue with the URL tag > on a public page I would like to know. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-5256) Use freemarker <#compress> directive in tag definitions
[ https://issues.apache.org/jira/browse/WW-5256?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-5256: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Use freemarker <#compress> directive in tag definitions > --- > > Key: WW-5256 > URL: https://issues.apache.org/jira/browse/WW-5256 > Project: Struts 2 > Issue Type: Improvement > Components: Core Tags >Reporter: Lukasz Lenart >Assignee: Stefaan Dutry >Priority: Minor > Fix For: 6.4.0 > > > To "compress" html generated by the tags > https://freemarker.apache.org/docs/dgui_misc_whitespace.html#autoid_30 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-5250) Address TODO in DefaultActionValidatorManagerTest
[ https://issues.apache.org/jira/browse/WW-5250?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-5250: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Address TODO in DefaultActionValidatorManagerTest > - > > Key: WW-5250 > URL: https://issues.apache.org/jira/browse/WW-5250 > Project: Struts 2 > Issue Type: Improvement > Components: Core, Unit Tests, XML Validators >Reporter: Lukasz Lenart >Priority: Minor > Fix For: 6.4.0 > > > There is a TODO which should be addressed: > {noformat} > // TODO: this all need to be converted to real unit tests > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-5249) Move test related classes into new struts2-test module
[ https://issues.apache.org/jira/browse/WW-5249?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-5249: -- Fix Version/s: 6.4.0 (was: 6.2.0) > Move test related classes into new struts2-test module > -- > > Key: WW-5249 > URL: https://issues.apache.org/jira/browse/WW-5249 > Project: Struts 2 > Issue Type: Improvement > Components: Core, Plugin - TestNG, Unit Tests >Reporter: Lukasz Lenart >Priority: Major > Fix For: 6.4.0 > > > Move {{XWorkTestCase}} and other related classes in to the new module -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (WW-5233) Include Apache Tiles code base in the Tiles plugin
[ https://issues.apache.org/jira/browse/WW-5233?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lukasz Lenart updated WW-5233: -- Fix Version/s: 6.3.0 (was: 7.0.0) > Include Apache Tiles code base in the Tiles plugin > -- > > Key: WW-5233 > URL: https://issues.apache.org/jira/browse/WW-5233 > Project: Struts 2 > Issue Type: Improvement > Components: Plugin - Tiles >Reporter: Lukasz Lenart >Priority: Major > Fix For: 6.3.0 > > Time Spent: 3h 10m > Remaining Estimate: 0h > > Apache Tiles has retired and it isn't maintained anymore. There are some > outstanding security issues that can be addressed right now. It will be > easier to maintain the code base as a part of the Tiles plugin instead of > taking the project back from attick. -- This message was sent by Atlassian Jira (v8.20.10#820010)