diff options
author | Przemyslaw Szczepaniak <pszczepaniak@google.com> | 2017-01-19 14:15:57 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-01-19 14:15:57 +0000 |
commit | c5e1582007193a75d90603041f2ddc3822b20612 (patch) | |
tree | f50af4362bf0e50cb4805bd581009b487c184e06 | |
parent | b95d76c198a905cfc4087a27151519734032c007 (diff) | |
parent | 4b03edc41c8a1d3e188293c9e5d1be6257fabd08 (diff) | |
download | apache-harmony-c5e1582007193a75d90603041f2ddc3822b20612.tar.gz |
Merge "Track libcore java.util.logging update to ojdk8u60"
am: 4b03edc41c
Change-Id: I29147ae16e86c3d506c7f4e29b17d64683bccb09
2 files changed, 947 insertions, 20 deletions
diff --git a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java index 58f1e49..082a36d 100644 --- a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java +++ b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java @@ -617,16 +617,51 @@ public class LogManagerTest extends TestCase { mockManager.removePropertyChangeListener(null); } - public void testReset() throws SecurityException, IOException { + public void testLoggerLevelInitialized_explicit() throws SecurityException, IOException { // mock LogManager mockManager.readConfiguration(EnvironmentHelper.PropertiesToInputStream(props)); assertNotNull(mockManager.getProperty("handlers")); + + // Before the Android O (and before the openJdk8) the logger level + // value was unconditionally overwritten by a value taken from properties. + // Starting from Android O, the value is only set from properties if it wasn't + // initialized before. Logger foo = new MockLogger(FOO, null); assertNull(foo.getLevel()); assertEquals(0, foo.getHandlers().length); + // Explicit set before the .addLogger foo.setLevel(Level.ALL); foo.addHandler(new ConsoleHandler()); assertTrue(mockManager.addLogger(foo)); + assertEquals(Level.ALL, foo.getLevel()); + } + + public void testLoggerLevelInitialized() throws SecurityException, IOException { + // mock LogManager + mockManager.readConfiguration(EnvironmentHelper.PropertiesToInputStream(props)); + assertNotNull(mockManager.getProperty("handlers")); + + // Before the Android O (and before the openJdk8) the logger level + // value was unconditionally overwritten by a value taken from properties. + // Starting from Android O, the value is only set from properties if it wasn't + // initialized before. + Logger foo = new MockLogger(FOO, null); + assertNull(foo.getLevel()); + assertEquals(0, foo.getHandlers().length); + foo.addHandler(new ConsoleHandler()); + assertTrue(mockManager.addLogger(foo)); + assertEquals(Level.WARNING, foo.getLevel()); + } + + public void testReset() throws SecurityException, IOException { + // mock LogManager + mockManager.readConfiguration(EnvironmentHelper.PropertiesToInputStream(props)); + assertNotNull(mockManager.getProperty("handlers")); + Logger foo = new MockLogger(FOO, null); + assertNull(foo.getLevel()); + assertEquals(0, foo.getHandlers().length); + foo.addHandler(new ConsoleHandler()); + assertTrue(mockManager.addLogger(foo)); assertEquals(Level.WARNING, foo.getLevel()); assertEquals(2, foo.getHandlers().length); diff --git a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LoggerTest.java b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LoggerTest.java index 997431f..bb22d29 100644 --- a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LoggerTest.java +++ b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LoggerTest.java @@ -23,10 +23,12 @@ import org.apache.harmony.logging.tests.java.util.logging.util.EnvironmentHelper import java.io.InputStream; import java.util.Arrays; +import java.util.Enumeration; import java.util.Locale; import java.util.MissingResourceException; import java.util.Properties; import java.util.ResourceBundle; +import java.util.function.Supplier; import java.util.logging.Filter; import java.util.logging.Handler; import java.util.logging.Level; @@ -1320,7 +1322,7 @@ public class LoggerTest extends TestCase { child.setParent(parent); child.setLevel(Level.CONFIG); - child.config(null); + child.config((String)null); LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); assertTrue(CallVerificationStack.getInstance().empty()); assertSame(r.getLoggerName(), child.getName()); @@ -1334,11 +1336,70 @@ public class LoggerTest extends TestCase { assertSame(r.getThrown(), null); this.sharedLogger.setLevel(Level.INFO); - this.sharedLogger.config(null); + this.sharedLogger.config((String)null); assertTrue(CallVerificationStack.getInstance().empty()); } /* + * Test config(Supplier<String>) with normal values. + */ + public void testConfig_Supplier() { + this.sharedLogger.setLevel(Level.CONFIG); + this.sharedLogger.config(() -> "config msg"); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), "config msg"); + assertSame(r.getResourceBundleName(), this.sharedLogger + .getResourceBundleName()); + assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.CONFIG); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.INFO); + this.sharedLogger.config(() -> "config again"); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + + + /* + * Test config(Supplier<String>) with null values. + */ + public void testConfig_Supplier_Null() { + Logger child = new MockLogger("childLogger", null); + Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); + child.addHandler(new MockHandler()); + child.setParent(parent); + + child.setLevel(Level.CONFIG); + child.config(() -> (String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), child.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), parent.getResourceBundleName()); + assertSame(r.getResourceBundle(), parent.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.CONFIG); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.INFO); + this.sharedLogger.config(() -> (String)null); + assertTrue(CallVerificationStack.getInstance().empty()); + + try { + child.config((Supplier<String>) null); + fail(); + } catch(NullPointerException expected) {} + } + + /* * Test fine(String) with normal values. */ public void testFine_Normal() { @@ -1363,6 +1424,30 @@ public class LoggerTest extends TestCase { } /* + * Test fine(Supplier<String>) with normal values. + */ + public void testFine_Supplier() { + this.sharedLogger.setLevel(Level.FINE); + this.sharedLogger.fine(() -> "fine msg"); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle()); + assertEquals(r.getMessage(), "fine msg"); + assertSame(r.getResourceBundleName(), this.sharedLogger + .getResourceBundleName()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.FINE); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.CONFIG); + this.sharedLogger.fine(() -> "fine again"); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + /* * Test fine(String) with null values. */ public void testFine_Null() { @@ -1370,9 +1455,35 @@ public class LoggerTest extends TestCase { Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); child.addHandler(new MockHandler()); child.setParent(parent); + child.setLevel(Level.FINE); + child.fine((String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), child.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), parent.getResourceBundleName()); + assertSame(r.getResourceBundle(), parent.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.FINE); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + this.sharedLogger.setLevel(Level.CONFIG); + this.sharedLogger.fine((String)null); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + /* + * Test fine(Supplier<String>) with null values. + */ + public void testFine_Supplier_Null() { + Logger child = new MockLogger("childLogger", null); + Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); + child.addHandler(new MockHandler()); + child.setParent(parent); child.setLevel(Level.FINE); - child.fine(null); + child.fine(() -> (String)null); LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); assertTrue(CallVerificationStack.getInstance().empty()); assertSame(r.getLoggerName(), child.getName()); @@ -1386,8 +1497,13 @@ public class LoggerTest extends TestCase { assertSame(r.getThrown(), null); this.sharedLogger.setLevel(Level.CONFIG); - this.sharedLogger.fine(null); + this.sharedLogger.fine(() -> (String)null); assertTrue(CallVerificationStack.getInstance().empty()); + + try { + child.fine((Supplier<String>) null); + fail(); + } catch(NullPointerException expected) {} } /* @@ -1415,6 +1531,31 @@ public class LoggerTest extends TestCase { } /* + * Test finer(Supplier<String>) with normal values. + */ + public void testFiner_Supplier() { + this.sharedLogger.setLevel(Level.FINER); + this.sharedLogger.finer(() -> "finer msg"); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), "finer msg"); + assertSame(r.getResourceBundleName(), this.sharedLogger + .getResourceBundleName()); + assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.FINER); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.FINE); + this.sharedLogger.finer(() -> "finer again"); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + + /* * Test finer(String) with null values. */ public void testFiner_Null() { @@ -1424,7 +1565,7 @@ public class LoggerTest extends TestCase { child.setParent(parent); child.setLevel(Level.FINER); - child.finer(null); + child.finer((String)null); LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); assertTrue(CallVerificationStack.getInstance().empty()); assertSame(r.getLoggerName(), child.getName()); @@ -1438,11 +1579,44 @@ public class LoggerTest extends TestCase { assertSame(r.getThrown(), null); this.sharedLogger.setLevel(Level.FINE); - this.sharedLogger.finer(null); + this.sharedLogger.finer((String)null); assertTrue(CallVerificationStack.getInstance().empty()); } /* + * Test finer(Supplier<String>) with null values. + */ + public void testFiner_Supplier_Null() { + Logger child = new MockLogger("childLogger", null); + Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); + child.addHandler(new MockHandler()); + child.setParent(parent); + + child.setLevel(Level.FINER); + child.finer(() -> (String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), child.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), parent.getResourceBundleName()); + assertSame(r.getResourceBundle(), parent.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.FINER); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.FINE); + this.sharedLogger.finer(() -> (String)null); + assertTrue(CallVerificationStack.getInstance().empty()); + + try { + child.finer((Supplier<String>) null); + fail(); + } catch(NullPointerException expected) {} + } + + /* * Test finest(String) with normal values. */ public void testFinest_Normal() { @@ -1467,6 +1641,31 @@ public class LoggerTest extends TestCase { } /* + * Test finest(Supplier<String>) with normal values. + */ + public void testFinest_Supplier() { + this.sharedLogger.setLevel(Level.FINEST); + this.sharedLogger.finest(() -> "finest msg"); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), "finest msg"); + assertSame(r.getResourceBundleName(), this.sharedLogger + .getResourceBundleName()); + assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.FINEST); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.FINER); + this.sharedLogger.finest(() -> "finest again"); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + + /* * Test finest(String) with null values. */ public void testFinest_Null() { @@ -1476,7 +1675,7 @@ public class LoggerTest extends TestCase { child.setParent(parent); child.setLevel(Level.FINEST); - child.finest(null); + child.finest((String)null); LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); assertTrue(CallVerificationStack.getInstance().empty()); assertSame(r.getLoggerName(), child.getName()); @@ -1490,11 +1689,44 @@ public class LoggerTest extends TestCase { assertSame(r.getThrown(), null); this.sharedLogger.setLevel(Level.FINER); - this.sharedLogger.finest(null); + this.sharedLogger.finest((String)null); assertTrue(CallVerificationStack.getInstance().empty()); } /* + * Test finest(Supplier<String>) with null values. + */ + public void testFinest_Supplier_Null() { + Logger child = new MockLogger("childLogger", null); + Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); + child.addHandler(new MockHandler()); + child.setParent(parent); + + child.setLevel(Level.FINEST); + child.finest(() -> (String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), child.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), parent.getResourceBundleName()); + assertSame(r.getResourceBundle(), parent.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.FINEST); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.FINER); + this.sharedLogger.finest(() -> (String)null); + assertTrue(CallVerificationStack.getInstance().empty()); + + try { + child.finest((Supplier<String>) null); + fail(); + } catch(NullPointerException expected) {} + } + + /* * Test info(String) with normal values. */ public void testInfo_Normal() { @@ -1519,6 +1751,30 @@ public class LoggerTest extends TestCase { } /* + * Test info(Supplier<String>) with normal values. + */ + public void testInfo_Supplier() { + this.sharedLogger.setLevel(Level.INFO); + this.sharedLogger.info(() -> "info msg"); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), "info msg"); + assertSame(r.getResourceBundleName(), this.sharedLogger + .getResourceBundleName()); + assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.WARNING); + this.sharedLogger.info(() -> "info again"); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + /* * Test info(String) with null values. */ public void testInfo_Null() { @@ -1528,7 +1784,7 @@ public class LoggerTest extends TestCase { child.setParent(parent); child.setLevel(Level.INFO); - child.info(null); + child.info((String)null); LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); assertTrue(CallVerificationStack.getInstance().empty()); assertSame(r.getLoggerName(), child.getName()); @@ -1542,11 +1798,44 @@ public class LoggerTest extends TestCase { assertSame(r.getThrown(), null); this.sharedLogger.setLevel(Level.WARNING); - this.sharedLogger.info(null); + this.sharedLogger.info((String)null); assertTrue(CallVerificationStack.getInstance().empty()); } /* + * Test info(Supplier<String>) with null values. + */ + public void testInfo_Supplier_Null() { + Logger child = new MockLogger("childLogger", null); + Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); + child.addHandler(new MockHandler()); + child.setParent(parent); + + child.setLevel(Level.INFO); + child.info(() -> (String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), child.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), parent.getResourceBundleName()); + assertSame(r.getResourceBundle(), parent.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.WARNING); + this.sharedLogger.info(() -> (String)null); + assertTrue(CallVerificationStack.getInstance().empty()); + + try { + child.info((Supplier<String>) null); + fail(); + } catch(NullPointerException expected) {} + } + + /* * Test warning(String) with normal values. */ public void testWarning_Normal() { @@ -1571,6 +1860,30 @@ public class LoggerTest extends TestCase { } /* + * Test warning(Supplier<String>) with normal values. + */ + public void testWarning_Supplier() { + this.sharedLogger.setLevel(Level.WARNING); + this.sharedLogger.warning(() -> "warning msg"); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), "warning msg"); + assertSame(r.getResourceBundleName(), this.sharedLogger + .getResourceBundleName()); + assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.WARNING); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.SEVERE); + this.sharedLogger.warning(() -> "warning again"); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + /* * Test warning(String) with null values. */ public void testWarning_Null() { @@ -1580,7 +1893,7 @@ public class LoggerTest extends TestCase { child.setParent(parent); child.setLevel(Level.WARNING); - child.warning(null); + child.warning((String)null); LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); assertTrue(CallVerificationStack.getInstance().empty()); assertSame(r.getLoggerName(), child.getName()); @@ -1594,11 +1907,44 @@ public class LoggerTest extends TestCase { assertSame(r.getThrown(), null); this.sharedLogger.setLevel(Level.SEVERE); - this.sharedLogger.warning(null); + this.sharedLogger.warning((String)null); assertTrue(CallVerificationStack.getInstance().empty()); } /* + * Test warning(Supplier<String>) with null values. + */ + public void testWarning_Supplier_Null() { + Logger child = new MockLogger("childLogger", null); + Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); + child.addHandler(new MockHandler()); + child.setParent(parent); + + child.setLevel(Level.WARNING); + child.warning(() -> (String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), child.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), parent.getResourceBundleName()); + assertSame(r.getResourceBundle(), parent.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.WARNING); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.SEVERE); + this.sharedLogger.warning(() -> (String)null); + assertTrue(CallVerificationStack.getInstance().empty()); + + try { + child.warning((Supplier<String>) null); + fail(); + } catch(NullPointerException expected) {} + } + + /* * Test severe(String) with normal values. */ public void testSevere_Normal() { @@ -1623,6 +1969,30 @@ public class LoggerTest extends TestCase { } /* + * Test severe(Supplier<String>) with normal values. + */ + public void testSevere_Supplier() { + this.sharedLogger.setLevel(Level.SEVERE); + this.sharedLogger.severe(() -> "severe msg"); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), "severe msg"); + assertSame(r.getResourceBundleName(), this.sharedLogger + .getResourceBundleName()); + assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.SEVERE); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.OFF); + this.sharedLogger.severe(() -> "severe again"); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + /* * Test severe(String) with null values. */ public void testSevere_Null() { @@ -1632,7 +2002,35 @@ public class LoggerTest extends TestCase { child.setParent(parent); child.setLevel(Level.SEVERE); - child.severe(null); + child.severe((String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), child.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), parent.getResourceBundleName()); + assertSame(r.getResourceBundle(), parent.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.SEVERE); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.setLevel(Level.OFF); + this.sharedLogger.severe((String)null); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + /* + * Test severe(Supplier<String>) with null values. + */ + public void testSevere_Supplier_Null() { + Logger child = new MockLogger("childLogger", null); + Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); + child.addHandler(new MockHandler()); + child.setParent(parent); + + child.setLevel(Level.SEVERE); + child.severe(() -> (String)null); LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); assertTrue(CallVerificationStack.getInstance().empty()); assertSame(r.getLoggerName(), child.getName()); @@ -1646,8 +2044,13 @@ public class LoggerTest extends TestCase { assertSame(r.getThrown(), null); this.sharedLogger.setLevel(Level.OFF); - this.sharedLogger.severe(null); + this.sharedLogger.severe(() -> (String)null); assertTrue(CallVerificationStack.getInstance().empty()); + + try { + child.severe((Supplier<String>) null); + fail(); + } catch(NullPointerException expected) {} } /* @@ -1677,6 +2080,32 @@ public class LoggerTest extends TestCase { } /* + * Test log(Level, Supplier<String>) with normal values. + */ + public void testLog_LevelSupplier() { + this.sharedLogger.setLevel(Level.INFO); + this.sharedLogger.log(Level.INFO, () -> "log(Level, String) msg"); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), "log(Level, String) msg"); + assertSame(r.getResourceBundleName(), this.sharedLogger + .getResourceBundleName()); + assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.log(Level.CONFIG, () -> "log(Level, String) msg"); + assertTrue(CallVerificationStack.getInstance().empty()); + this.sharedLogger.setLevel(Level.OFF); + this.sharedLogger.log(Level.OFF, () -> "log(Level, String) msg"); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + /* * Test log(Level, String) with null message. */ public void testLog_LevelString_NullMsg() { @@ -1686,7 +2115,7 @@ public class LoggerTest extends TestCase { child.setParent(parent); child.setLevel(Level.INFO); - child.log(Level.INFO, null); + child.log(Level.INFO, (String)null); LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); assertTrue(CallVerificationStack.getInstance().empty()); assertSame(r.getLoggerName(), child.getName()); @@ -1701,6 +2130,35 @@ public class LoggerTest extends TestCase { } /* + * Test log(Level, Supplier<String>) with null message. + */ + public void testLog_LevelSupplier_NullMsg() { + Logger child = new MockLogger("childLogger", null); + Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); + child.addHandler(new MockHandler()); + child.setParent(parent); + + child.setLevel(Level.INFO); + child.log(Level.INFO, () -> (String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), child.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), parent.getResourceBundleName()); + assertSame(r.getResourceBundle(), parent.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + try { + child.log(Level.INFO, (Supplier<String>) null); + fail(); + } catch(NullPointerException expected) {} + } + + /* * Test log(Level, String) with null level. */ public void testLog_LevelString_NullLevel() { @@ -1919,6 +2377,67 @@ public class LoggerTest extends TestCase { } } + + /* + * Test log(Level, Throwable, Supplier<String>) with normal values. + */ + public void testLog_LevelThrowableSupplier_Normal() { + Throwable t = new Throwable(); + this.sharedLogger.setLevel(Level.INFO); + this.sharedLogger.log(Level.INFO, t, + () -> "log(Level, Throwable, Supplier<String>) msg"); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), "log(Level, Throwable, Supplier<String>) msg"); + assertSame(r.getResourceBundleName(), this.sharedLogger + .getResourceBundleName()); + assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), t); + + this.sharedLogger.log(Level.CONFIG, t, + () -> "log(Level, Throwable, Supplier<String>) msg"); + assertTrue(CallVerificationStack.getInstance().empty()); + this.sharedLogger.setLevel(Level.OFF); + this.sharedLogger + .log(Level.OFF, "log(Level, Throwable, Supplier<String>) msg", t); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + + /* + * Test log(Level, Throwable, Supplier<String>) with null message and throwable. + */ + public void testLog_LevelThrowableSupplier_Null() { + Logger child = new MockLogger("childLogger", null); + Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); + child.addHandler(new MockHandler()); + child.setParent(parent); + + child.setLevel(Level.INFO); + child.log(Level.INFO, (Throwable) null, () -> (String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), child.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), parent.getResourceBundleName()); + assertSame(r.getResourceBundle(), parent.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + try { + child.log(Level.INFO, (Throwable) null, (Supplier<String>)null); + fail(); + } catch(NullPointerException expected) {} + } + /* * Test logp(Level, String, String, String) with normal values. */ @@ -1958,7 +2477,7 @@ public class LoggerTest extends TestCase { child.setParent(parent); child.setLevel(Level.INFO); - child.logp(Level.INFO, null, null, null); + child.logp(Level.INFO, (String)null, (String)null, (String)null); LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); assertTrue(CallVerificationStack.getInstance().empty()); assertSame(r.getLoggerName(), child.getName()); @@ -1986,6 +2505,78 @@ public class LoggerTest extends TestCase { } /* + * Test logp(Level, String, String, Supplier<String>) with normal values. + */ + public void testLogp_LevelStringStringSupplier_Normal() { + this.sharedLogger.setLevel(Level.INFO); + this.sharedLogger.logp(Level.INFO, "sourceClass", "sourceMethod", + () -> "logp(Level, String, String, Supplier<String>) msg"); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), "logp(Level, String, String, Supplier<String>) msg"); + assertSame(r.getResourceBundleName(), this.sharedLogger + .getResourceBundleName()); + assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle()); + assertSame(r.getSourceClassName(), "sourceClass"); + assertSame(r.getSourceMethodName(), "sourceMethod"); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + this.sharedLogger.logp(Level.CONFIG, "sourceClass", "sourceMethod", + () -> "logp(Level, String, String, Supplier<String>) msg"); + assertTrue(CallVerificationStack.getInstance().empty()); + this.sharedLogger.setLevel(Level.OFF); + this.sharedLogger.logp(Level.OFF, "sourceClass", "sourceMethod", + () -> "logp(Level, String, String, Supplier<String>) msg"); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + /* + * Test logp(Level, String, String, Supplier<String>) with null message. + */ + public void testLogp_LevelStringStringSupplier_NullMsg() { + Logger child = new MockLogger("childLogger", null); + Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); + child.addHandler(new MockHandler()); + child.setParent(parent); + + child.setLevel(Level.INFO); + child.logp(Level.INFO, (String)null, (String)null, () -> (String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), child.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), parent.getResourceBundleName()); + assertSame(r.getResourceBundle(), parent.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + try { + child.logp(Level.INFO, (String)null, (String)null, (Supplier<String>)null); + fail(); + } catch(NullPointerException expected) {} + + } + + /* + * Test logp(Level, String, String, Supplier<String>) with null level. + */ + public void testLogp_LevelStringStringSupplier_NullLevel() { + // this.sharedLogger.setLevel(Level.OFF); + try { + this.sharedLogger.logp(null, "sourceClass", "sourceMethod", + () -> "logp(Level, String, String, String) msg"); + fail("Should throw NullPointerException!"); + } catch (NullPointerException e) { + } + } + + /* * Test logp(Level, String, String, String, Object) with normal values. */ public void testLogp_LevelStringStringStringObject_Normal() { @@ -2202,6 +2793,80 @@ public class LoggerTest extends TestCase { } /* + * Test logp(Level, String, String, Throwable, Supplier<String>) with normal values. + */ + public void testLogp_LevelStringStringThrowableSupplier_Normal() { + Throwable t = new Throwable(); + this.sharedLogger.setLevel(Level.INFO); + this.sharedLogger.logp(Level.INFO, "sourceClass", "sourceMethod", t, + () -> "logp(Level, String, String, Throwable, Supplier<String>) msg"); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), + "logp(Level, String, String, Throwable, Supplier<String>) msg"); + assertSame(r.getResourceBundleName(), this.sharedLogger + .getResourceBundleName()); + assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle()); + assertSame(r.getSourceClassName(), "sourceClass"); + assertSame(r.getSourceMethodName(), "sourceMethod"); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), t); + + this.sharedLogger.logp(Level.CONFIG, "sourceClass", "sourceMethod", t, + () -> "logp(Level, String, String, Throwable, Supplier<String>) msg"); + assertTrue(CallVerificationStack.getInstance().empty()); + this.sharedLogger.setLevel(Level.OFF); + this.sharedLogger.logp(Level.OFF, "sourceClass", "sourceMethod", t, + () -> "logp(Level, String, String, Throwable, Supplier<String>) msg"); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + /* + * Test logp(Level, String, String, Throwable, Supplier<String>) with null message and + * throwable. + */ + public void testLogp_LevelStringStringThrowableSupplier_Null() { + Logger child = new MockLogger("childLogger", null); + Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2); + child.addHandler(new MockHandler()); + child.setParent(parent); + + child.setLevel(Level.INFO); + child.logp(Level.INFO, null, null, (Throwable) null, () -> (String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), child.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), parent.getResourceBundleName()); + assertSame(r.getResourceBundle(), parent.getResourceBundle()); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + + try { + child.logp(Level.INFO, null, null, (Throwable) null, (Supplier<String>) null); + fail(); + } catch (NullPointerException expected) {} + } + + /* + * Test logp(Level, String, String, Throwable, Supplier<String>) with null level. + */ + public void testLogp_LevelStringStringThrowableSupplier_NullLevel() { + // this.sharedLogger.setLevel(Level.OFF); + try { + this.sharedLogger.logp(null, "sourceClass", "sourceMethod", + new Throwable(), () -> "log(Level, String, String, Throwable, Supplier) msg"); + fail("Should throw NullPointerException!"); + } catch (NullPointerException e) { + } + } + + /* * Test logrb(Level, String, String, String, String) with normal values. */ public void testLogrb_LevelStringStringString_Normal() { @@ -2433,7 +3098,7 @@ public class LoggerTest extends TestCase { */ public void testLogrb_LevelStringStringStringObjects_NullMsgObj() { this.sharedLogger.setLevel(Level.INFO); - this.sharedLogger.logrb(Level.INFO, null, null, null, null, + this.sharedLogger.logrb(Level.INFO, (String)null, (String)null, (String)null, (String)null, (Object[]) null); LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); assertTrue(CallVerificationStack.getInstance().empty()); @@ -2496,6 +3161,87 @@ public class LoggerTest extends TestCase { } /* + * Test logrb(Level, String, String, ResourceBundle, String, Object...) with normal + * values. + */ + public void testLogrb_LevelStringStringResourceBundleStringObjectEllipsis_Normal() { + Object[] params = new Object[2]; + params[0] = new Object(); + params[1] = new Object(); + this.sharedLogger.setLevel(Level.INFO); + ResourceBundle rb = ResourceBundle.getBundle(VALID_RESOURCE_BUNDLE2); + this.sharedLogger.logrb(Level.INFO, "sourceClass", "sourceMethod", + rb, + "logrb(Level, String, String, ResourceBundle, String, Object...) msg", + params[0], params[1]); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), + "logrb(Level, String, String, ResourceBundle, String, Object...) msg"); + assertSame(r.getResourceBundleName(), VALID_RESOURCE_BUNDLE2); + assertSame(r.getSourceClassName(), "sourceClass"); + assertSame(r.getSourceMethodName(), "sourceMethod"); + assertSame(r.getLevel(), Level.INFO); + assertEquals(2, r.getParameters().length); + assertSame(params[0], r.getParameters()[0]); + assertSame(params[1], r.getParameters()[1]); + assertSame(r.getThrown(), null); + + this.sharedLogger.logrb(Level.CONFIG, "sourceClass", "sourceMethod", + rb, + "logrb(Level, String, String, ResourceBundle, String, Object...) msg", + params[0], params[1]); + assertTrue(CallVerificationStack.getInstance().empty()); + this.sharedLogger.setLevel(Level.OFF); + this.sharedLogger.logrb(Level.OFF, "sourceClass", "sourceMethod", + VALID_RESOURCE_BUNDLE2, + "logrb(Level, String, String, ResourceBundle, String, Object...) msg", + params); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + /* + * Test logrb(Level, String, String, ResourceBundle, String, Object...) with null + * message and object. + */ + public void testLogrb_LevelStringStringResourceBundleStringObjectEllipsis_NullMsgObj() { + this.sharedLogger.setLevel(Level.INFO); + this.sharedLogger.logrb(Level.INFO, (String)null, (String)null, (ResourceBundle)null, + (String)null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), null); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + } + + /* + * Test logrb(Level, String, String, ResourceBundle, String, Object...) with null + * level. + */ + public void testLogrb_LevelStringStringResourceBundleStringObjectEllipsis_NullLevel() { + // this.sharedLogger.setLevel(Level.OFF); + ResourceBundle rb = ResourceBundle.getBundle(VALID_RESOURCE_BUNDLE2); + try { + this.sharedLogger + .logrb( + null, + "sourceClass", + "sourceMethod", + rb, + "logrb(Level, String, String, ResourceBundle, String, Object...) msg"); + fail("Should throw NullPointerException!"); + } catch (NullPointerException e) { + } + } + + /* * Test logrb(Level, String, String, String, String, Throwable) with normal * values. */ @@ -2536,9 +3282,9 @@ public class LoggerTest extends TestCase { * Test logrb(Level, String, String, String, String, Throwable) with null * message and throwable. */ - public void testLogrb_LevelStringTStringStringhrowable_NullMsgObj() { + public void testLogrb_LevelStringStringStringThrowable_NullMsgObj() { this.sharedLogger.setLevel(Level.INFO); - this.sharedLogger.logrb(Level.INFO, null, null, null, null, + this.sharedLogger.logrb(Level.INFO, (String)null, (String)null, (String)null, (String)null, (Throwable) null); LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); assertTrue(CallVerificationStack.getInstance().empty()); @@ -2597,6 +3343,85 @@ public class LoggerTest extends TestCase { } /* + * Test logrb(Level, String, String, ResourceBundle, String, Throwable) with normal + * values. + */ + public void testLogrb_LevelStringStringResourceBundleStringThrowable_Normal() { + Throwable t = new Throwable(); + ResourceBundle rb = ResourceBundle.getBundle(VALID_RESOURCE_BUNDLE2); + this.sharedLogger.setLevel(Level.INFO); + this.sharedLogger.logrb(Level.parse("1611"), "sourceClass", + "sourceMethod", rb, + "logrb(Level, String, String, ResourceBundle, String, Throwable) msg", + t); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertEquals(r.getMessage(), + "logrb(Level, String, String, ResourceBundle, String, Throwable) msg"); + assertSame(r.getResourceBundleName(), VALID_RESOURCE_BUNDLE2); + assertSame(r.getSourceClassName(), "sourceClass"); + assertSame(r.getSourceMethodName(), "sourceMethod"); + assertSame(r.getLevel(), Level.parse("1611")); + assertNull(r.getParameters()); + assertSame(r.getThrown(), t); + assertNull(Level.parse("1611").getResourceBundleName()); + + this.sharedLogger.logrb(Level.CONFIG, "sourceClass", "sourceMethod", + rb, + "logrb(Level, String, String, ResourceBundle, String, Throwable) msg", + t); + assertTrue(CallVerificationStack.getInstance().empty()); + this.sharedLogger.setLevel(Level.OFF); + this.sharedLogger.logrb(Level.OFF, "sourceClass", "sourceMethod", + rb, + "logrb(Level, String, String, ResourceBundle, String, Throwable) msg", + t); + assertTrue(CallVerificationStack.getInstance().empty()); + } + + /* + * Test logrb(Level, String, String, ResourceBundle, String, Throwable) with null + * message and throwable. + */ + public void testLogrb_LevelStringStringResourceBundleStringThrowable_NullMsgObj() { + this.sharedLogger.setLevel(Level.INFO); + this.sharedLogger.logrb(Level.INFO, (String)null, (String)null, (ResourceBundle)null, + (String)null, (Throwable) null); + LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop(); + assertTrue(CallVerificationStack.getInstance().empty()); + assertSame(r.getLoggerName(), this.sharedLogger.getName()); + assertNull(r.getMessage()); + assertSame(r.getResourceBundleName(), null); + assertSame(r.getSourceClassName(), null); + assertSame(r.getSourceMethodName(), null); + assertSame(r.getLevel(), Level.INFO); + assertNull(r.getParameters()); + assertSame(r.getThrown(), null); + } + + /* + * Test logrb(Level, String, String, ResourceBundle, String, Throwable) with null + * level. + */ + public void testLogrb_LevelStringStringResourceBundleStringThrowable_NullLevel() { + ResourceBundle rb = ResourceBundle.getBundle(VALID_RESOURCE_BUNDLE2); + // this.sharedLogger.setLevel(Level.OFF); + try { + this.sharedLogger + .logrb( + null, + "sourceClass", + "sourceMethod", + rb, + "log(Level, String, String, ResourceBundle, String, Throwable) msg", + new Throwable()); + fail("Should throw NullPointerException!"); + } catch (NullPointerException e) { + } + } + + /* * Test log(LogRecord) for a normal log record. Meanwhile the logger has an * appropriate level, no filter, no parent. */ @@ -3033,6 +3858,73 @@ public class LoggerTest extends TestCase { } } + + /* + * test setResourceBundle + */ + public void test_setResourceBundle() throws Exception { + assertNull(LogManager.getLogManager().getLogger("testSetResourceBundle")); + + // Create a new logger + Logger log1 = Logger.getLogger("testSetResourceBundle"); + assertNull(log1.getResourceBundle()); + + // Set bundle + ResourceBundle resourceBundle = ResourceBundle.getBundle(VALID_RESOURCE_BUNDLE); + log1.setResourceBundle(resourceBundle); + + assertEquals(VALID_VALUE, log1.getResourceBundle().getString(VALID_KEY)); + assertEquals(log1.getResourceBundleName(), VALID_RESOURCE_BUNDLE); + + // Set again the same bundle + log1.setResourceBundle(resourceBundle); + assertEquals(VALID_VALUE, log1.getResourceBundle().getString(VALID_KEY)); + assertEquals(log1.getResourceBundleName(), VALID_RESOURCE_BUNDLE); + + // Try different one and fail + ResourceBundle anotherResourceBundle = ResourceBundle.getBundle(VALID_RESOURCE_BUNDLE2); + try { + log1.setResourceBundle(anotherResourceBundle); + fail(); + } catch(IllegalArgumentException expected) { + } + } + + /* + * test setResourceBundle + */ + public void test_setResourceBundle_badInputs() throws Exception { + assertNull(LogManager.getLogManager().getLogger("testSetResourceBundle_badInputs")); + + // Create a new logger + Logger log1 = Logger.getLogger("testSetResourceBundle_badInputs"); + assertNull(log1.getResourceBundle()); + + // NPE + try { + log1.setResourceBundle(null); + fail(); + } catch(NullPointerException expected) { + } + + // ResourceBundle with an empty name + try { + log1.setResourceBundle(new ResourceBundle() { + @Override + protected Object handleGetObject(String key) { + return null; + } + + @Override + public Enumeration<String> getKeys() { + return null; + } + }); + fail(); + } catch(IllegalArgumentException expected) { + } + } + /* * A mock logger, used to test the protected constructors and fields. */ |