diff --git a/core-java-modules/core-java-numbers-conversions-2/README.md b/core-java-modules/core-java-numbers-conversions-2/README.md
new file mode 100644
index 0000000000..7d843af9ea
--- /dev/null
+++ b/core-java-modules/core-java-numbers-conversions-2/README.md
@@ -0,0 +1 @@
+### Relevant Articles:
diff --git a/core-java-modules/core-java-numbers-conversions-2/pom.xml b/core-java-modules/core-java-numbers-conversions-2/pom.xml
new file mode 100644
index 0000000000..b1c87df510
--- /dev/null
+++ b/core-java-modules/core-java-numbers-conversions-2/pom.xml
@@ -0,0 +1,14 @@
+
+ 4.0.0
+ core-java-numbers-conversions-2
+ jar
+ core-java-numbers-conversions-2
+
+
+ com.baeldung.core-java-modules
+ core-java-modules
+ 0.0.1-SNAPSHOT
+
+
diff --git a/core-java-modules/core-java-numbers-conversions-2/src/test/java/com/baeldung/inttoshort/ConvertIntToShortUnitTest.java b/core-java-modules/core-java-numbers-conversions-2/src/test/java/com/baeldung/inttoshort/ConvertIntToShortUnitTest.java
new file mode 100644
index 0000000000..123c799b4a
--- /dev/null
+++ b/core-java-modules/core-java-numbers-conversions-2/src/test/java/com/baeldung/inttoshort/ConvertIntToShortUnitTest.java
@@ -0,0 +1,55 @@
+package com.baeldung.inttoshort;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import org.junit.jupiter.api.Test;
+
+class ConvertIntToShortUnitTest {
+
+ @Test
+ void whenUsingCasting_thenCorrect() {
+ short expected = 42;
+ int i = 42;
+ short result = (short) i;
+ assertEquals(expected, result);
+ }
+
+ @Test
+ void whenUsingIntegerShortValue_thenCorrect() {
+ short expected = 42;
+ Integer intObj = 42;
+ short result = intObj.shortValue();
+ assertEquals(expected, result);
+ }
+
+ @Test
+ void whenIntOutOfShortRange_thenGetTheUnexpectedResult() {
+ int oneMillion = 1_000_000;
+ short result = (short) oneMillion;
+ assertEquals(16960, result);
+
+ int twoMillion = 2_000_000;
+ result = (short) twoMillion;
+ assertEquals(-31616, result);
+ }
+
+ short intToShort(int i) {
+ if (i < Short.MIN_VALUE || i > Short.MAX_VALUE) {
+ throw new IllegalArgumentException("Int is out of short range");
+ }
+ return (short) i;
+ }
+
+ @Test
+ void whenCheckShortRangeBeforeCasting_thenGetExpectedResult() {
+ short expected = 42;
+ int int42 = 42;
+ assertEquals(expected, intToShort(int42));
+
+ int oneMillion = 1_000_000;
+ assertThrows(IllegalArgumentException.class, () -> intToShort(oneMillion));
+
+ }
+
+}
\ No newline at end of file
diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml
index 6b4edaf7f2..1344b3af23 100644
--- a/core-java-modules/pom.xml
+++ b/core-java-modules/pom.xml
@@ -36,6 +36,7 @@
core-java-numbers-conversions
+ core-java-numbers-conversions-2
core-java-9-improvements
core-java-9-streams
core-java-9