Giter VIP home page Giter VIP logo

stripes's People

Contributors

aymandf avatar barfoo4711 avatar dave-r12 avatar ghinkle avatar harawata avatar james-jory avatar jccarrillo avatar juanpablo-santos avatar lightbody avatar lmeadors avatar mongus avatar mthmulders avatar mwiehl avatar petermagnusson avatar rgrashel avatar ryanbraganza avatar samaxes avatar tfenne avatar vankeisb avatar xhaggi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stripes's Issues

Stripes 1.6.0 will not run in a WebSphere Liberty

Hi,

I just included Stripes into my JEE application but every time I will get this error message during start up. I am using a WebSphere Application Server 8.5.5.X. I am searching for awhile now and I've heard that there are some troubles with IBM WebSphere in combination with the Stripes Framework. Is there anyone, who get a JEE application running in a similar combination or know what I have to consider?

Error Log:

    [5/9/16 21:59:39:743 CEST] 00000079 com.ibm.ws.webcontainer.servlet                              I SRVE0242I: [skillDB-ear-0.0.1] [/skillDB] [StripesDispatcher]: Initialization successful.
    [5/9/16 21:59:39:810 CEST] 00000079 com.ibm.ws.webcontainer.filter                               E SRVE0321E: The [StripesFilter] filter did not load during start up.
    javax.servlet.ServletException: Filter [StripesFilter]: could not be initialized
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.init(FilterInstanceWrapper.java:163)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager._loadFilter(WebAppFilterManager.java:655)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.loadFilter(WebAppFilterManager.java:518)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.init(WebAppFilterManager.java:246)
        at com.ibm.ws.webcontainer.osgi.webapp.WebApp.initializeFilterManager(WebApp.java:854)
        at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally(WebApp.java:1164)
        at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:1053)
        at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:6463)
        at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApp(DynamicVirtualHost.java:446)
        at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.createRunnableHandler(DynamicVirtualHost.java:248)
        at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.createRunnableHandler(DynamicVirtualHost.java:313)
        at com.ibm.ws.http.internal.VirtualHostImpl.discriminate(VirtualHostImpl.java:251)
        at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java:306)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:471)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java:405)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:285)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.ready(HttpInboundLink.java:256)
        at com.ibm.ws.channel.ssl.internal.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:1037)
        at com.ibm.ws.channel.ssl.internal.SSLConnectionLink$MyReadCompletedCallback.complete(SSLConnectionLink.java:626)
        at com.ibm.ws.channel.ssl.internal.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1777)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:504)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:574)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:929)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1018)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: net.sourceforge.stripes.exception.StripesServletException: Could not instantiate specified Configuration. Class name specified was [net.sourceforge.stripes.config.RuntimeConfiguration].
        at net.sourceforge.stripes.controller.StripesFilter.createConfiguration(StripesFilter.java:145)
        at net.sourceforge.stripes.controller.StripesFilter.init(StripesFilter.java:103)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.init(FilterInstanceWrapper.java:149)
        ... 26 more
    Caused by: net.sourceforge.stripes.exception.StripesRuntimeException: Problem instantiating default configuration objects.
        at net.sourceforge.stripes.config.DefaultConfiguration.init(DefaultConfiguration.java:245)
        at net.sourceforge.stripes.config.RuntimeConfiguration.init(RuntimeConfiguration.java:291)
        at net.sourceforge.stripes.controller.StripesFilter.createConfiguration(StripesFilter.java:137)
        ... 28 more
    Caused by: java.lang.NullPointerException
    [5/9/16 21:59:39:813 CEST] 00000079 com.ibm.ws.webcontainer.filter                               E SRVE0321E: The [StripesFilter] filter did not load during start up.
    javax.servlet.ServletException: Filter [StripesFilter]: could not be initialized
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.init(FilterInstanceWrapper.java:163)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager._loadFilter(WebAppFilterManager.java:655)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.loadFilter(WebAppFilterManager.java:518)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.init(WebAppFilterManager.java:246)
        at com.ibm.ws.webcontainer.osgi.webapp.WebApp.initializeFilterManager(WebApp.java:854)
        at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally(WebApp.java:1164)
        at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:1053)
        at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:6463)
        at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApp(DynamicVirtualHost.java:446)
        at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.createRunnableHandler(DynamicVirtualHost.java:248)
        at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.createRunnableHandler(DynamicVirtualHost.java:313)
        at com.ibm.ws.http.internal.VirtualHostImpl.discriminate(VirtualHostImpl.java:251)
        at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java:306)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:471)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java:405)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:285)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.ready(HttpInboundLink.java:256)
        at com.ibm.ws.channel.ssl.internal.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:1037)
        at com.ibm.ws.channel.ssl.internal.SSLConnectionLink$MyReadCompletedCallback.complete(SSLConnectionLink.java:626)
        at com.ibm.ws.channel.ssl.internal.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1777)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:504)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:574)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:929)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1018)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: net.sourceforge.stripes.exception.StripesServletException: Could not instantiate specified Configuration. Class name specified was [net.sourceforge.stripes.config.RuntimeConfiguration].
        at net.sourceforge.stripes.controller.StripesFilter.createConfiguration(StripesFilter.java:145)
        at net.sourceforge.stripes.controller.StripesFilter.init(StripesFilter.java:103)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.init(FilterInstanceWrapper.java:149)
        ... 26 more
    Caused by: net.sourceforge.stripes.exception.StripesRuntimeException: Problem instantiating default configuration objects.
        at net.sourceforge.stripes.config.DefaultConfiguration.init(DefaultConfiguration.java:245)
        at net.sourceforge.stripes.config.RuntimeConfiguration.init(RuntimeConfiguration.java:291)
        at net.sourceforge.stripes.controller.StripesFilter.createConfiguration(StripesFilter.java:137)
        ... 28 more
    Caused by: java.lang.NullPointerException

