diff options
4 files changed, 23 insertions, 3 deletions
diff --git a/logging/src/main/java/java/util/logging/FileHandler.java b/logging/src/main/java/java/util/logging/FileHandler.java index e1eba9e..dd7790e 100644 --- a/logging/src/main/java/java/util/logging/FileHandler.java +++ b/logging/src/main/java/java/util/logging/FileHandler.java @@ -571,7 +571,7 @@ public class FileHandler extends StreamHandler { * the log record to publish. */ @Override - public void publish(LogRecord record) { + public synchronized void publish(LogRecord record) { super.publish(record); flush(); if (limit > 0 && output.getLength() >= limit) { diff --git a/logging/src/main/java/java/util/logging/LogManager.java b/logging/src/main/java/java/util/logging/LogManager.java index d7ade24..413efb3 100644 --- a/logging/src/main/java/java/util/logging/LogManager.java +++ b/logging/src/main/java/java/util/logging/LogManager.java @@ -401,7 +401,6 @@ public class LogManager { * not have the required permissions to perform this action. */ public void readConfiguration() throws IOException { - checkAccess(); // check config class String configClassName = System .getProperty("java.util.logging.config.class"); //$NON-NLS-1$ @@ -436,7 +435,7 @@ public class LogManager { "logging.properties"), 8192); } // END android-added - readConfigurationImpl(input); + readConfiguration(input); } finally { if (input != null) { try { 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 44389be..3083dc9 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 @@ -837,6 +837,16 @@ public class LogManagerTest extends TestCase { assertNull(m.getProperty("java.util.logging.FileHandler.pattern")); } + public void testReadConfiguration() throws SecurityException, + IOException { + + MockConfigLogManager lm = new MockConfigLogManager(); + assertFalse(lm.isCalled); + + lm.readConfiguration(); + assertTrue(lm.isCalled); + } + private static void checkProperty(LogManager m) { // assertEquals(m.getProperty(".level"), "INFO"); assertEquals(m.getProperty("java.util.logging.FileHandler.limit"), "50000"); @@ -1363,6 +1373,15 @@ public class LogManagerTest extends TestCase { public static class MockLogManager extends LogManager { } + public static class MockConfigLogManager extends LogManager { + public boolean isCalled = false; + + public void readConfiguration(InputStream ins) throws IOException { + isCalled = true; + super.readConfiguration(ins); + } + } + public static class MockHandler extends Handler { static int number = 0; diff --git a/tools/integrate/Module.java b/tools/integrate/Module.java index 63d35a2..02cdb6a 100644 --- a/tools/integrate/Module.java +++ b/tools/integrate/Module.java @@ -48,6 +48,8 @@ class Module { "crypto/src/test/java") .build()); + valuesMutable.put("logging", new Module.Builder(svnRoot, "logging").build()); + valuesMutable.put("regex", new Module.Builder(svnRoot, "regex").build()); valuesMutable.put("security", new Module.Builder(svnRoot, "security") |