You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by tj...@apache.org on 2020/11/20 20:24:32 UTC
[felix-dev] 02/02: FELIX-6361 - Avoid IllegalArgumentException for
calls to getLogger
This is an automated email from the ASF dual-hosted git repository.
tjwatson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git
commit 462bfe2b3a398b35ac495473c63e348003545248
Author: Thomas Watson <tj...@us.ibm.com>
AuthorDate: Fri Nov 20 09:15:23 2020 -0600
FELIX-6361 - Avoid IllegalArgumentException for calls to getLogger
---
.../org/apache/felix/scr/impl/logger/LogManager.java | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/logger/LogManager.java b/scr/src/main/java/org/apache/felix/scr/impl/logger/LogManager.java
index a5ccd34..027f4a6 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/logger/LogManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/logger/LogManager.java
@@ -109,10 +109,24 @@ class LogManager extends ServiceTracker<Object, Object> implements BundleListene
synchronized Object getLogger(LoggerFacade facade, Bundle bundle, String name)
{
if (factory == null)
+ {
return facade.logger = null;
+ }
else
- return facade.logger = ((LoggerFactory) factory).getLogger(bundle, name,
- Logger.class);
+ {
+ try
+ {
+ return facade.logger = ((LoggerFactory) factory).getLogger(bundle,
+ name, Logger.class);
+ }
+ catch (IllegalArgumentException e)
+ {
+ // The bundle probably got uninstalled or somehow unresolved,
+ // fallback to the SCR bundle's logger
+ return ((LoggerFactory) factory).getLogger(context.getBundle(), name,
+ Logger.class);
+ }
+ }
}
synchronized LogDomain remove(Bundle bundle)