Web.xml:

    [...]
    <filter>
        <display-name>Stripes Filter</display-name>
        <filter-name>StripesFilter</filter-name>
        <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class>

        <init-param>
            <param-name>ActionResolver.Packages</param-name>
            <param-value>de.fom.skillDB.war.actionbeans</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>StripesFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

    <filter-mapping>
        <filter-name>StripesFilter</filter-name>
        <servlet-name>StripesDispatcher</servlet-name>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

    <servlet>
        <servlet-name>StripesDispatcher</servlet-name>
        <servlet-class>net.sourceforge.stripes.controller.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>StripesDispatcher</servlet-name>
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>

Server.xml(including all WebSphere features):

    <feature>appSecurity-2.0</feature>
    <feature>servlet-3.1</feature>
    <feature>jaxrs-2.0</feature>
    <feature>localConnector-1.0</feature>
    <feature>jdbc-4.1</feature>
    <feature>jpa-2.1</feature>
    <feature>jsp-2.3</feature>
    <feature>ejb-3.2</feature>
    <feature>ejbRemote-3.2</feature>

TestActionBean.java:

    package de.fom.skillDB.war.actionbeans;

    import net.sourceforge.stripes.action.ActionBeanContext;
    import net.sourceforge.stripes.action.DefaultHandler;
    import net.sourceforge.stripes.action.ForwardResolution;
    import net.sourceforge.stripes.action.Resolution;
    import net.sourceforge.stripes.action.UrlBinding;

    @UrlBinding("/example/")
    public class TestActionBean {

        protected ActionBeanContext context;

        protected String title = "Titel";

        public ActionBeanContext getContext() {
            return context;
        }

        public void setContext(ActionBeanContext context) {
            this.context = context;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        @DefaultHandler
        public Resolution view() {
            return new ForwardResolution( "/index.jsp" );
        }
    }

Thank you in advance! ๐Ÿ‘
Niklas

Remove jakarta.mail Dependency

I think the jakarta.mail dependency is only used for the EmailTypeConverter for validation purposes. This is completely overkill and unnecessary for email address validation. That logic can be implemented easily using a regex or simple OSS logic that is readily available using other mechanisms. Adding a dependency is not necessary.

Annotations missing for some http verbs

In Stripes 1.7.0-beta1, there are no annotations for OPTIONS, TRACE, CONNECT and PATCH http verbs. Although those verbs can be mapped to equivalent methods on the relevant RestActionBeans, it would be nice to have (for completeness) their equivalent annotations to the other HTTP verbs.

PR following in a minute.

Is it possible to add Thymeleaf support to Stripes?

Thymeleaf is a Java templating engine. It can function as a standalone XML/HTML text processor but it also has an extension project that provides integration with Spring MVC 3.

I've grown to really like using Thymeleaf because it's all regular HTML, rather than JSP code. This allows designers to edit the page in their web browser using their usual dev cycles while the server side engineering team can sprinkle the code with attributes to allow it render server provided data.

I'm thinking of trying to add support for Thymeleaf to Stripes. I've grown to loathe Spring MVC 3 in a recent project, and refuse to use it again. Stripes appears to provide a lot of it's functionality via JSP tags.

Is it conceptually possible to divorce Stripes from JSP and add Thymeleaf?

Better REST support

Hi Stripes, here I make so suggestions in order to give a better REST support.

REST support uses naming patterns which is discouraged because typographical errors may result in silent failures and other points described by Bloch (http://jtechies.blogspot.pe/2012/07/item-35-prefer-annotations-to-naming.html). Now we have annotations. Look at JUnit, they are no more using naming patterns to test classes, they have @test. Naming patterns seems like we're back in Java 1.4. Please let's use @post, @get, @delete,etc. Right now the annotations just doesn't work. These annotations should work even if the ActionBean is not marked with the RestActionBean annotation.

REST support by default, and with no chance for further customization, packages up all the validation errors in a defined way. It will be better if we leave the developer free to change it respecting ValidationErrorHandler. Look line 447 of DispatcherHelper.

REST support doesn't have an expressive way to return headers or error codes. It will be nice if we create a base class called HttpResolution where we can set headers, error codes, check ResponseEntity of Spring MVC or DefaultHttpHeaders of Struts2.

The new class JsonResolution is tightly coupled with Jackson because JsonBuilder uses Jackson directly. What if need Gson? We need a JsonBuilderFactory there.

The parsing of JSON body is tightly coupled with Jackson. I developed in my fork a pluggable content type request wrapper and a Gson implementation.

Thank you so much. I'm open to code these features.

support for async action beans

In some cases (e.g. ActionBean calling webservice(s) or async messaging), we'd like to use the Servlet3 async feature, that allows for better performance (non-blocking).

Stripes could provide some plumbing in order to make it simple, and integrated with the rest of the framework.

Upgrade jackson dependencies and publish a new beta

We're still maintaining a few applications using stripes framework and even started using the @RestActionBean from 1.7.0-beta4.

Unfortunately we're hit by a nasty dependency thing with jackson - the version used for compiling Stripes leads to a wrong execution path inside jackson. We can work around most parts (for example, by using our own version of JsonResolution which we've been using for some time now), but this fails for error handling:

Caused by: java.lang.ClassCastException: com.fasterxml.jackson.databind.ser.std.MapProperty cannot be cast to com.fasterxml.jackson.databind.ser.BeanPropertyWriter
	at com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter$1.serializeAsField(SimpleBeanPropertyFilter.java:93)
	at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFilteredFields(MapSerializer.java:883)
	... 59 more

This specific exception could be avoided by compiling stripes with a newer version of jackson as dependency.

There are already PR for updating the dependencies that were automatically created by a bot, may I suggest to acccept those PRs and probably create a beta5 for then?

If no one is up to doing this, I volounteer to doing it myself.

Async actions do not work with tomcat

Async actions don't work in tomcat because tomcat complains that "a servlet or filter in the chain is not async".

Stack (tomcat 8) :

java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations.
    org.apache.catalina.connector.Request.startAsync(Request.java:1612)
    org.apache.catalina.connector.RequestFacade.startAsync(RequestFacade.java:1037)
    javax.servlet.ServletRequestWrapper.startAsync(ServletRequestWrapper.java:392)
    net.sourceforge.stripes.controller.AsyncResponseServlet3.<init>(AsyncResponseServlet3.java:31)
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    net.sourceforge.stripes.controller.AsyncResponse.newInstance(AsyncResponse.java:215)
    net.sourceforge.stripes.controller.DispatcherHelper$6.intercept(DispatcherHelper.java:651)
    net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:180)
    net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:113)
    net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:177)
    net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:86)
    net.sourceforge.stripes.controller.DispatcherHelper.invokeEventHandler(DispatcherHelper.java:577)
    net.sourceforge.stripes.controller.DispatcherServlet.invokeEventHandler(DispatcherServlet.java:303)
    net.sourceforge.stripes.controller.DispatcherServlet.service(DispatcherServlet.java:162)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    net.sourceforge.stripes.controller.DynamicMappingFilter$2.doFilter(DynamicMappingFilter.java:467)
    net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:208)
    net.sourceforge.stripes.controller.DynamicMappingFilter.doFilter(DynamicMappingFilter.java:453)

