You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by al...@apache.org on 2022/08/17 06:26:06 UTC

[geode-native] branch develop updated: GEODE-10404: Fix javaobject compilation for Java 11 (#980)

This is an automated email from the ASF dual-hosted git repository.

alberto pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git


The following commit(s) were added to refs/heads/develop by this push:
     new b3f8a08c3 GEODE-10404: Fix javaobject compilation for Java 11 (#980)
b3f8a08c3 is described below

commit b3f8a08c3b79e2036a0ae964658d1849affa7e79
Author: Mario Salazar de Torres <ma...@est.tech>
AuthorDate: Wed Aug 17 08:26:01 2022 +0200

    GEODE-10404: Fix javaobject compilation for Java 11 (#980)
    
    - After merging #973, javaobject compilation was broken for Java 11.
       The build passed since packer images uses Java 8, but as docker build
       images uses Java 11, compilation is failing there.
     - Root cause of the compilation issue is the difference in UTF-8 string
       handling between Java 8 and Java 11.
     - So, the issue was fixed by specifying UTF-8 encoding while compiling.
---
 cppcache/integration/test/PdxInstanceTest.cpp    | 4 ++--
 tests/javaobject/CMakeLists.txt                  | 2 ++
 tests/javaobject/ComparePdxInstanceFunction.java | 6 +++---
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/cppcache/integration/test/PdxInstanceTest.cpp b/cppcache/integration/test/PdxInstanceTest.cpp
index 680067a60..a0bf00b84 100644
--- a/cppcache/integration/test/PdxInstanceTest.cpp
+++ b/cppcache/integration/test/PdxInstanceTest.cpp
@@ -458,10 +458,10 @@ TEST(PdxInstanceTest, comparePdxInstanceWithStringWithJavaPdxInstance) {
         cache.createPdxInstanceFactory("PdxTests.MyTestClass", false);
 
     pdxInstanceFactory.writeString("asciiField", "value");
-    pdxInstanceFactory.writeString("utf8Field", u8"value€");
+    pdxInstanceFactory.writeString("utf8Field", u8"value\u20AC");
     pdxInstanceFactory.writeString("asciiHugeField", std::string(70000, 'x'));
     pdxInstanceFactory.writeString("utfHugeField",
-                                   std::string(70000, 'x') + u8"€");
+                                   std::string(70000, 'x') + u8"\u20AC");
     entry = pdxInstanceFactory.create();
   }
 
diff --git a/tests/javaobject/CMakeLists.txt b/tests/javaobject/CMakeLists.txt
index 767237940..7b1b81bdc 100644
--- a/tests/javaobject/CMakeLists.txt
+++ b/tests/javaobject/CMakeLists.txt
@@ -21,6 +21,8 @@ find_package(Java REQUIRED)
 include(UseJava)
 include(CheckJavaClassExists)
 
+set(CMAKE_JAVA_COMPILE_FLAGS -encoding utf8)
+
 check_java_class_exists(org.apache.geode.security.AuthenticationExpiredException ${Geode_CLASSPATH} hasAuthenticationExpiredException)
 
 file(GLOB_RECURSE SOURCES "*.java")
diff --git a/tests/javaobject/ComparePdxInstanceFunction.java b/tests/javaobject/ComparePdxInstanceFunction.java
index d9b048049..b6b66780d 100644
--- a/tests/javaobject/ComparePdxInstanceFunction.java
+++ b/tests/javaobject/ComparePdxInstanceFunction.java
@@ -37,9 +37,9 @@ public class ComparePdxInstanceFunction implements Function {
 
     PdxInstanceFactory pdxInstanceFactory = context.getCache().createPdxInstanceFactory("PdxTests.MyTestClass");
     pdxInstanceFactory.writeString("asciiField", "value");
-    pdxInstanceFactory.writeString("utf8Field", "value€");
-    pdxInstanceFactory.writeString("asciiHugeField", longString);
-    pdxInstanceFactory.writeString("utfHugeField", longString + "€");
+    pdxInstanceFactory.writeString("utf8Field", "value\u20AC");
+    pdxInstanceFactory.writeString("asciiHugeField", longString );
+    pdxInstanceFactory.writeString("utfHugeField", longString + "\u20AC");
 
     PdxInstance expectedInstance = pdxInstanceFactory.create();