From 9527c6700798824cf6c2cee8e0583bd2738bbf0c Mon Sep 17 00:00:00 2001 From: Kiran Date: Fri, 8 Sep 2017 09:47:18 +0530 Subject: [PATCH 1/6] Updated Lang3Utils.java Added a new test for ConcurrentException and updated other exception with Lambda --- .../commons/lang3/Lang3UtilsTest.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java b/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java index 2e74ad3c24ef..5cc00f5126d6 100644 --- a/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java +++ b/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java @@ -1,6 +1,7 @@ package com.baeldung.commons.lang3; import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertSame; @@ -12,12 +13,14 @@ import java.io.File; import java.lang.reflect.Field; import java.util.Locale; +import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import org.apache.commons.lang3.ArchUtils; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.SystemUtils; import org.apache.commons.lang3.arch.Processor; +import org.apache.commons.lang3.concurrent.ConcurrentException; import org.apache.commons.lang3.concurrent.ConcurrentRuntimeException; import org.apache.commons.lang3.concurrent.ConcurrentUtils; import org.apache.commons.lang3.event.EventUtils; @@ -97,18 +100,25 @@ public void test_getInstance_String_Locale() { public void testAddEventListenerThrowsException() { final ExceptionEventSource src = new ExceptionEventSource(); try { - EventUtils.addEventListener(src, PropertyChangeListener.class, new PropertyChangeListener() { - @Override - public void propertyChange(final PropertyChangeEvent e) { - // Do nothing! - } - }); + EventUtils.addEventListener(src, PropertyChangeListener.class, (PropertyChangeEvent e) -> {/* Change event*/} + ); fail("Add method should have thrown an exception, so method should fail."); } catch (final RuntimeException e) { } } - + + @Test + public void ConcurrentExceptionSample() throws ConcurrentException { + final Error err = new AssertionError("Test"); + try { + ConcurrentUtils.handleCause(new ExecutionException(err)); + fail("Error not thrown!"); + } catch (final Error e) { + assertEquals("Wrong error", err, e); + } + } + public static class ExceptionEventSource { public void addPropertyChangeListener(final PropertyChangeListener listener) { throw new RuntimeException(); From 5a84c51bd75ba669aa67dcf3a38fa0863ec2bf4e Mon Sep 17 00:00:00 2001 From: Kiran Date: Wed, 13 Sep 2017 09:22:11 +0530 Subject: [PATCH 2/6] LazyInitializer sample files --- .../baeldung/commons/lang3/SampleLazyInitializer.java | 11 +++++++++++ .../java/com/baeldung/commons/lang3/SampleObject.java | 7 +++++++ 2 files changed, 18 insertions(+) create mode 100644 libraries/src/main/java/com/baeldung/commons/lang3/SampleLazyInitializer.java create mode 100644 libraries/src/main/java/com/baeldung/commons/lang3/SampleObject.java diff --git a/libraries/src/main/java/com/baeldung/commons/lang3/SampleLazyInitializer.java b/libraries/src/main/java/com/baeldung/commons/lang3/SampleLazyInitializer.java new file mode 100644 index 000000000000..56a49d265945 --- /dev/null +++ b/libraries/src/main/java/com/baeldung/commons/lang3/SampleLazyInitializer.java @@ -0,0 +1,11 @@ +package com.baeldung.commons.lang3; + +import org.apache.commons.lang3.concurrent.LazyInitializer; + +public class SampleLazyInitializer extends LazyInitializer { + + @Override + protected SampleObject initialize() { + return new SampleObject(); + } +} \ No newline at end of file diff --git a/libraries/src/main/java/com/baeldung/commons/lang3/SampleObject.java b/libraries/src/main/java/com/baeldung/commons/lang3/SampleObject.java new file mode 100644 index 000000000000..0e6117673253 --- /dev/null +++ b/libraries/src/main/java/com/baeldung/commons/lang3/SampleObject.java @@ -0,0 +1,7 @@ +package com.baeldung.commons.lang3; + +public class SampleObject { + + //Ignored + +} From fead31eeec5a28b4a1acdfee6a355c95a336936e Mon Sep 17 00:00:00 2001 From: Kiran Date: Thu, 14 Sep 2017 16:24:43 +0530 Subject: [PATCH 3/6] Updated file with LazyInitializer Unit Test --- .../baeldung/commons/lang3/Lang3UtilsTest.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java b/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java index 5cc00f5126d6..af70ccecc786 100644 --- a/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java +++ b/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java @@ -100,14 +100,14 @@ public void test_getInstance_String_Locale() { public void testAddEventListenerThrowsException() { final ExceptionEventSource src = new ExceptionEventSource(); try { - EventUtils.addEventListener(src, PropertyChangeListener.class, (PropertyChangeEvent e) -> {/* Change event*/} - ); + EventUtils.addEventListener(src, PropertyChangeListener.class, (PropertyChangeEvent e) -> { + /* Change event*/}); fail("Add method should have thrown an exception, so method should fail."); } catch (final RuntimeException e) { } } - + @Test public void ConcurrentExceptionSample() throws ConcurrentException { final Error err = new AssertionError("Test"); @@ -118,11 +118,19 @@ public void ConcurrentExceptionSample() throws ConcurrentException { assertEquals("Wrong error", err, e); } } - + public static class ExceptionEventSource { public void addPropertyChangeListener(final PropertyChangeListener listener) { throw new RuntimeException(); } } + @Test + public void testLazyInitializer() throws Exception { + SampleLazyInitializer sampleLazyInitializer = new SampleLazyInitializer(); + SampleObject sampleObjectOne = sampleLazyInitializer.get(); + SampleObject sampleObjectTwo = sampleLazyInitializer.get(); + assertEquals(sampleObjectOne, sampleObjectTwo); + } + } From 2c649833d076b0b50684c8820c73ba7c257c59c9 Mon Sep 17 00:00:00 2001 From: Kiran Date: Tue, 3 Oct 2017 13:15:21 +0530 Subject: [PATCH 4/6] Updated BuidlerMethods class to include LazyInitializer & BackgroundInitializer --- .../commons/lang3/BuilderMethods.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/libraries/src/main/java/com/baeldung/commons/lang3/BuilderMethods.java b/libraries/src/main/java/com/baeldung/commons/lang3/BuilderMethods.java index c64f7e75117e..35cae7426d52 100644 --- a/libraries/src/main/java/com/baeldung/commons/lang3/BuilderMethods.java +++ b/libraries/src/main/java/com/baeldung/commons/lang3/BuilderMethods.java @@ -3,6 +3,8 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.concurrent.ConcurrentException; +import org.apache.commons.lang3.concurrent.BackgroundInitializer; public class BuilderMethods { @@ -56,5 +58,36 @@ public static void main(final String[] arguments) { System.out.println(simple1.getName()); System.out.println(simple1.hashCode()); System.out.println(simple1.toString()); + + SampleLazyInitializer sampleLazyInitializer = new SampleLazyInitializer(); + + try { + sampleLazyInitializer.get(); + } catch (ConcurrentException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + SampleBackgroundInitializer sampleBackgroundInitializer = new SampleBackgroundInitializer(); + sampleBackgroundInitializer.start(); + + // Proceed with other tasks instead of waiting for the SampleBackgroundInitializer task to finish. + + try { + Object result = sampleBackgroundInitializer.get(); + } catch (ConcurrentException e) { + e.printStackTrace(); + } + } +} + +class SampleBackgroundInitializer extends BackgroundInitializer{ + + @Override + protected String initialize() throws Exception { + return null; } + + // Any complex task that takes some time + } From ef36a7033a649bee66be37156776f0f3b695cfe5 Mon Sep 17 00:00:00 2001 From: Kiran Date: Tue, 3 Oct 2017 13:16:41 +0530 Subject: [PATCH 5/6] Updated Lang3UtilsTest class --- .../baeldung/commons/lang3/Lang3UtilsTest.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java b/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java index af70ccecc786..043d54237ffa 100644 --- a/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java +++ b/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java @@ -3,7 +3,9 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotSame; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -20,6 +22,7 @@ import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.SystemUtils; import org.apache.commons.lang3.arch.Processor; +import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.commons.lang3.concurrent.ConcurrentException; import org.apache.commons.lang3.concurrent.ConcurrentRuntimeException; import org.apache.commons.lang3.concurrent.ConcurrentUtils; @@ -133,4 +136,18 @@ public void testLazyInitializer() throws Exception { assertEquals(sampleObjectOne, sampleObjectTwo); } + @Test + public void testBuildDefaults() { + BasicThreadFactory.Builder builder = new BasicThreadFactory.Builder(); + BasicThreadFactory factory = builder.build(); + assertNull("No naming pattern set Yet", factory.getNamingPattern()); + BasicThreadFactory factory2 = builder.namingPattern("sampleNamingPattern") + .daemon(true) + .priority(Thread.MIN_PRIORITY) + .build(); + assertNotNull("Got a naming pattern", factory2.getNamingPattern()); + assertEquals("sampleNamingPattern", factory2.getNamingPattern()); + + } + } From ca4d6f3959a8e81d3e5ed7b71b64c564bf9b27e2 Mon Sep 17 00:00:00 2001 From: Kiran Date: Tue, 3 Oct 2017 13:18:43 +0530 Subject: [PATCH 6/6] Updated Lang3UtilsTest class --- .../java/com/baeldung/commons/lang3/Lang3UtilsTest.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java b/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java index 043d54237ffa..29bcebeb2b9c 100644 --- a/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java +++ b/libraries/src/test/java/com/baeldung/commons/lang3/Lang3UtilsTest.java @@ -141,13 +141,9 @@ public void testBuildDefaults() { BasicThreadFactory.Builder builder = new BasicThreadFactory.Builder(); BasicThreadFactory factory = builder.build(); assertNull("No naming pattern set Yet", factory.getNamingPattern()); - BasicThreadFactory factory2 = builder.namingPattern("sampleNamingPattern") - .daemon(true) - .priority(Thread.MIN_PRIORITY) - .build(); + BasicThreadFactory factory2 = builder.namingPattern("sampleNamingPattern").daemon(true).priority(Thread.MIN_PRIORITY).build(); assertNotNull("Got a naming pattern", factory2.getNamingPattern()); assertEquals("sampleNamingPattern", factory2.getNamingPattern()); } - }