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();