Dave,
I see few more errors:
1) create New user: Email field has limitation and long emails cannot be
added as max length is 30., and on saving it with new user less than 30
chars throws
System error - check logs for more information.
2) Invite new member: Highlighting new member from the drop down is not
populating to username filed, it needs to be entered manually.
3) Weblog members permissions: Error saving member permissions and its
happening on few blogs
Members:save - Error saving permissions on weblog - director
java.lang.NullPointerException
at
org.apache.roller.weblogger.ui.struts2.editor.Members.save(Members.java:96)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at ognl.OgnlRuntime.invokeMethodInsideSandbox(OgnlRuntime.java:1226)
at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:1211)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1920)
at
ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68)
at
com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:98)
at
com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:90)
at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1996)
at ognl.ASTMethod.getValueBody(ASTMethod.java:91)
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at ognl.SimpleNode.getValue(SimpleNode.java:258)
at ognl.Ognl.getValue(Ognl.java:537)
at ognl.Ognl.getValue(Ognl.java:501)
at
com.opensymphony.xwork2.ognl.OgnlUtil$3.execute(OgnlUtil.java:492)
at
com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecuteMethod(OgnlUtil.java:544)
at
com.opensymphony.xwork2.ognl.OgnlUtil.callMethod(OgnlUtil.java:490)
at
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:438)
at
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:293)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
at
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:179)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
at
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:49)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.roller.weblogger.ui.struts2.util.UIActionPrepareInterceptor.doIntercept(UIActionPrepareInterceptor.java:54)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.roller.weblogger.ui.struts2.util.UISecurityInterceptor.doIntercept(UISecurityInterceptor.java:123)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.roller.weblogger.ui.struts2.util.UIActionInterceptor.doIntercept(UIActionInterceptor.java:88)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:142)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:137)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:137)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:201)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:67)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:89)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:160)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:121)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:167)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:196)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:48)
at
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:574)
at
org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79)
at
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.roller.weblogger.ui.rendering.filters.RequestMappingFilter.doFilter(RequestMappingFilter.java:133)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.roller.weblogger.ui.core.filters.ValidateSaltFilter.doFilter(ValidateSaltFilter.java:74)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.roller.weblogger.ui.core.filters.LoadSaltFilter.doFilter(LoadSaltFilter.java:44)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.roller.weblogger.ui.core.filters.InitFilter.doFilter(InitFilter.java:73)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.roller.weblogger.ui.core.filters.PersistenceSessionFilter.doFilter(PersistenceSessionFilter.java:58)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.roller.weblogger.ui.core.filters.BootstrapFilter.doFilter(BootstrapFilter.java:67)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
at
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.roller.weblogger.ui.core.filters.CharEncodingFilter.doFilter(CharEncodingFilter.java:85)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
Thanks
Naren
On Sat, Feb 29, 2020 at 3:51 PM Dave <[email protected]> wrote:
> I investigated this problem and here's what I found:
> https://issues.apache.org/jira/browse/ROL-2160
>
> I have also proposed a solution to this problem in the JIRA ticket. I have
> tested that solution and it works, but it is really a work-around for what
> I believe is a bug in Struts.
>
> Here's a PR with the fix: https://github.com/apache/roller/pull/55
>
> Thanks,
> Dave
>
>
>
> On Fri, Feb 28, 2020 at 7:08 PM Naren <[email protected]> wrote:
>
> > Dave,
> >
> > Thanks again for fixing it in advance and also I have few
> > suggestions that might be useful for folks using Roller.
> >
> >
> > 1) For installing this behind firewall with internet restrictions in DMZ:
> > Packaging the required libraries will help, for example when I
> installed
> > Roller 5.2.4 I had to download tiles-config_3_0.dtd
> > and refer it like locally. /WEB-INF/lib/tiles-config_3_0.dtd"
> >
> > 2) /webapps//WEB-INF/classes/struts.xml which was part of the 5.2.4
> Global
> > allowed methods didnt work and I had to add them to
> > as allowed-methods for each action. I see it has been fixed in roller
> > 6.0
> >
> > 3) I saw another issue with database connectivity, it works fine with
> both
> > Tomcat/MySQL on the same server and with
> > multiple Tomcat and MySQL servers sitting on separate servers under
> load
> > balancer it wont update the content to all servers
> > under load balancer, any server that user get in that session under
> > load balancer can see updates happening on just server and
> > I figured out that eclipse cache and persistence was causing that. To
> > overcome that issue
> > I had to add eclipselink.cache.shared.default=false and
> > eclipselink.persistence-context.flush-mode=commit to
> > roller-custom.properties
> > 4) I would like to see options that will turn off the notification emails
> > Roller trying to send commentators to blog posts.
> > Word press has an option in configuration screen to turn it off or
> on
> > and it would be useful for Roller users.
> > In roller roller-custom.properties we should be able to add something
> > like this--> users.comments.emailnotify=false
> >
> > code has the following and there are no options to turn it off:
> > // if required, send notification for all comments changed
> > if (MailUtil.isMailConfigured()) {
> > I18nMessages resources = I18nMessages
> >
> > .getMessages(getActionWeblog().getLocaleInstance());
> >
> MailUtil.sendEmailApprovalNotifications(approvedComments,
> > resources);
> > }
> >
> > Hope these are some useful suggestions.
> >
> > Thanks
> > Naren
> >
> > On Fri, Feb 28, 2020 at 6:18 PM Dave <[email protected]> wrote:
> >
> > > I can now reproduce the issue locally and hope to have a fix this
> > weekend,
> > > probably a test build to be followed by a Roller 6.0.1 release. Thanks
> > for
> > > reporting this issue.
> > >
> > > Dave
> > >
> > >
> > > On Tue, Feb 25, 2020 at 7:51 PM Naren <[email protected]> wrote:
> > >
> > > > Dave,
> > > >
> > > > Thanks for getting back to me. Please let me know if its going
> to
> > > be
> > > > patch or code base update.
> > > >
> > > > Thanks again for your help
> > > > Naren
> > > >
> > > > On Tue, Feb 25, 2020 at 6:34 PM Dave <[email protected]> wrote:
> > > >
> > > > > Hi Naren,
> > > > >
> > > > > I was able to reproduce your issue on my personal site (which runs
> > JDK
> > > 11
> > > > > and Tomcat 9), which means that I should be able to fix it. Oddly,
> I
> > do
> > > > not
> > > > > see this error when I run Roller locally on the same setup.
> > > > >
> > > > > Thanks,
> > > > > Dave
> > > > >
> > > > >
> > > > > On Mon, Feb 17, 2020 at 6:42 PM Naren <[email protected]> wrote:
> > > > >
> > > > > > Dave?, thanks unfortunately, I will not be able to update Tomcat
> as
> > > > its a
> > > > > > big change in my organization.
> > > > > >
> > > > > > valueKey" is null but this is a value passed from outside to
> > Struts'
> > > > > > getText function.
> > > > > >
> > > > > > Please let me know when u test with Tomcat7 next week
> > > > > >
> > > > > > Thanks again for your help
> > > > > >
> > > > > > Naren
> > > > > >
> > > > > > On Mon, Feb 17, 2020 at 6:22 PM Dave <[email protected]>
> wrote:
> > > > > >
> > > > > > > I'm not able to reproduce this error and I may not have time to
> > > check
> > > > > > that
> > > > > > > until this weekend. Can you try a newer version of Tomcat? I'm
> > > > pretty
> > > > > > sure
> > > > > > > I never tested Roller 6 on Tomcat 7.
> > > > > > >
> > > > > > > Dave
> > > > > > >
> > > > > > >
> > > > > > > On Sun, Feb 16, 2020 at 8:18 PM Naren <[email protected]>
> > wrote:
> > > > > > >
> > > > > > > >
> > > > > > > > I downloaded roller 6.0 and my environment details are as
> > > below
> > > > > > > > Apache Tomcat/7.0.76
> > > > > > > > MySQL: 5.7.26
> > > > > > > > openjdk version "11.0.6"
> > > > > > > >
> > > > > > > >
> > > > > > > > I see an issue with config form and and the form does not
> > > complete
> > > > > and
> > > > > > > has
> > > > > > > > no save or cancel button,
> > > > > > > > Could you please let me know on this?
> > > > > > > >
> > > > > > > > The following has evaluated to null or missing:
> > > > > > > > ==> struts.getText(valueKey) [in template
> > > > > "template/simple/select.ftl"
> > > > > > at
> > > > > > > > line 75, column 36]
> > > > > > > >
> > > > > > > > ----
> > > > > > > > Tip: If the failing expression is known to legally refer to
> > > > something
> > > > > > > > that's sometimes null or missing, either specify a default
> > value
> > > > like
> > > > > > > > myOptionalVar!myDefault, or use <#if
> > > > > > > > myOptionalVar??>when-present<#else>when-missing</#if>.
> > > (These
> > > > > > only
> > > > > > > > cover the last step of the expression; to cover the whole
> > > > expression,
> > > > > > use
> > > > > > > > parenthesis: (myOptionalVar.foo)!myDefault,
> > (myOptionalVar.foo)??
> > > > > > > > ----
> > > > > > > >
> > > > > > > > ----
> > > > > > > > FTL stack trace ("~" means nesting-related):
> > > > > > > > - Failed at: #assign itemValue = struts.getText(va... [in
> > > template
> > > > > > > > "template/simple/select.ftl" at line 75, column 15]
> > > > > > > > - Reached through: @s.iterator value="parameters.list" [in
> > > template
> > > > > > > > "template/simple/select.ftl" at line 57, column 1]
> > > > > > > > - Reached through: #include "/${parameters.templateDir}/...
> [in
> > > > > > template
> > > > > > > > "template/bootstrap/select.ftl" at line 22, column 1]
> > > > > > > >
> > > > > > > > [image: image.png]
> > > > > > > > --
> > > > > > > > Naren
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > --
> > > > > > Naren
> > > > > >
> > > > >
> > > > --
> > > > Naren
> > > >
> > >
> >
> >
> > --
> > Naren
> >
>