This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git


The following commit(s) were added to refs/heads/master by this push:
     new e9abdf4913 FELIX-6752 : System information throws 
java.lang.ClassCastException
e9abdf4913 is described below

commit e9abdf49138eae6f095f1567d57de9086e3a5bfc
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Tue Feb 4 06:54:33 2025 +0100

    FELIX-6752 : System information throws java.lang.ClassCastException
---
 .../webconsole/internal/servlet/OsgiManager.java    | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
index d03786b762..1e3516def5 100644
--- 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
+++ 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
@@ -129,7 +129,7 @@ public class OsgiManager extends HttpServlet {
     static final String PROP_ENABLE_SECRET_HEURISTIC = 
"secret.heuristic.enabled";
 
     static final String PROP_HTTP_SERVICE_SELECTOR = "http.service.filter";
-    
+
     /** The framework shutdown timeout */
     public static final String PROP_SHUTDOWN_TIMEOUT = "shutdown.timeout";
 
@@ -203,10 +203,10 @@ public class OsgiManager extends HttpServlet {
 
     // not-null when the ServletContextHelper service is registered
     private volatile ServiceRegistration<ServletContextHelper> 
servletContextRegistration;
-    
+
     // not-null when the main servlet and the resources are registered
     private volatile ServiceRegistration<Servlet> servletRegistration;
-    
+
     // default configuration from framework properties
     private Map<String, Object> defaultConfiguration;
 
@@ -266,7 +266,7 @@ public class OsgiManager extends HttpServlet {
             ConfigurationUtil.getProperty( bundleContext, 
FRAMEWORK_SHUTDOWN_TIMEOUT, DEFAULT_SHUTDOWN_TIMEOUT ) );
         this.defaultConfiguration.put( PROP_RELOAD_TIMEOUT,
             ConfigurationUtil.getProperty( bundleContext, 
FRAMEWORK_RELOAD_TIMEOUT, DEFAULT_RELOAD_TIMEOUT ) );
-        
+
         // configure and start listening for configuration
         updateConfiguration(null);
 
@@ -821,7 +821,7 @@ public class OsgiManager extends HttpServlet {
                 
props.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_RESOURCE_PATTERN, "/res/*");
                 
props.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_RESOURCE_PREFIX, "/res");
 
-                this.servletRegistration = 
getBundleContext().registerService(Servlet.class, this, props);                
+                this.servletRegistration = 
getBundleContext().registerService(Servlet.class, this, props);
             }
         } catch (final Exception e) {
             Util.LOGGER.error("registerHttpWhiteboardServices: Problem setting 
up", e);
@@ -872,7 +872,16 @@ public class OsgiManager extends HttpServlet {
         if ( osgiConfig != null ) {
             for ( Enumeration<String> keys = osgiConfig.keys(); 
keys.hasMoreElements(); ) {
                 final String key = keys.nextElement();
-                config.put( key, osgiConfig.get( key ) );
+                final Object value = osgiConfig.get( key );
+                if (PROP_SHUTDOWN_TIMEOUT.equals(key) || 
PROP_RELOAD_TIMEOUT.equals(key)) {
+                    try {
+                        config.put(key, Integer.parseInt(value.toString()));
+                    } catch (final NumberFormatException nfe) {
+                        Util.LOGGER.warn("Ignoring invalid value for {}: {}", 
key, value);
+                    }
+                } else {
+                    config.put(key, value);
+                }
             }
         }
 

Reply via email to