StripesRequestWrapper asumes that a request with json content-type should always have a body

From a restful point of view this is not always true, as there may be GET, DELETE, etc. requests that most of the time don't have a body. From a restless point of view, it could also happen. With stripes-1.7.0-beta1, in these situations, the following exception is raised on JsonContentTypeRequestWrapper line 49:

com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input
at [Source: java.io.BufferedInputStream@5a9b6faf; line: 1, column: 1]

Specifically, the line
https://github.com/StripesFramework/stripes/blob/master/stripes/src/main/java/net/sourceforge/stripes/controller/StripesRequestWrapper.java#L125

is where it needs to also check that the request has a body to proceed with json body binding. PR with fix and test to reproduce the issue following in a minute.

Upgrade stripes to Jakarta EE 9+

Is posible to create new release of StripesFramework for compatibility with Jakarta EE 9.
rename packages javax -> jakarta
I have some project and I need to move from Tomcat 9.x -> Tomcat 10.x

Doclint for Javadoc fails on JDK 8

java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)


[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (generate-javadoc) on project stripes: MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/ActionBeanContext.java:183: warning: no @param for key
[ERROR] public List getMessages(String key) {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/OnwardResolution.java:140: warning: no @param for anchor
[ERROR] protected T setAnchor(String anchor) {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/OnwardResolution.java:140: warning: no @return
[ERROR] protected T setAnchor(String anchor) {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/HttpCache.java:45: error: unexpected end tag:


[ERROR] *


[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/ObjectOutputBuilder.java:165: warning: no description for @throws
[ERROR] * @throws java.lang.Exception
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/ObjectOutputBuilder.java:180: warning: no description for @throws
[ERROR] * @throws java.lang.Exception
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/JsonResolution.java:43: warning: no description for @throws
[ERROR] * @throws java.lang.Exception
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/SimpleMessage.java:71: warning: no description for @param
[ERROR] * @param parameters
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/StrictBinding.java:49: error: unexpected end tag:


[ERROR] *


[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/StrictBinding.java:81: warning: no @return
[ERROR] String[] allow() default "";
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/StrictBinding.java:78: warning: no @return
[ERROR] Policy defaultPolicy() default Policy.DENY;
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/StrictBinding.java:84: warning: no @return
[ERROR] String[] deny() default "";
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/UrlBinding.java:63: warning: no @return
[ERROR] String value();
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/ValidationErrorReportResolution.java:50: warning: no @return
[ERROR] public ActionBeanContext getContext() {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/ValidationErrorReportResolution.java:78: warning: no @throws for java.lang.Exception
[ERROR] protected void sendErrors(HttpServletRequest request, HttpServletResponse response)
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/ValidationErrorReportResolution.java:45: warning: no @param for context
[ERROR] public ValidationErrorReportResolution(ActionBeanContext context) {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/action/Wizard.java:48: warning: no @return
[ERROR] String[] startEvents() default {};
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/ajax/JavaScriptBuilder.java:386: warning: no @param for in
[ERROR] public String getScalarAsString(Object in) {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/ajax/JavaScriptBuilder.java:386: warning: no @return
[ERROR] public String getScalarAsString(Object in) {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/BootstrapPropertyResolver.java:67: warning: no @param for filterConfig
[ERROR] public void setFilterConfig(FilterConfig filterConfig) {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/BootstrapPropertyResolver.java:72: warning: no @return
[ERROR] public FilterConfig getFilterConfig() {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/BootstrapPropertyResolver.java:138: warning: no @param for
[ERROR] public Class getClassProperty(String paramName, Class targetType) [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/BootstrapPropertyResolver.java:218: warning: no @param for [ERROR] public List> getClassPropertyList(Class targetType) [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/BootstrapPropertyResolver.java:238: warning: no @param for [ERROR] public List> getClassPropertyList(String paramName, Class targetType) [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/BootstrapPropertyResolver.java:253: warning: no @param for [ERROR] protected void removeDontAutoloadClasses(Collection> classes) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/BootstrapPropertyResolver.java:253: warning: no @param for classes [ERROR] protected void removeDontAutoloadClasses(Collection> classes) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/BootstrapPropertyResolver.java:265: warning: no @param for [ERROR] protected void removeAbstractClasses(Collection> classes) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/BootstrapPropertyResolver.java:265: warning: no @param for classes [ERROR] protected void removeAbstractClasses(Collection> classes) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/BootstrapPropertyResolver.java:45: error: unexpected end tag:

[ERROR] \*

[ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/BootstrapPropertyResolver.java:61: warning: no @param for filterConfig [ERROR] public BootstrapPropertyResolver(FilterConfig filterConfig) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/Configuration.java:84: warning: no @param for debugMode [ERROR] void setDebugMode(boolean debugMode); [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/Configuration.java:87: warning: no @return [ERROR] boolean isDebugMode(); [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/Configuration.java:183: error: unknown tag: Interceptor [ERROR] \* @return Collection an ordered collection of interceptors to be executed [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/Configuration.java:186: warning: no @param for stage [ERROR] Collection getInterceptors(LifecycleStage stage); [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:276: warning: no @return [ERROR] protected Boolean initDebugMode() { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:291: warning: no @return [ERROR] protected ObjectFactory initObjectFactory() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:303: warning: no @return [ERROR] protected ActionResolver initActionResolver() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:315: warning: no @return [ERROR] protected ActionBeanPropertyBinder initActionBeanPropertyBinder() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:328: warning: no @return [ERROR] protected ActionBeanContextFactory initActionBeanContextFactory() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:340: warning: no @return [ERROR] protected TypeConverterFactory initTypeConverterFactory() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:351: warning: no @return [ERROR] protected LocalizationBundleFactory initLocalizationBundleFactory() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:360: warning: no @return [ERROR] protected LocalePicker initLocalePicker() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:369: warning: no @return [ERROR] protected FormatterFactory initFormatterFactory() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:380: warning: no @return [ERROR] protected TagErrorRendererFactory initTagErrorRendererFactory() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:391: warning: no @return [ERROR] protected PopulationStrategy initPopulationStrategy() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:401: warning: no @return [ERROR] protected ExceptionHandler initExceptionHandler() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:416: warning: no @return [ERROR] protected MultipartWrapperFactory initMultipartWrapperFactory() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:430: warning: no @return [ERROR] protected ValidationMetadataProvider initValidationMetadataProvider() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:450: warning: no @param for dst [ERROR] protected void mergeInterceptorMaps(Map> dst, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:450: warning: no @param for src [ERROR] protected void mergeInterceptorMaps(Map> dst, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:467: warning: no @param for map [ERROR] protected void addInterceptor(Map> map, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:467: warning: no @param for interceptor [ERROR] protected void addInterceptor(Map> map, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:506: warning: no @return [ERROR] protected Map> initCoreInterceptors() { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/DefaultConfiguration.java:514: warning: no @return [ERROR] protected Map> initInterceptors() { return null; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/RuntimeConfiguration.java:225: warning: no @param for classes [ERROR] protected Map> initInterceptors(List classes) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/config/RuntimeConfiguration.java:253: warning: no @param for [ERROR] protected T initializeComponent(Class componentType, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ActionBeanPropertyBinder.java:48: warning: no @return [ERROR] ValidationErrors bind(ActionBean bean, ActionBeanContext context, boolean validate); [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ActionBeanPropertyBinder.java:29: error: unexpected end tag:

[ERROR] \*

[ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ActionResolver.java:152: warning: no @throws for net.sourceforge.stripes.exception.StripesServletException [ERROR] String getHandledEvent(Method handler) throws StripesServletException; [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ActionResolver.java:159: warning: no @return [ERROR] Collection> getActionBeanClasses(); [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/AnnotatedClassActionResolver.java:158: warning: no @return [ERROR] public UrlBindingFactory getUrlBindingFactory() { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/AnnotatedClassActionResolver.java:261: warning: no @param for clazz [ERROR] protected void processMethods(Class clazz, Map<String, Method> classMappings) {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/AnnotatedClassActionResolver.java:261: warning: no @param for classMappings
[ERROR] protected void processMethods(Class clazz, Map classMappings) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/AnnotatedClassActionResolver.java:360: error: unknown tag: ActionBean [ERROR] \* @return a Class for the ActionBean requested [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/AnnotatedClassActionResolver.java:714: warning: no @return [ERROR] protected Configuration getConfiguration() { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/AnnotatedClassActionResolver.java:56: error: unknown tag: HandlesEvent [ERROR] \* @HandlesEvent annotations, and potentially a @DefaultHandler annotation. [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/AnnotatedClassActionResolver.java:96: error: bad use of '>' [ERROR] \* Maps action bean classes simple name -> action bean class [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/BeforeAfterMethodInterceptor.java:146: warning: no @param for bean [ERROR] protected Resolution invoke(ActionBean bean, Method m, LifecycleStage stage, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/BeforeAfterMethodInterceptor.java:146: warning: no @param for m [ERROR] protected Resolution invoke(ActionBean bean, Method m, LifecycleStage stage, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/BeforeAfterMethodInterceptor.java:146: warning: no @param for stage [ERROR] protected Resolution invoke(ActionBean bean, Method m, LifecycleStage stage, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/BeforeAfterMethodInterceptor.java:146: warning: no @param for when [ERROR] protected Resolution invoke(ActionBean bean, Method m, LifecycleStage stage, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/BeforeAfterMethodInterceptor.java:146: warning: no @return [ERROR] protected Resolution invoke(ActionBean bean, Method m, LifecycleStage stage, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/BeforeAfterMethodInterceptor.java:146: warning: no @throws for java.lang.Exception [ERROR] protected Resolution invoke(ActionBean bean, Method m, LifecycleStage stage, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:88: warning: no @return [ERROR] protected Configuration getConfiguration() { return configuration; } [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:365: warning: no @param for scalarType [ERROR] protected void bindNonNullValue(ActionBean bean, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:421: warning: no @param for bean [ERROR] protected SortedMap getParameters(ActionBean bean) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:421: warning: no @return [ERROR] protected SortedMap getParameters(ActionBean bean) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:454: warning: no @param for parameters [ERROR] protected void validateRequiredFields(Map parameters, ActionBean bean, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:454: warning: no @param for bean [ERROR] protected void validateRequiredFields(Map parameters, ActionBean bean, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:454: warning: no @param for errors [ERROR] protected void validateRequiredFields(Map parameters, ActionBean bean, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:557: warning: empty

tag [ERROR] \*

[ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:570: warning: no @param for req [ERROR] protected void checkSingleRequiredField(String name, String strippedName, String[] values, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:747: error: unknown tag: Object [ERROR] \* @return List a List of objects containing only objects of the desired type. It is [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:751: warning: no @throws for java.lang.Exception [ERROR] protected List convert(ActionBean bean, ParameterName propertyName, String[] values, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:846: warning: no @param for values [ERROR] protected String[] trim(String[] values, ValidationMetadata meta) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:846: warning: no @param for meta [ERROR] protected String[] trim(String[] values, ValidationMetadata meta) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:846: warning: no @return [ERROR] protected String[] trim(String[] values, ValidationMetadata meta) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultActionBeanPropertyBinder.java:884: warning: no @return [ERROR] public boolean hasNonEmptyValues() { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultObjectFactory.java:112: warning: no @return [ERROR] public Configuration getConfiguration() { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultObjectFactory.java:200: warning: no @param for [ERROR] public T newInterfaceInstance(Class interfaceType) throws InstantiationException, [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultObjectFactory.java:240: warning: no @param for [ERROR] public void addImplementingClass(Class iface, Class impl) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DefaultObjectFactory.java:325: warning: no @param for [ERROR] protected T postProcess(T object) { [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ObjectFactory.java:61: warning: no @param for [ERROR] T newInstance(Class clazz); [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ObjectFactory.java:68: warning: no @param for [ERROR] T newInstance(Constructor constructor, Object... args); [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ObjectFactory.java:68: warning: no @param for constructor [ERROR] T newInstance(Constructor constructor, Object... args); [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ObjectFactory.java:68: warning: no @param for args [ERROR] T newInstance(Constructor constructor, Object... args); [ERROR] ^ [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ObjectFactory.java:80: warning: no @param for [ERROR] T newInstance(Class clazz, Class[] constructorArgTypes, Object[] constructorArgs);
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ObjectFactory.java:95: warning: no @param for
[ERROR] ConstructorWrapper constructor(Class clazz, Class<?>... parameterTypes);
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ObjectFactory.java:49: warning: no @return
[ERROR] public Constructor getConstructor();
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ObjectFactory.java:52: warning: no @param for args
[ERROR] public T newInstance(Object... args);
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/ObjectFactory.java:52: warning: no @return
[ERROR] public T newInstance(Object... args);
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:124: warning: no @throws for java.lang.Exception
[ERROR] public static Resolution resolveActionBean(final ExecutionContext ctx) throws Exception {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:166: warning: no @throws for java.lang.Exception
[ERROR] public static Resolution resolveHandler(final ExecutionContext ctx) throws Exception {
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:256: warning: no @param for validate
[ERROR] public static Resolution doBindingAndValidation(final ExecutionContext ctx,
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:256: warning: no @throws for java.lang.Exception
[ERROR] public static Resolution doBindingAndValidation(final ExecutionContext ctx,
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:290: warning: no @param for alwaysInvokeValidate
[ERROR] public static Resolution doCustomValidation(final ExecutionContext ctx,
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:290: warning: no @throws for java.lang.Exception
[ERROR] public static Resolution doCustomValidation(final ExecutionContext ctx,
[ERROR] ^
[ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:347: error: bad use of '>'
[ERROR] *

  • info.on={}, event="save" => true

  • [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:348: error: bad use of '>'
    [ERROR] *
  • info.on={"save", "update"}, event="save" => true

  • [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:349: error: bad use of '>'
    [ERROR] *
  • info.on={"save", "update"}, event="delete" => false

  • [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:350: error: bad use of '>'
    [ERROR] *
  • info.on={"!delete"}, event="save" => true

  • [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:351: error: bad use of '>'
    [ERROR] *
  • info.on={"!delete"}, event="delete" => false

  • [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:375: warning: no @throws for java.lang.Exception
    [ERROR] public static Method[] findCustomValidationMethods(Class<? extends ActionBean> type) throws Exception {
    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DispatcherHelper.java:438: warning: no @throws for java.lang.Exception
    [ERROR] public static Resolution handleValidationErrors(ExecutionContext ctx) throws Exception {
    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/DynamicMappingFilter.java:86: error: unexpected end tag:


    [ERROR] *


    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/NameBasedActionResolver.java:154: error: unexpected end tag:


    [ERROR] * {@link net.sourceforge.stripes.controller.NameBasedActionResolver#getBindingSuffix()}.


    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/controller/UrlBindingFactory.java:51: error: unexpected end tag:


    [ERROR] *


    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/exception/DefaultExceptionHandler.java:223: error: unexpected end tag:


    [ERROR] *


    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/integration/spring/SpringInjectionPostProcessor.java:61: error: ')' missing in reference
    [ERROR] * Calls {@link SpringHelper#injectBeans((Object, ServletContext))} to inject dependencies
    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/integration/spring/SpringInjectionPostProcessor.java:26: error: ')' missing in reference
    [ERROR] * An implementation of {@link ObjectPostProcessor} that calls {@link
    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/ErrorsTag.java:203: error: self-closing element not allowed
    [ERROR] * @return SKIP_BODY if the errors are not to be output, or there aren't any

    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/FieldMetadataTag.java:360: error: invalid entity '
    [ERROR] * the address currently shown in the browser's address bar.
    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/FormTag.java:87: error: invalid entity '
    [ERROR] * correctly regardless of the address currently shown in the browser's address bar.
    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/FormTag.java:487: error: unknown tag: String
    [ERROR] * @return Set - the set of field names seen so far
    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputTagSupport.java:362: error: unknown tag: ValidationError
    [ERROR] * @return List the list of validation errors for this field
    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputHiddenTag.java:31: error: unexpected end tag:


    [ERROR] *


    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputOptionsEnumerationTag.java:83: error: unknown tag: Enum
    [ERROR] * to Class.
    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputOptionsEnumerationTag.java:43: error: unexpected end tag:


    [ERROR] * following order:


    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputTextAreaTag.java:32: error: unknown tag: il
    [ERROR] * A value with the same name in the HttpServletRequest
    [ERROR] ^
    [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputTextAreaTag.java:32: error: text not allowed in
      element
      [ERROR] * A value with the same name in the HttpServletRequest
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputTextAreaTag.java:32: error: unexpected end tag:
      [ERROR] * A value with the same name in the HttpServletRequest
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputTextAreaTag.java:33: error: unknown tag: il
      [ERROR] * A value on the ActionBean if an ActionBean instance is present
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputTextAreaTag.java:33: error: unexpected end tag:
      [ERROR] * A value on the ActionBean if an ActionBean instance is present
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputTextAreaTag.java:34: error: unknown tag: il
      [ERROR] * The contents of the body of the textarea
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputTextAreaTag.java:34: error: unexpected end tag:
      [ERROR] * The contents of the body of the textarea
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputTextAreaTag.java:35: error: unknown tag: il
      [ERROR] * The value attribute of the tag
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/InputTextAreaTag.java:35: error: unexpected end tag:
      [ERROR] * The value attribute of the tag
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/MessagesTag.java:145: error: unknown tag: Message
      [ERROR] * @return List a possibly null list of messages to display
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/tag/PageOptionsTag.java:53: error: unexpected end tag:


      [ERROR] * provide this tag, at or near the beginning of the view, or JSP.


      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/util/Base64.java:30: error: malformed HTML
      [ERROR] * when using very small files (~< 40 bytes).
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/util/CryptoUtil.java:60: error: unexpected text
      [ERROR] * @see https://en.wikipedia.org/wiki/Authenticated_encryption
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/util/ReflectUtil.java:128: error: tag not allowed here:


      [ERROR] *

      If, for some unforseen reason, an exception is thrown within this method it will be
      [ERROR] ^
      [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/util/ReflectUtil.java:124: error: element not closed: ul
      [ERROR] *


        [ERROR] ^
        [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/util/UrlBuilder.java:175: error: bad HTML entity
        [ERROR] * pages and '&' otherwise.
        [ERROR] ^
        [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/util/UrlBuilder.java:196: error: malformed HTML
        [ERROR] * adding all scalar values as parameters to the URL.</p.
        [ERROR] ^
        [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/validation/ByteTypeConverter.java:23: error: malformed HTML
        [ERROR] * the range Byte.MIN_VALUE =< X =< Byte.MAX_VALUE.
        [ERROR] ^
        [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/validation/ByteTypeConverter.java:23: error: malformed HTML
        [ERROR] * the range Byte.MIN_VALUE =< X =< Byte.MAX_VALUE.
        [ERROR] ^
        [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/validation/DateTypeConverter.java:60: error: unexpected end tag:


        [ERROR] *


        [ERROR] ^
        [ERROR] /Users/jcarrillo/Workspace/stripesframework/stripes/stripes/src/main/java/net/sourceforge/stripes/validation/DateTypeConverter.java:76: error: unexpected end tag:


        [ERROR] *


        [ERROR] ^
        [ERROR]
        [ERROR] Command line was: /Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/bin/javadoc @options @packages
        [ERROR]
        [ERROR] Refer to the generated Javadoc files in '/Users/jcarrillo/Workspace/stripesframework/stripes/stripes/target/apidocs' dir.
        [ERROR] -> [Help 1]
        [ERROR]
        [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
        [ERROR] Re-run Maven using the -X switch to enable full debug logging.
        [ERROR]
        [ERROR] For more information about the errors and possible solutions, please read the following articles:
        [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
        [ERROR]
        [ERROR] After correcting the problems, you can resume the build with the command
        [ERROR] mvn -rf :stripes

    DMF bug with jetty9

    DMF calls response.sendError() event if response has already been commited (see net.sourceforge.stripes.controller.DynamicMappingFilter.ErrorTrappingResponseWrapper#proceed).

    This leads to exceptions (randomly in my case) and blank pages (see stack trace below).

    How To Reproduce

    1/ Deploy the examples app in jetty9 (I do this from IDEA)
    2/ open the index page
    3/ reload until page gets blank

    server stack :

    java.lang.IllegalStateException: Committed
        at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1285)
        at org.eclipse.jetty.server.Response.sendError(Response.java:567)
        at org.eclipse.jetty.server.Response.sendError(Response.java:544)
        at javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:167)
        at net.sourceforge.stripes.controller.DynamicMappingFilter$ErrorTrappingResponseWrapper.proceed(DynamicMappingFilter.java:294)
        at net.sourceforge.stripes.controller.DynamicMappingFilter.doFilter(DynamicMappingFilter.java:470)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
        at org.eclipse.jetty.server.Server.handle(Server.java:485)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:290)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)
        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:606)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:535)
        at java.lang.Thread.run(Thread.java:722)
    2015-12-29 12:11:28.915:WARN:oejs.HttpChannel:qtp2139563008-29: Could not send response error 500: java.lang.IllegalStateException: Committed
    

    stripes 1.7b3 ignoring validationErrorHandler

    Hi,

    relatively new to github and Stripes, which btw rocks. Using latest Stripes' beta, noticed that if a Restactionbean implements ValidationErrorHandler where the validation method returns my resolution, it gets ignored. I've noticed PR #56 which seems related, but I don't know Stripes internals that well, so i don't really know.

    How can I return a custom resolution on an error when executing a RestActionBean, how may I proceed?

    Many thanks in advance,
    pierre

    Startup failure in version 1.6

    Mybatis has a demo application https://github.com/mybatis/jpetstore-6

    I have tried update the stripes dependencey (pom.xml) to 1.6, demo stops working with following error.

    1168 [localhost-startStop-1] FATAL net.sourceforge.stripes.controller.StripesFi
    ter  - Could not instantiate specified Configuration. Class name specified was
    net.sourceforge.stripes.config.RuntimeConfiguration].
    net.sourceforge.stripes.exception.StripesRuntimeException: Problem instantiatin
     default configuration objects.
            at net.sourceforge.stripes.config.DefaultConfiguration.init(DefaultConfguration.java:245)
            at net.sourceforge.stripes.config.RuntimeConfiguration.init(RuntimeConfguration.java:291)
            at net.sourceforge.stripes.controller.StripesFilter.createConfiguration StripesFilter.java:137)
            at net.sourceforge.stripes.controller.StripesFilter.init(StripesFilter.java:103)

    Steps to recreate:

    1. clone above repository.
    2. update update stripes version to 1.6.0 in pom.xml
    3. run the application mvn clean tomcat7:run, application should be available at http://localhost:8080/jpetstore

    Action/Bean separation

    All,

    Is there any reason behind having an ActionBean instead of an Action and a Bean? I see some benefits on such separation.

    WebTests don't start, NoSuchMethod error

    It is currently impossible to run the web tests. Looks like a Groovy/WebTests config problem.

    mvn clean install -Pwebtests
    ...
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2.867s
    [INFO] Finished at: Sun May 11 19:37:09 CEST 2014
    [INFO] Final Memory: 16M/41M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.codehaus.groovy.maven:gmaven-plugin:1.0:testCompile (default) on project stripes-webtests: Execution default of goal org.codehaus.groovy.maven:gmaven-plugin:1.0:testCompile failed: An API incompatibility was encountered while executing org.codehaus.groovy.maven:gmaven-plugin:1.0:testCompile: java.lang.NoSuchMethodError: org.codehaus.groovy.ast.ModuleNode.getStarImports()Ljava/util/List;
    [ERROR] -----------------------------------------------------
    [ERROR] realm =    plugin>org.codehaus.groovy.maven:gmaven-plugin:1.0
    [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
    [ERROR] urls[0] = file:/Users/vankeisb/.m2/repository/org/codehaus/groovy/maven/gmaven-plugin/1.0/gmaven-plugin-1.0.jar
    [ERROR] urls[1] = file:/Users/vankeisb/.m2/repository/org/codehaus/groovy/maven/runtime/gmaven-runtime-api/1.0/gmaven-runtime-api-1.0.jar
    [ERROR] urls[2] = file:/Users/vankeisb/.m2/repository/org/codehaus/groovy/maven/feature/gmaven-feature-api/1.0/gmaven-feature-api-1.0.jar
    [ERROR] urls[3] = file:/Users/vankeisb/.m2/repository/org/codehaus/groovy/maven/runtime/gmaven-runtime-loader/1.0/gmaven-runtime-loader-1.0.jar
    [ERROR] urls[4] = file:/Users/vankeisb/.m2/repository/org/codehaus/groovy/maven/feature/gmaven-feature-support/1.0/gmaven-feature-support-1.0.jar
    [ERROR] urls[5] = file:/Users/vankeisb/.m2/repository/junit/junit/3.8.2/junit-3.8.2.jar
    [ERROR] urls[6] = file:/Users/vankeisb/.m2/repository/org/codehaus/groovy/maven/runtime/gmaven-runtime-support/1.0/gmaven-runtime-support-1.0.jar
    [ERROR] urls[7] = file:/Users/vankeisb/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.jar
    [ERROR] urls[8] = file:/Users/vankeisb/.m2/repository/com/thoughtworks/qdox/qdox/1.8/qdox-1.8.jar
    [ERROR] urls[9] = file:/Users/vankeisb/.m2/repository/org/codehaus/groovy/maven/gmaven-common/1.0/gmaven-common-1.0.jar
    [ERROR] urls[10] = file:/Users/vankeisb/.m2/repository/org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar
    [ERROR] urls[11] = file:/Users/vankeisb/.m2/repository/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
    [ERROR] urls[12] = file:/Users/vankeisb/.m2/repository/org/apache/maven/reporting/maven-reporting-impl/2.0.4.1/maven-reporting-impl-2.0.4.1.jar
    [ERROR] urls[13] = file:/Users/vankeisb/.m2/repository/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar
    [ERROR] urls[14] = file:/Users/vankeisb/.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
    [ERROR] urls[15] = file:/Users/vankeisb/.m2/repository/commons-digester/commons-digester/1.6/commons-digester-1.6.jar
    [ERROR] urls[16] = file:/Users/vankeisb/.m2/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
    [ERROR] urls[17] = file:/Users/vankeisb/.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar
    [ERROR] urls[18] = file:/Users/vankeisb/.m2/repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
    [ERROR] urls[19] = file:/Users/vankeisb/.m2/repository/org/apache/maven/doxia/doxia-core/1.0-alpha-10/doxia-core-1.0-alpha-10.jar
    [ERROR] urls[20] = file:/Users/vankeisb/.m2/repository/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.jar
    [ERROR] urls[21] = file:/Users/vankeisb/.m2/repository/org/apache/maven/reporting/maven-reporting-api/2.0.4/maven-reporting-api-2.0.4.jar
    [ERROR] urls[22] = file:/Users/vankeisb/.m2/repository/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-10/doxia-site-renderer-1.0-alpha-10.jar
    [ERROR] urls[23] = file:/Users/vankeisb/.m2/repository/org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar
    [ERROR] urls[24] = file:/Users/vankeisb/.m2/repository/org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar
    [ERROR] urls[25] = file:/Users/vankeisb/.m2/repository/org/apache/velocity/velocity/1.5/velocity-1.5.jar
    [ERROR] urls[26] = file:/Users/vankeisb/.m2/repository/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.jar
    [ERROR] urls[27] = file:/Users/vankeisb/.m2/repository/commons-collections/commons-collections/3.2/commons-collections-3.2.jar
    [ERROR] urls[28] = file:/Users/vankeisb/.m2/repository/org/apache/maven/doxia/doxia-module-apt/1.0-alpha-10/doxia-module-apt-1.0-alpha-10.jar
    [ERROR] urls[29] = file:/Users/vankeisb/.m2/repository/org/apache/maven/doxia/doxia-module-fml/1.0-alpha-10/doxia-module-fml-1.0-alpha-10.jar
    [ERROR] urls[30] = file:/Users/vankeisb/.m2/repository/org/apache/maven/doxia/doxia-module-xdoc/1.0-alpha-10/doxia-module-xdoc-1.0-alpha-10.jar
    [ERROR] urls[31] = file:/Users/vankeisb/.m2/repository/org/apache/maven/doxia/doxia-module-xhtml/1.0-alpha-10/doxia-module-xhtml-1.0-alpha-10.jar
    [ERROR] urls[32] = file:/Users/vankeisb/.m2/repository/commons-lang/commons-lang/2.4/commons-lang-2.4.jar
    [ERROR] urls[33] = file:/Users/vankeisb/.m2/repository/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar
    [ERROR] urls[34] = file:/Users/vankeisb/.m2/repository/org/codehaus/groovy/maven/support/slf4j-gossip/1.0/slf4j-gossip-1.0.jar
    [ERROR] urls[35] = file:/Users/vankeisb/.m2/repository/jline/jline/0.9.94/jline-0.9.94.jar
    [ERROR] Number of foreign imports: 1
    [ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
    

    Concurrency problem. CPU stucks (100%) in code

    Thread[a STR HTTP-/FormatEdit.action?,5,main] class org.apache.tomcat.util.threads.TaskThread 
    java.util.HashMap.getEntry(HashMap.java:446) 
    java.util.HashMap.containsKey(HashMap.java:434)
    net.sourceforge.stripes.controller.BindingPolicyManager.getInstance(BindingPolicyManager.java:81)
    net.sourceforge.stripes.controller.DefaultActionBeanPropertyBinder.isBindingAllowed(DefaultActionBeanPropertyBinder.java:256)
    net.sourceforge.stripes.controller.DefaultActionBeanPropertyBinder.bind(DefaultActionBeanPropertyBinder.java:153)
    net.sourceforge.stripes.controller.DispatcherHelper$3.intercept(DispatcherHelper.java:218)
    net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:158)
    net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:113)
    net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155)
    net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:74)
    net.sourceforge.stripes.controller.DispatcherHelper.doBindingAndValidation(DispatcherHelper.java:214)
    net.sourceforge.stripes.controller.DispatcherServlet.doBindingAndValidation(DispatcherServlet.java:254)
    net.sourceforge.stripes.controller.DispatcherServlet.service(DispatcherServlet.java:148)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    

    It means that getInstance method does have sync access. To fix it, you should either use ConcurrentHashMap for

    private static final Map<Class<?>, BindingPolicyManager> instances = new HashMap<Class<?>, BindingPolicyManager>();
    

    or use access through Locks/Sync/Semaphores

    StripesRequestWrapper ignores request's body when there is a "Transfer-Encoding: chunked" header instead of "Content-Length" when deciding to build the JsonContentTypeRequestWrapper

    Issue #51 stated StripesRequestWrapper asumes that a request with json content-type should always have a body, with pull #52 containing and
    initial fix, which consisted in peeking into request.getReader() to see if the request contained a body or not.

    Later on, this code was simplified to use instead request.getContentLength() to determine the request wrapper to use.

    Fast-forward ~couple of years, we've stumbled upon a case in which there is a json body but there isn't a content-length header, which is when the Transfer-Enconding: chunked header is present on the request (i.e. a json structure with a base64 image exceding 8K size).

    Suggested fix is to change line 126 on StripesRequestWrapper from:

    } else if (contentType.toLowerCase().contains("json") && request.getContentLength() > 0) {
    

    to:

    } else if (contentType.toLowerCase().contains("json") && ( request.getContentLength() > 0 || "chunked".equals( request.getHeader( "Transfer-Encoding" ) ) ) ) {
    

    I'd gladly prepare a PR with that, and would thank a lot if a new 1.7.0-beta5 release follows up with this, but don't know if it makes sense, as the Stripes' development seems to be staled :-?

    thx in advance

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google โค๏ธ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.