You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by mr...@apache.org on 2026/08/13 12:35:31 UTC
(roller) branch fix-media-file-link-markup created (now d737206da)
This is an automated email from the ASF dual-hosted git repository.
mraible pushed a change to branch fix-media-file-link-markup
in repository https://gitbox.apache.org/repos/asf/roller.git
at d737206da Use double-quoted attributes in the media file links inserted into new entries
This branch includes the following new commits:
new d737206da Use double-quoted attributes in the media file links inserted into new entries
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(roller) 01/01: Use double-quoted attributes in the media file links inserted into new entries
Posted by mr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mraible pushed a commit to branch fix-media-file-link-markup
in repository https://gitbox.apache.org/repos/asf/roller.git
commit d737206da0a7d2f93bc1c9d06f4192b05263023b
Author: Matt Raible <ma...@raibledesigns.com>
AuthorDate: Thu Aug 13 06:35:22 2026 -0600
Use double-quoted attributes in the media file links inserted into new entries
The "create a post from your uploaded files" flow built its image and enclosure markup with single-quoted attributes and an invalid closing </img> tag, and the resulting image did not render after publishing. The media chooser on the entry editor already inserts the same link with double quotes and a self-closing img tag, and that form works, so this flow now matches it. Reported by Greg Huber on dev@roller.
---
.../ui/struts2/editor/EntryAddWithMediaFile.java | 330 ++++++++---------
logs/roller.log | 409 +++++++++++++++++++++
2 files changed, 574 insertions(+), 165 deletions(-)
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java
index 40c67e39b..f883e8736 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java
@@ -1,165 +1,165 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. The ASF licenses this file to You
- * under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License. For additional information regarding
- * copyright in this work, please see the NOTICE file in the top level
- * directory of this distribution.
- */
-package org.apache.roller.weblogger.ui.struts2.editor;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.roller.weblogger.business.MediaFileManager;
-import org.apache.roller.weblogger.business.WebloggerFactory;
-import org.apache.roller.weblogger.pojos.MediaFile;
-import org.apache.struts2.convention.annotation.AllowedMethods;
-import org.apache.struts2.interceptor.validation.SkipValidation;
-
-/**
- * Prepares creation of a new weblog entry with an embedded pointer to a media file.
- */
-@SuppressWarnings("serial")
-// TODO: make this work @AllowedMethods({"execute"})
-public class EntryAddWithMediaFile extends MediaFileBase {
-
- private static Log log = LogFactory.getLog(EntryAddWithMediaFile.class);
-
- // bean for managing form data
- private EntryBean bean = new EntryBean();
-
- private String weblog = null;
- // used by MediaFileView.jsp: multiple images and optional enclosure URL to create a blog post
- private String[] selectedImages = null;
- // used by MediaFileView.jsp: single image to create a blog post
- private String selectedImage = null;
-
-
- public EntryAddWithMediaFile() {
- this.actionName = "entryAdd";
- this.desiredMenu = "editor";
- this.pageTitle = "weblogEdit.title.newEntry";
- }
-
- /**
- * Prepare bean for creating a new weblog entry with a link to a media file.
- * @return String The result of the action.
- */
- @SkipValidation
- @Override
- public String execute() {
- MediaFileManager manager =
- WebloggerFactory.getWeblogger().getMediaFileManager();
- try {
-
- if (StringUtils.isNotEmpty(selectedImage) && selectedImages == null) {
- selectedImages = new String[1];
- selectedImages[0] = selectedImage;
- }
-
- StringBuilder sb = new StringBuilder();
-
- if (selectedImages != null) {
- for (String image : selectedImages) {
- MediaFile mediaFile = manager.getMediaFile(image);
- String link;
-
- if (mediaFile.isImageFile()) {
- link = "<p>" + mediaFile.getName() + "</p>";
- link += "<a href='<url>'><img src='<urlt>' alt='<name>' width='<width>' height='<height>'></img></a>";
- link = link.replace("<url>", mediaFile.getPermalink())
- .replace("<urlt>", mediaFile.getThumbnailURL())
- .replace("<name>", mediaFile.getName())
- .replace("<width>", ""+mediaFile.getThumbnailWidth())
- .replace("<height>", ""+mediaFile.getThumbnailHeight());
- } else {
- link = "<a href='<url>'><name></a> (<size> bytes, <type>)";
- link = link.replace("<url>", mediaFile.getPermalink())
- .replace("<name>", mediaFile.getName())
- .replace("<size>",""+mediaFile.getLength())
- .replace("<type>",mediaFile.getContentType());
- }
- sb.append(link);
- }
- }
-
- if (!StringUtils.isEmpty(bean.getEnclosureURL())) {
- sb.append("<p>")
- .append(getText("mediaFileEdit.includesEnclosure"))
- .append("<br />")
- .append("<a href='" + bean.getEnclosureURL() + "'>")
- .append(bean.getEnclosureURL())
- .append("</a></p>");
- }
-
- bean.setText(sb.toString());
-
- } catch (Exception e) {
- log.error("Error while constructing media file link for new entry", e);
- }
- return SUCCESS;
- }
-
- public EntryBean getBean() {
- return bean;
- }
-
- public void setBean(EntryBean bean) {
- this.bean = bean;
- }
-
- /**
- * @return the selectedImages
- */
- public String[] getSelectedImages() {
- return selectedImages;
- }
-
- /**
- * @param selectedImages the selectedImages to set
- */
- public void setSelectedImages(String[] selectedImages) {
- this.selectedImages = selectedImages;
- }
-
- /**
- * @return the weblog
- */
- @Override
- public String getWeblog() {
- return weblog;
- }
-
- /**
- * @param weblog the weblog to set
- */
- @Override
- public void setWeblog(String weblog) {
- this.weblog = weblog;
- }
-
- /**
- * @return the selectedImage
- */
- public String getSelectedImage() {
- return selectedImage;
- }
-
- /**
- * @param selectedImage the selectedImage to set
- */
- public void setSelectedImage(String selectedImage) {
- this.selectedImage = selectedImage;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.roller.weblogger.ui.struts2.editor;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.weblogger.business.MediaFileManager;
+import org.apache.roller.weblogger.business.WebloggerFactory;
+import org.apache.roller.weblogger.pojos.MediaFile;
+import org.apache.struts2.convention.annotation.AllowedMethods;
+import org.apache.struts2.interceptor.validation.SkipValidation;
+
+/**
+ * Prepares creation of a new weblog entry with an embedded pointer to a media file.
+ */
+@SuppressWarnings("serial")
+// TODO: make this work @AllowedMethods({"execute"})
+public class EntryAddWithMediaFile extends MediaFileBase {
+
+ private static Log log = LogFactory.getLog(EntryAddWithMediaFile.class);
+
+ // bean for managing form data
+ private EntryBean bean = new EntryBean();
+
+ private String weblog = null;
+ // used by MediaFileView.jsp: multiple images and optional enclosure URL to create a blog post
+ private String[] selectedImages = null;
+ // used by MediaFileView.jsp: single image to create a blog post
+ private String selectedImage = null;
+
+
+ public EntryAddWithMediaFile() {
+ this.actionName = "entryAdd";
+ this.desiredMenu = "editor";
+ this.pageTitle = "weblogEdit.title.newEntry";
+ }
+
+ /**
+ * Prepare bean for creating a new weblog entry with a link to a media file.
+ * @return String The result of the action.
+ */
+ @SkipValidation
+ @Override
+ public String execute() {
+ MediaFileManager manager =
+ WebloggerFactory.getWeblogger().getMediaFileManager();
+ try {
+
+ if (StringUtils.isNotEmpty(selectedImage) && selectedImages == null) {
+ selectedImages = new String[1];
+ selectedImages[0] = selectedImage;
+ }
+
+ StringBuilder sb = new StringBuilder();
+
+ if (selectedImages != null) {
+ for (String image : selectedImages) {
+ MediaFile mediaFile = manager.getMediaFile(image);
+ String link;
+
+ if (mediaFile.isImageFile()) {
+ link = "<p>" + mediaFile.getName() + "</p>";
+ link += "<a href=\"<url>\"><img src=\"<urlt>\" alt=\"<name>\" width=\"<width>\" height=\"<height>\" /></a>";
+ link = link.replace("<url>", mediaFile.getPermalink())
+ .replace("<urlt>", mediaFile.getThumbnailURL())
+ .replace("<name>", mediaFile.getName())
+ .replace("<width>", ""+mediaFile.getThumbnailWidth())
+ .replace("<height>", ""+mediaFile.getThumbnailHeight());
+ } else {
+ link = "<a href=\"<url>\"><name></a> (<size> bytes, <type>)";
+ link = link.replace("<url>", mediaFile.getPermalink())
+ .replace("<name>", mediaFile.getName())
+ .replace("<size>",""+mediaFile.getLength())
+ .replace("<type>",mediaFile.getContentType());
+ }
+ sb.append(link);
+ }
+ }
+
+ if (!StringUtils.isEmpty(bean.getEnclosureURL())) {
+ sb.append("<p>")
+ .append(getText("mediaFileEdit.includesEnclosure"))
+ .append("<br />")
+ .append("<a href=\"" + bean.getEnclosureURL() + "\">")
+ .append(bean.getEnclosureURL())
+ .append("</a></p>");
+ }
+
+ bean.setText(sb.toString());
+
+ } catch (Exception e) {
+ log.error("Error while constructing media file link for new entry", e);
+ }
+ return SUCCESS;
+ }
+
+ public EntryBean getBean() {
+ return bean;
+ }
+
+ public void setBean(EntryBean bean) {
+ this.bean = bean;
+ }
+
+ /**
+ * @return the selectedImages
+ */
+ public String[] getSelectedImages() {
+ return selectedImages;
+ }
+
+ /**
+ * @param selectedImages the selectedImages to set
+ */
+ public void setSelectedImages(String[] selectedImages) {
+ this.selectedImages = selectedImages;
+ }
+
+ /**
+ * @return the weblog
+ */
+ @Override
+ public String getWeblog() {
+ return weblog;
+ }
+
+ /**
+ * @param weblog the weblog to set
+ */
+ @Override
+ public void setWeblog(String weblog) {
+ this.weblog = weblog;
+ }
+
+ /**
+ * @return the selectedImage
+ */
+ public String getSelectedImage() {
+ return selectedImage;
+ }
+
+ /**
+ * @param selectedImage the selectedImage to set
+ */
+ public void setSelectedImage(String selectedImage) {
+ this.selectedImage = selectedImage;
+ }
+
+}
diff --git a/logs/roller.log b/logs/roller.log
new file mode 100644
index 000000000..4c1e9b6b9
--- /dev/null
+++ b/logs/roller.log
@@ -0,0 +1,409 @@
+INFO 2026-08-12 08:47:12 [main] ContextLoader - Root WebApplicationContext: initialization started
+INFO 2026-08-12 08:47:13 [main] SpringSecurityCoreVersion - You are running with Spring Security Core 5.8.14
+INFO 2026-08-12 08:47:13 [main] SecurityNamespaceHandler - Spring Security 'config' module version is 5.8.14
+INFO 2026-08-12 08:47:13 [main] HttpSecurityBeanDefinitionParser - Checking sorted filter chain: [Root bean: class [org.springframework.security.web.session.DisableEncodeUrlFilter]; scope=; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 100, Root bean: class [org.springframework.security.web.context.SecurityContextPersistenceFilter] [...]
+INFO 2026-08-12 08:47:13 [main] DefaultSecurityFilterChain - Will not secure Ant [pattern='/images/**']
+INFO 2026-08-12 08:47:13 [main] DefaultSecurityFilterChain - Will not secure Ant [pattern='/scripts/**']
+INFO 2026-08-12 08:47:13 [main] DefaultSecurityFilterChain - Will not secure Ant [pattern='/styles/**']
+WARN 2026-08-12 08:47:13 [main] RealmVerifier - RP discovery / realm validation disabled;
+INFO 2026-08-12 08:47:13 [main] DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@5276330a, org.springframework.security.web.context.SecurityContextPersistenceFilter@221961f2, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@541d8a9e, org.springframework.security.web.header.HeaderWriterFilter@51c0346d, org.springframework.security.web.authentication.UsernamePasswordAuthenticat [...]
+INFO 2026-08-12 08:47:13 [main] DefaultFilterChainValidator - Checking whether login URL '/roller-ui/login.rol' is accessible with your configuration
+INFO 2026-08-12 08:47:13 [main] ContextLoader - Root WebApplicationContext initialized in 266 ms
+INFO 2026-08-12 08:47:13 [main] DatabaseProvider - SUCCESS: Got parameters. Using configuration type JDBC_PROPERTIES
+INFO 2026-08-12 08:47:13 [main] DatabaseProvider - -- Using JDBC driver class: org.apache.derby.jdbc.ClientDriver
+INFO 2026-08-12 08:47:13 [main] DatabaseProvider - -- Using JDBC connection URL: jdbc:derby://localhost:4224/memory:rollerdb;create=true
+INFO 2026-08-12 08:47:13 [main] DatabaseProvider - -- Using JDBC username: app
+INFO 2026-08-12 08:47:13 [main] DatabaseProvider - -- Using JDBC password: [hidden]
+INFO 2026-08-12 08:47:13 [main] DatabaseProvider - SUCCESS: loaded JDBC driver class [org.apache.derby.jdbc.ClientDriver]
+WARN 2026-08-12 08:47:13 [main] WebloggerStartup - Failed to setup mail provider, continuing anyways.
+Reason: ERROR connecting to mail server
+INFO 2026-08-12 08:47:13 [main] WebloggerStartup - The cause of setting up mail provider error was:
+org.apache.roller.weblogger.business.startup.StartupException: ERROR connecting to mail server
+ at org.apache.roller.weblogger.business.MailProvider.<init>(MailProvider.java:99) ~[classes/:?]
+ at org.apache.roller.weblogger.business.startup.WebloggerStartup.prepare(WebloggerStartup.java:177) [classes/:?]
+ at org.apache.roller.weblogger.ui.core.RollerContext.contextInitialized(RollerContext.java:154) [classes/:?]
+ at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1049) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:624) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:984) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:740) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304) [jetty-webapp-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:901) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532) [jetty-webapp-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.maven.plugin.MavenWebAppContext.doStart(MavenWebAppContext.java:294) [jetty-maven-plugin-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.Server.start(Server.java:470) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.Server.doStart(Server.java:415) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.maven.plugin.JettyEmbedder.doStart(JettyEmbedder.java:224) [jetty-maven-plugin-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.maven.plugin.JettyRunMojo.startJettyEmbedded(JettyRunMojo.java:97) [jetty-maven-plugin-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.maven.plugin.AbstractWebAppMojo.startJetty(AbstractWebAppMojo.java:441) [jetty-maven-plugin-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.maven.plugin.AbstractWebAppMojo.execute(AbstractWebAppMojo.java:419) [jetty-maven-plugin-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:85) [jetty-maven-plugin-10.0.24.jar:10.0.24]
+ at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101) [maven-core-3.9.8.jar:3.9.8]
+ at org.apache.maven.cli.MavenCli.execute(MavenCli.java:903) [maven-embedder-3.9.8.jar:3.9.8]
+ at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:280) [maven-embedder-3.9.8.jar:3.9.8]
+ at org.apache.maven.cli.MavenCli.main(MavenCli.java:203) [maven-embedder-3.9.8.jar:3.9.8]
+ at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
+ at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
+ at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
+ at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:255) [plexus-classworlds-2.8.0.jar:?]
+ at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:201) [plexus-classworlds-2.8.0.jar:?]
+ at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:361) [plexus-classworlds-2.8.0.jar:?]
+ at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314) [plexus-classworlds-2.8.0.jar:?]
+INFO 2026-08-12 08:47:13 [main] RollerContext -
+--------------------------------------------------------------
+Roller Weblogger startup INCOMPLETE, user interaction required
+--------------------------------------------------------------
+INFO 2026-08-12 08:47:13 [main] RollerContext - Remember Me enabled: false
+WARN 2026-08-12 08:47:13 [main] RollerContext - New passwords are stored in plain text!
+INFO 2026-08-12 08:47:13 [main] RollerContext - Password Encryption Algorithm set to 'noop'
+INFO 2026-08-12 08:47:13 [main] RollerContext - Initializing Velocity
+INFO 2026-08-12 08:47:13 [main] StrutsTilesListener - Starting Struts Tiles 3 integration ...
+INFO 2026-08-12 08:47:13 [main] TilesAccess - Publishing TilesContext for context: org.apache.struts2.tiles.StrutsWildcardServletApplicationContext
+INFO 2026-08-12 08:47:13 [main] StrutsSpringObjectFactory - Initializing Struts-Spring integration...
+INFO 2026-08-12 08:47:13 [main] SpringObjectFactory - Setting autowire strategy to name
+INFO 2026-08-12 08:47:13 [main] StrutsSpringObjectFactory - ... initialized Struts-Spring integration successfully
+WARN 2026-08-12 08:47:13 [main] DefaultExcludedPatternsChecker - Replacing excluded patterns [[(^|\%\{)((#?)(top(\.|\['|\[")|\[\d\]\.)?)(dojo|struts|session|request|response|application|servlet(Request|Response|Context)|parameters|context|_memberAccess)(\.|\[).*, .*(^|\.|\[|\'|"|get)class(\(\.|\[|\'|").*]] with [[^method:.*, ^action:.*]], be aware that this affects all instances and safety of your application!
+WARN 2026-08-12 08:47:13 [main] PackageBasedActionConfigBuilder - The includeJars pattern [false] did not match any jars in the classpath
+INFO 2026-08-12 08:47:13 [main] RequestMappingFilter - Request mapping filter initialized, 1 mappers configured.
+INFO 2026-08-12 08:47:13 [main] RequestMappingFilter - [class org.apache.roller.weblogger.ui.rendering.WeblogRequestMapper]
+INFO 2026-08-12 08:47:13 [main] IPBanFilter - INIT IPBanFilter
+INFO 2026-08-12 08:47:13 [main] WebjarsServlet - The webjars-locator-core library is not present, WebjarsServlet will not try to resolve the version of requested WebJar assets (for the version agnostic way of working)
+INFO 2026-08-12 08:47:13 [main] WebjarsServlet - WebjarsServlet initialization completed
+INFO 2026-08-12 08:47:13 [main] FeedServlet - Initializing FeedServlet
+INFO 2026-08-12 08:47:13 [main] WeblogFeedCache - {size=200, id=cache.weblogfeed, enabled=false, timeout=3600}
+WARN 2026-08-12 08:47:13 [main] WeblogFeedCache - Caching has been DISABLED
+INFO 2026-08-12 08:47:13 [main] SiteWideCache - {size=50, id=cache.sitewide, enabled=false, timeout=1800}
+WARN 2026-08-12 08:47:13 [main] SiteWideCache - Caching has been DISABLED
+INFO 2026-08-12 08:47:13 [main] MediaResourceServlet - Initializing ResourceServlet
+INFO 2026-08-12 08:47:13 [main] PageServlet - Initializing PageServlet
+INFO 2026-08-12 08:47:13 [main] WeblogPageCache - {size=400, id=cache.weblogpage, enabled=false, timeout=3600}
+WARN 2026-08-12 08:47:13 [main] WeblogPageCache - Caching has been DISABLED
+INFO 2026-08-12 08:47:13 [main] PageServlet - Referrer spam check enabled = false
+INFO 2026-08-12 08:47:13 [main] ResourceServlet - Initializing ResourceServlet
+INFO 2026-08-12 08:47:13 [main] SearchServlet - Initializing SearchServlet
+INFO 2026-08-12 08:47:13 [main] CommentServlet - Initializing CommentServlet
+INFO 2026-08-12 08:47:13 [main] CommentValidationManager - Configured 3 CommentValidators
+INFO 2026-08-12 08:47:13 [main] CommentValidationManager - [class org.apache.roller.weblogger.ui.rendering.plugins.comments.BannedwordslistCommentValidator,class org.apache.roller.weblogger.ui.rendering.plugins.comments.ExcessLinksCommentValidator,class org.apache.roller.weblogger.ui.rendering.plugins.comments.ExcessSizeCommentValidator]
+INFO 2026-08-12 08:47:13 [main] CommentServlet - Comment Throttling DISABLED
+INFO 2026-08-12 08:47:13 [main] PlanetFeedServlet - Initializing PlanetRssServlet
+INFO 2026-08-12 08:47:13 [main] PlanetCache - Planet cache = {size=10, id=cache.planet, enabled=false, timeout=1800}
+WARN 2026-08-12 08:47:13 [main] PlanetCache - Caching has been DISABLED
+INFO 2026-08-12 08:47:13 [main] RSDServlet - Initializing RSDServlet
+INFO 2026-08-12 08:47:13 [main] CommentValidationManager - Configured 3 CommentValidators
+INFO 2026-08-12 08:47:13 [main] CommentValidationManager - [class org.apache.roller.weblogger.ui.rendering.plugins.comments.BannedwordslistCommentValidator,class org.apache.roller.weblogger.ui.rendering.plugins.comments.ExcessLinksCommentValidator,class org.apache.roller.weblogger.ui.rendering.plugins.comments.ExcessSizeCommentValidator]
+INFO 2026-08-12 08:47:13 [main] PreviewResourceServlet - Initializing PreviewResourceServlet
+INFO 2026-08-12 08:47:13 [main] PreviewServlet - Initializing PreviewServlet
+WARN 2026-08-12 08:47:16 [qtp580515543-44] StrutsLocalizedTextProvider - Trying to find text with null key!
+WARN 2026-08-12 08:48:27 [qtp580515543-57] StrutsLocalizedTextProvider - Trying to find text with null key!
+INFO 2026-08-12 08:48:27 [qtp580515543-60] SaltCache - {size=5000, id=cache.salt, timeout=3600, enabled=true}
+INFO 2026-08-12 08:48:27 [qtp580515543-60] CacheManager - Cache Manager Initialized.
+INFO 2026-08-12 08:48:27 [qtp580515543-60] CacheManager - Cache Factory = org.apache.roller.weblogger.util.cache.ExpiringLRUCacheFactoryImpl
+WARN 2026-08-12 08:49:06 [qtp580515543-48] StrutsLocalizedTextProvider - Trying to find text with null key!
+INFO 2026-08-12 08:49:19 [qtp580515543-57] DatabaseInstaller - Creating Roller Weblogger database tables.
+WARN 2026-08-12 08:49:19 [qtp580515543-57] StrutsLocalizedTextProvider - Trying to find text with null key!
+INFO 2026-08-12 08:49:28 [qtp580515543-47] Install - ENTERING
+INFO 2026-08-12 08:49:28 [qtp580515543-47] WebloggerFactory - Bootstrapping Roller Weblogger business tier
+INFO 2026-08-12 08:49:28 [qtp580515543-47] WebloggerFactory - Weblogger Provider = org.apache.roller.weblogger.business.GuiceWebloggerProvider
+INFO 2026-08-12 08:49:28 [qtp580515543-47] DatabaseProvider - SUCCESS: Got parameters. Using configuration type JDBC_PROPERTIES
+INFO 2026-08-12 08:49:28 [qtp580515543-47] DatabaseProvider - -- Using JDBC driver class: org.apache.derby.jdbc.ClientDriver
+INFO 2026-08-12 08:49:28 [qtp580515543-47] DatabaseProvider - -- Using JDBC connection URL: jdbc:derby://localhost:4224/memory:rollerdb;create=true
+INFO 2026-08-12 08:49:28 [qtp580515543-47] DatabaseProvider - -- Using JDBC username: app
+INFO 2026-08-12 08:49:28 [qtp580515543-47] DatabaseProvider - -- Using JDBC password: [hidden]
+INFO 2026-08-12 08:49:28 [qtp580515543-47] DatabaseProvider - SUCCESS: loaded JDBC driver class [org.apache.derby.jdbc.ClientDriver]
+INFO 2026-08-12 08:49:28 [qtp580515543-47] JPAPersistenceStrategy - hibernate.transaction.factory_class: org.hibernate.transaction.JDBCTransactionFactory
+INFO 2026-08-12 08:49:28 [qtp580515543-47] JPAPersistenceStrategy - eclipselink.logging.logger: org.eclipse.persistence.logging.slf4j.SLF4JLogger
+INFO 2026-08-12 08:49:28 [qtp580515543-47] JPAPersistenceStrategy - hibernate.dialect: org.hibernate.dialect.DerbyDialect
+INFO 2026-08-12 08:49:28 [qtp580515543-47] JPAPersistenceStrategy - eclipselink.persistence-context.flush-mode: auto
+INFO 2026-08-12 08:49:28 [qtp580515543-47] JPAPersistenceStrategy - hibernate.transaction.manager_lookup_class: org.hibernate.transaction.JBossTransactionManagerLookup
+INFO 2026-08-12 08:49:29 [qtp580515543-47] LuceneIndexManager - search enabled: true
+INFO 2026-08-12 08:49:29 [qtp580515543-47] LuceneIndexManager - index dir: /Users/mraible/dev/roller-master/app/target/work/search-index
+INFO 2026-08-12 08:49:29 [qtp580515543-47] PluginManagerImpl - Configured comment plugins
+INFO 2026-08-12 08:49:29 [qtp580515543-47] PluginManagerImpl - [class org.apache.roller.weblogger.business.plugins.comment.LinkMarkupPlugin,class org.apache.roller.weblogger.business.plugins.comment.AutoformatPlugin,class org.apache.roller.weblogger.business.plugins.comment.HTMLSubsetPlugin]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThreadManagerImpl - Instantiating Thread Manager
+INFO 2026-08-12 08:49:29 [qtp580515543-47] WebloggerFactory - Roller Weblogger business tier successfully bootstrapped
+INFO 2026-08-12 08:49:29 [qtp580515543-47] WebloggerFactory - Version: 6.1.5
+INFO 2026-08-12 08:49:29 [qtp580515543-47] WebloggerFactory - Revision: rdb3915af6f6f198cc8efed8da172f7c4acad157f
+INFO 2026-08-12 08:49:29 [qtp580515543-47] WebloggerImpl - Initializing Roller Weblogger business tier
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.name not yet in roller_properties database table, will store with default value of [Roller Site`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.shortName not yet in roller_properties database table, will store with default value of [Front Page`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.description not yet in roller_properties database table, will store with default value of [A default install of the Roller Weblogger open source blog server`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.frontpage.weblog.handle not yet in roller_properties database table, will store with default value of [`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.frontpage.weblog.aggregated not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.adminemail not yet in roller_properties database table, will store with default value of [`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.absoluteurl not yet in roller_properties database table, will store with default value of [`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property pings.suspendPingProcessing not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property users.registration.enabled not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property user.account.email.activation not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property users.registration.url not yet in roller_properties database table, will store with default value of [`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.allowUserWeblogCreation not yet in roller_properties database table, will store with default value of [true`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property users.editor.pages not yet in roller_properties database table, will store with default value of [editor-text.jsp,editor-summernote.jsp`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property webservices.enableXmlRpc not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property webservices.enableAtomPub not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property webservices.atomPubAuth not yet in roller_properties database table, will store with default value of [basic`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.pages.maxEntries not yet in roller_properties database table, will store with default value of [30`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.newsfeeds.defaultEntries not yet in roller_properties database table, will store with default value of [30`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.newsfeeds.styledFeeds not yet in roller_properties database table, will store with default value of [true`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property users.comments.enabled not yet in roller_properties database table, will store with default value of [true`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property comments.ignoreSpam.enabled not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property users.trackbacks.enabled not yet in roller_properties database table, will store with default value of [true`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property trackbacks.ignoreSpam.enabled not yet in roller_properties database table, will store with default value of [true`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property users.comments.htmlenabled not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property users.comments.plugins not yet in roller_properties database table, will store with default value of [HTMLSubset`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property users.comments.emailnotify not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property users.moderation.required not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property site.trackbackVerification.enabled not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property uploads.enabled not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property uploads.types.allowed not yet in roller_properties database table, will store with default value of [`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property uploads.types.forbid not yet in roller_properties database table, will store with default value of [exe`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property uploads.file.maxsize not yet in roller_properties database table, will store with default value of [2.00`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property uploads.dir.maxsize not yet in roller_properties database table, will store with default value of [20.00`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property users.themes.path not yet in roller_properties database table, will store with default value of [/themes`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property themes.customtheme.allowed not yet in roller_properties database table, will store with default value of [false`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property spam.bannedwordslist not yet in roller_properties database table, will store with default value of [`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property analytics.default.tracking.code not yet in roller_properties database table, will store with default value of [`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] JPAPropertiesManagerImpl - Property analytics.code.override.allowed not yet in roller_properties database table, will store with default value of [true`]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThemeManagerImpl - Loading themes from /Users/mraible/dev/roller-master/app/../app/src/main/webapp/themes...
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThemeManagerImpl - Loaded theme 'basic'
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThemeManagerImpl - Loaded theme 'basicmobile'
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThemeManagerImpl - Loaded theme 'gaurav'
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThemeManagerImpl - Loaded theme 'fauxcoly'
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThemeManagerImpl - Loaded theme 'frontpage'
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThemeManagerImpl - Successfully loaded 5 themes from disk.
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThreadManagerImpl - Initializing task: ScheduledEntriesTask
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThreadManagerImpl - Initializing task: ResetHitCountsTask
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThreadManagerImpl - Initializing task: PingQueueTask
+INFO 2026-08-12 08:49:29 [qtp580515543-47] ThreadManagerImpl - Initializing task: TestTask
+INFO 2026-08-12 08:49:29 [qtp580515543-47] LuceneIndexManager - Index was inconsistent. Rebuilding index in the background...
+INFO 2026-08-12 08:49:29 [qtp580515543-47] PingConfig - Creating common ping target 'Technorati' from configuration properties.
+INFO 2026-08-12 08:49:29 [qtp580515543-47] PingConfig - Creating common ping target 'Weblogs.com' from configuration properties.
+INFO 2026-08-12 08:49:29 [qtp580515543-47] PingConfig - Creating common ping target 'blo.gs' from configuration properties.
+INFO 2026-08-12 08:49:29 [qtp580515543-47] PingConfig - Creating common ping target 'IceRocket' from configuration properties.
+INFO 2026-08-12 08:49:29 [pool-3-thread-1] RebuildWebsiteIndexOperation - Completed rebuilding index for all users in '0.031' secs
+INFO 2026-08-12 08:49:29 [qtp580515543-47] WebloggerImpl - Roller Weblogger business tier successfully initialized
+INFO 2026-08-12 08:49:29 [qtp580515543-47] DatabaseProvider - SUCCESS: Got parameters. Using configuration type JDBC_PROPERTIES
+INFO 2026-08-12 08:49:29 [qtp580515543-47] DatabaseProvider - -- Using JDBC driver class: org.apache.derby.jdbc.ClientDriver
+INFO 2026-08-12 08:49:29 [qtp580515543-47] DatabaseProvider - -- Using JDBC connection URL: jdbc:derby://localhost:4224/memory:rollerdb;create=true
+INFO 2026-08-12 08:49:29 [qtp580515543-47] DatabaseProvider - -- Using JDBC username: app
+INFO 2026-08-12 08:49:29 [qtp580515543-47] DatabaseProvider - -- Using JDBC password: [hidden]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] DatabaseProvider - SUCCESS: loaded JDBC driver class [org.apache.derby.jdbc.ClientDriver]
+WARN 2026-08-12 08:49:29 [qtp580515543-47] WebloggerStartup - Failed to setup mail provider, continuing anyways.
+Reason: ERROR connecting to mail server
+INFO 2026-08-12 08:49:29 [qtp580515543-47] WebloggerStartup - The cause of setting up mail provider error was:
+org.apache.roller.weblogger.business.startup.StartupException: ERROR connecting to mail server
+ at org.apache.roller.weblogger.business.MailProvider.<init>(MailProvider.java:99) ~[classes/:?]
+ at org.apache.roller.weblogger.business.startup.WebloggerStartup.prepare(WebloggerStartup.java:177) [classes/:?]
+ at org.apache.roller.weblogger.ui.struts2.core.Install.bootstrap(Install.java:167) [classes/:?]
+ at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
+ at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
+ at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
+ at ognl.OgnlRuntime.invokeMethodInsideSandbox(OgnlRuntime.java:1266) [ognl-3.1.29.jar:?]
+ at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:1251) [ognl-3.1.29.jar:?]
+ at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1969) [ognl-3.1.29.jar:?]
+ at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68) [ognl-3.1.29.jar:?]
+ at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:98) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:90) [struts2-core-2.5.29.jar:2.5.29]
+ at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:2045) [ognl-3.1.29.jar:?]
+ at ognl.ASTMethod.getValueBody(ASTMethod.java:97) [ognl-3.1.29.jar:?]
+ at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212) [ognl-3.1.29.jar:?]
+ at ognl.SimpleNode.getValue(SimpleNode.java:258) [ognl-3.1.29.jar:?]
+ at ognl.Ognl.getValue(Ognl.java:537) [ognl-3.1.29.jar:?]
+ at ognl.Ognl.getValue(Ognl.java:501) [ognl-3.1.29.jar:?]
+ at com.opensymphony.xwork2.ognl.OgnlUtil$3.execute(OgnlUtil.java:492) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecuteMethod(OgnlUtil.java:544) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.ognl.OgnlUtil.callMethod(OgnlUtil.java:490) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:438) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:293) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:179) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:49) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.roller.weblogger.ui.struts2.util.UIActionPrepareInterceptor.doIntercept(UIActionPrepareInterceptor.java:55) [classes/:?]
+ at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.roller.weblogger.ui.struts2.util.UISecurityInterceptor.doIntercept(UISecurityInterceptor.java:123) [classes/:?]
+ at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.roller.weblogger.ui.struts2.util.UIActionInterceptor.doIntercept(UIActionInterceptor.java:89) [classes/:?]
+ at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:142) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:140) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:140) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:201) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:67) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:89) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:160) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:121) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:167) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:196) [struts2-core-2.5.29.jar:2.5.29]
+ at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:48) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:574) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79) [struts2-core-2.5.29.jar:2.5.29]
+ at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141) [struts2-core-2.5.29.jar:2.5.29]
+ at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.apache.roller.weblogger.ui.rendering.filters.RequestMappingFilter.doFilter(RequestMappingFilter.java:108) [classes/:?]
+ at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.apache.roller.weblogger.ui.core.filters.ValidateSaltFilter.doFilter(ValidateSaltFilter.java:84) [classes/:?]
+ at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.apache.roller.weblogger.ui.core.filters.LoadSaltFilter.doFilter(LoadSaltFilter.java:49) [classes/:?]
+ at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.apache.roller.weblogger.ui.core.filters.InitFilter.doFilter(InitFilter.java:82) [classes/:?]
+ at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.apache.roller.weblogger.ui.core.filters.PersistenceSessionFilter.doFilter(PersistenceSessionFilter.java:59) [classes/:?]
+ at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.apache.roller.weblogger.ui.core.filters.BootstrapFilter.doFilter(BootstrapFilter.java:68) [classes/:?]
+ at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:352) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:117) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:145) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:164) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.39.jar:5.3.39]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.39.jar:5.3.39]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:117) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.39.jar:5.3.39]
+ at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:225) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:190) [spring-security-web-5.8.14.jar:5.8.14]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) [spring-web-5.3.39.jar:5.3.39]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) [spring-web-5.3.39.jar:5.3.39]
+ at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.apache.roller.weblogger.ui.core.filters.SpringFirewallExceptionFilter.doFilter(SpringFirewallExceptionFilter.java:51) [classes/:?]
+ at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.apache.roller.weblogger.ui.core.filters.CharEncodingFilter.doFilter(CharEncodingFilter.java:86) [classes/:?]
+ at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170) [websocket-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:598) [jetty-security-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484) [jetty-servlet-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.Server.handle(Server.java:563) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287) [jetty-server-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314) [jetty-io-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) [jetty-io-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) [jetty-io-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194) [jetty-util-10.0.24.jar:10.0.24]
+ at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149) [jetty-util-10.0.24.jar:10.0.24]
+ at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
+INFO 2026-08-12 08:49:29 [qtp580515543-47] Install - EXITING - Bootstrap successful, forwarding to Roller
+WARN 2026-08-12 08:49:47 [qtp580515543-46] UIPluginManagerImpl - Default editor was not properly configured, picking one at random instead.
+INFO 2026-08-12 08:50:29 [qtp580515543-50] Dispatcher - Unable to find 'struts.multipart.saveDir' property setting. Defaulting to javax.servlet.context.tempdir
+WARN 2026-08-12 08:50:36 [qtp580515543-68] TextProviderHelper - The first TextProvider in the ValueStack (org.apache.roller.weblogger.ui.struts2.editor.Bookmarks) could not locate the message resource with key 'default'
+WARN 2026-08-12 08:50:36 [qtp580515543-68] TextProviderHelper - The default value expression 'default' was evaluated and did not match a property. The literal value 'default' will be used.
+INFO 2026-08-12 08:51:00 [JettyShutdownThread] TilesAccess - Removing TilesContext for context: org.apache.struts2.tiles.StrutsWildcardServletApplicationContext
+INFO 2026-08-12 08:51:00 [JettyShutdownThread] HitCountQueue - stopping worker HitCountQueueProcessor
+INFO 2026-08-12 08:51:00 [HitCountQueueProcessor] ContinuousWorkerThread - HitCountQueueProcessor Started.
+INFO 2026-08-12 08:51:00 [HitCountQueueProcessor] ContinuousWorkerThread - HitCountQueueProcessor Done.