From 6af16b82fb95397aac602ccd08ec3bcd5e7ed541 Mon Sep 17 00:00:00 2001 From: Anshul Bansal Date: Sat, 29 Jun 2019 21:37:40 +0300 Subject: [PATCH 1/8] BAEL-2995 - possible lossy conversion --- .../ConversionTechniquesUnitTest.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 java-numbers/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java diff --git a/java-numbers/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java b/java-numbers/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java new file mode 100644 index 0000000000..9ed714e853 --- /dev/null +++ b/java-numbers/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java @@ -0,0 +1,56 @@ +package com.baeldung.lossyconversion; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.jupiter.api.Test; + +public class ConversionTechniquesUnitTest { + + @Test + public void testPrimitiveConversion() { + + double doubleNum = 15.6; + int integerNum = (int) doubleNum; + + assertEquals(integerNum, 15); + } + + @Test + public void testWrapperConversion() { + + Double doubleNum = 10.3; + double dbl = doubleNum.doubleValue(); + int intgr = (int) dbl; + Integer intNum = Integer.valueOf(intgr); + + assertTrue(intNum == 10); + } + + @Test + public void testWrapperToPrimitiveConversion() { + + Float floatNum = 17.564f; + long longNum = floatNum.longValue(); + + assertEquals(longNum, 17l); + + Double doubleNum = 15.9999; + int intNum = doubleNum.intValue(); + + assertEquals(intNum, 15); + + longNum = Math.round(doubleNum); + + assertEquals(longNum, 16); + } + + @Test + public void testWrapperToPrimitiveConversionUsingMathRound() { + + Double doubleNum = 15.9999; + long longNum = Math.round(doubleNum); + + assertEquals(longNum, 16); + } +} From b910336c2701a16e7346f887c6726d69ff47416c Mon Sep 17 00:00:00 2001 From: Anshul Bansal Date: Wed, 3 Jul 2019 16:16:43 +0300 Subject: [PATCH 2/8] BAEL-2995 - possible lossy conversion - new module java-numbers-2 created --- java-numbers-2/.gitignore | 26 ++++ java-numbers-2/README.md | 6 + java-numbers-2/pom.xml | 135 ++++++++++++++++++ .../ConversionTechniquesUnitTest.java | 0 pom.xml | 2 + 5 files changed, 169 insertions(+) create mode 100644 java-numbers-2/.gitignore create mode 100644 java-numbers-2/README.md create mode 100644 java-numbers-2/pom.xml rename {java-numbers => java-numbers-2}/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java (100%) diff --git a/java-numbers-2/.gitignore b/java-numbers-2/.gitignore new file mode 100644 index 0000000000..3de4cc647e --- /dev/null +++ b/java-numbers-2/.gitignore @@ -0,0 +1,26 @@ +*.class + +0.* + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* +.resourceCache + +# Packaged files # +*.jar +*.war +*.ear + +# Files generated by integration tests +*.txt +backup-pom.xml +/bin/ +/temp + +#IntelliJ specific +.idea/ +*.iml \ No newline at end of file diff --git a/java-numbers-2/README.md b/java-numbers-2/README.md new file mode 100644 index 0000000000..7df6cbd5a2 --- /dev/null +++ b/java-numbers-2/README.md @@ -0,0 +1,6 @@ +========= + +## Java Number 2 + +### Relevant Articles: +- [Lossy Conversion in Java](http://www.baeldung.com/lossy-conversion) \ No newline at end of file diff --git a/java-numbers-2/pom.xml b/java-numbers-2/pom.xml new file mode 100644 index 0000000000..963d281548 --- /dev/null +++ b/java-numbers-2/pom.xml @@ -0,0 +1,135 @@ + + 4.0.0 + java-numbers-2 + 0.1.0-SNAPSHOT + java-numbers-2 + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../parent-java + + + + + log4j + log4j + ${log4j.version} + + + org.slf4j + slf4j-api + ${org.slf4j.version} + + + ch.qos.logback + logback-classic + ${logback.version} + + + org.openjdk.jmh + jmh-core + ${jmh-core.version} + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh-generator.version} + + + org.apache.commons + commons-math3 + ${commons-math3.version} + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + org.decimal4j + decimal4j + ${decimal4j.version} + + + org.assertj + assertj-core + ${assertj.version} + test + + + + + java-numbers + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + 1.8 + 1.8 + + + + + + + + integration + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration-test + + test + + + + **/*IntegrationTest.java + + + + + + + json + + + + + + + + + + 3.6.1 + 1.0.3 + 3.5 + + 3.6.1 + + 1.7.21 + 1.1.7 + + 2.21.0 + 3.0.0-M1 + 3.0.2 + + diff --git a/java-numbers/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java b/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java similarity index 100% rename from java-numbers/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java rename to java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java diff --git a/pom.xml b/pom.xml index 9760e06bc1..18a7e5f9a8 100644 --- a/pom.xml +++ b/pom.xml @@ -461,6 +461,7 @@ java-lite java-numbers + java-numbers-2 java-rmi java-spi java-streams @@ -1142,6 +1143,7 @@ java-ee-8-security-api java-lite java-numbers + java-numbers-2 java-rmi java-spi java-streams From e5c3dbb67ca8e1a9cee6c863149ad1bac1b8e676 Mon Sep 17 00:00:00 2001 From: Anshul Bansal Date: Wed, 3 Jul 2019 16:22:08 +0300 Subject: [PATCH 3/8] BAEL-2995 - possible lossy conversion - fixes --- java-numbers-2/pom.xml | 2 +- .../ConversionTechniquesUnitTest.java | 28 +++++++++++-------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/java-numbers-2/pom.xml b/java-numbers-2/pom.xml index 963d281548..57f1154f53 100644 --- a/java-numbers-2/pom.xml +++ b/java-numbers-2/pom.xml @@ -64,7 +64,7 @@ - java-numbers + java-numbers-2 src/main/resources diff --git a/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java b/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java index 9ed714e853..80236af044 100644 --- a/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java +++ b/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java @@ -9,6 +9,11 @@ public class ConversionTechniquesUnitTest { @Test public void testPrimitiveConversion() { + + long longNum = 24; + short shortNum = (short) longNum; + + assertEquals(shortNum, 24); double doubleNum = 15.6; int integerNum = (int) doubleNum; @@ -16,17 +21,6 @@ public class ConversionTechniquesUnitTest { assertEquals(integerNum, 15); } - @Test - public void testWrapperConversion() { - - Double doubleNum = 10.3; - double dbl = doubleNum.doubleValue(); - int intgr = (int) dbl; - Integer intNum = Integer.valueOf(intgr); - - assertTrue(intNum == 10); - } - @Test public void testWrapperToPrimitiveConversion() { @@ -53,4 +47,16 @@ public class ConversionTechniquesUnitTest { assertEquals(longNum, 16); } + + @Test + public void testWrapperConversion() { + + Double doubleNum = 10.3; + double dbl = doubleNum.doubleValue(); //unboxing + int intgr = (int) dbl; //downcasting + Integer intNum = Integer.valueOf(intgr); + + assertTrue(intNum == 10); + } + } From 33476d699173707cda8389cc22c0817abd736f09 Mon Sep 17 00:00:00 2001 From: Anshul Bansal Date: Fri, 5 Jul 2019 11:46:09 +0300 Subject: [PATCH 4/8] Removed readme file --- java-numbers-2/README.md | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 java-numbers-2/README.md diff --git a/java-numbers-2/README.md b/java-numbers-2/README.md deleted file mode 100644 index 7df6cbd5a2..0000000000 --- a/java-numbers-2/README.md +++ /dev/null @@ -1,6 +0,0 @@ -========= - -## Java Number 2 - -### Relevant Articles: -- [Lossy Conversion in Java](http://www.baeldung.com/lossy-conversion) \ No newline at end of file From a3e08f7ce0e00a620da8aec922d09a7ab028a06f Mon Sep 17 00:00:00 2001 From: Anshul Bansal Date: Fri, 5 Jul 2019 18:34:01 +0300 Subject: [PATCH 5/8] BAEL-2995 - possible lossy conversion - fixes --- .../ConversionTechniquesUnitTest.java | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java b/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java index 80236af044..071ea4f9ab 100644 --- a/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java +++ b/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java @@ -13,12 +13,28 @@ public class ConversionTechniquesUnitTest { long longNum = 24; short shortNum = (short) longNum; - assertEquals(shortNum, 24); + assertEquals(24, shortNum); double doubleNum = 15.6; int integerNum = (int) doubleNum; - assertEquals(integerNum, 15); + assertEquals(15, integerNum); + + long largeLongNum = 32768; + long smallLongNum = -32769; + short shortNum1 = (short) largeLongNum; + short shortNum2 = (short) smallLongNum; + + assertEquals(-32768, shortNum1); + assertEquals(32767, shortNum2); + + long maxLong = Long.MAX_VALUE; + long minLong = Long.MIN_VALUE; + int minInt = (int) maxLong; + int maxInt = (int) minLong; + + assertEquals(-1, minInt); + assertEquals(0, maxInt); } @Test @@ -27,16 +43,12 @@ public class ConversionTechniquesUnitTest { Float floatNum = 17.564f; long longNum = floatNum.longValue(); - assertEquals(longNum, 17l); + assertEquals(17, longNum); Double doubleNum = 15.9999; - int intNum = doubleNum.intValue(); + longNum = doubleNum.longValue(); - assertEquals(intNum, 15); - - longNum = Math.round(doubleNum); - - assertEquals(longNum, 16); + assertEquals(15, longNum); } @Test @@ -45,7 +57,7 @@ public class ConversionTechniquesUnitTest { Double doubleNum = 15.9999; long longNum = Math.round(doubleNum); - assertEquals(longNum, 16); + assertEquals(16, longNum); } @Test From 8b87952f5b3d8d1d092a102c72d11e990912e124 Mon Sep 17 00:00:00 2001 From: Anshul Bansal Date: Sat, 6 Jul 2019 17:12:58 +0300 Subject: [PATCH 6/8] BAEL-2995 - possible lossy conversion - assert fix --- .../ConversionTechniquesUnitTest.java | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java b/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java index 071ea4f9ab..6659c379b0 100644 --- a/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java +++ b/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java @@ -12,29 +12,27 @@ public class ConversionTechniquesUnitTest { long longNum = 24; short shortNum = (short) longNum; - assertEquals(24, shortNum); double doubleNum = 15.6; int integerNum = (int) doubleNum; - assertEquals(15, integerNum); long largeLongNum = 32768; - long smallLongNum = -32769; short shortNum1 = (short) largeLongNum; - short shortNum2 = (short) smallLongNum; - assertEquals(-32768, shortNum1); + + long smallLongNum = -32769; + short shortNum2 = (short) smallLongNum; assertEquals(32767, shortNum2); long maxLong = Long.MAX_VALUE; - long minLong = Long.MIN_VALUE; - int minInt = (int) maxLong; - int maxInt = (int) minLong; + int int1 = (int) maxLong; + assertEquals(-1, int1); - assertEquals(-1, minInt); - assertEquals(0, maxInt); + long minLong = Long.MIN_VALUE; + int int2 = (int) minLong; + assertEquals(0, int2); } @Test @@ -42,12 +40,10 @@ public class ConversionTechniquesUnitTest { Float floatNum = 17.564f; long longNum = floatNum.longValue(); - assertEquals(17, longNum); Double doubleNum = 15.9999; longNum = doubleNum.longValue(); - assertEquals(15, longNum); } @@ -56,7 +52,6 @@ public class ConversionTechniquesUnitTest { Double doubleNum = 15.9999; long longNum = Math.round(doubleNum); - assertEquals(16, longNum); } @@ -67,8 +62,7 @@ public class ConversionTechniquesUnitTest { double dbl = doubleNum.doubleValue(); //unboxing int intgr = (int) dbl; //downcasting Integer intNum = Integer.valueOf(intgr); - - assertTrue(intNum == 10); + assertEquals(Integer.valueOf(10), intNum); } } From 325c0a4d07c7619010960bcb186a7284f29127ee Mon Sep 17 00:00:00 2001 From: Anshul Bansal Date: Tue, 9 Jul 2019 10:57:55 +0300 Subject: [PATCH 7/8] BAEL-2995 - possible lossy conversion - variable names fixed --- .../ConversionTechniquesUnitTest.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java b/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java index 6659c379b0..2001f39359 100644 --- a/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java +++ b/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java @@ -19,20 +19,20 @@ public class ConversionTechniquesUnitTest { assertEquals(15, integerNum); long largeLongNum = 32768; - short shortNum1 = (short) largeLongNum; - assertEquals(-32768, shortNum1); + short minShortNum = (short) largeLongNum; + assertEquals(-32768, minShortNum); long smallLongNum = -32769; - short shortNum2 = (short) smallLongNum; - assertEquals(32767, shortNum2); + short maxShortNum = (short) smallLongNum; + assertEquals(32767, maxShortNum); long maxLong = Long.MAX_VALUE; - int int1 = (int) maxLong; - assertEquals(-1, int1); + int minInt = (int) maxLong; + assertEquals(-1, minInt); long minLong = Long.MIN_VALUE; - int int2 = (int) minLong; - assertEquals(0, int2); + int maxInt = (int) minLong; + assertEquals(0, maxInt); } @Test From 550d1eac6dd018e7661f142406839a8b9a899de5 Mon Sep 17 00:00:00 2001 From: Anshul Bansal Date: Sat, 13 Jul 2019 22:08:49 +0300 Subject: [PATCH 8/8] BAEL-2995 - possible lossy conversion - conflicts resolved --- pom.xml | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/pom.xml b/pom.xml index 2f83b92b2c..33411ca43a 100644 --- a/pom.xml +++ b/pom.xml @@ -988,29 +988,6 @@ jws libraries - jackson - jackson-2 - jackson-simple - java-collections-conversions - java-collections-maps - java-collections-maps-2 - - java-ee-8-security-api - java-lite - java-numbers - java-numbers-2 - java-rmi - java-spi - java-streams - java-streams-2 - java-strings - java-strings-2 - java-vavr-stream - java-websocket - javafx - javax-servlets - javaxval - jaxb persistence-modules/hibernate5 persistence-modules/hibernate-mapping persistence-modules/java-jpa @@ -1170,6 +1147,7 @@ java-ee-8-security-api java-lite java-numbers + java-numbers-2 java-rmi java-spi java-streams @@ -1182,6 +1160,8 @@ javax-servlets javaxval jaxb + jee-7-security jersey JGit