From 17dc5ab2b22c1e0c288032bc692da92e90d2244b Mon Sep 17 00:00:00 2001 From: Charles Oliver Nutter Date: Wed, 8 Apr 2026 13:25:03 -0500 Subject: [PATCH 1/2] Avoid direct constructors from JRuby These classes either have been made abstract or will be made abstract in the future. We should avoid using the direct constructors from now on. --- src/main/java/org/jruby/ext/openssl/StringHelper.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/jruby/ext/openssl/StringHelper.java b/src/main/java/org/jruby/ext/openssl/StringHelper.java index 39800eee..7e426be7 100644 --- a/src/main/java/org/jruby/ext/openssl/StringHelper.java +++ b/src/main/java/org/jruby/ext/openssl/StringHelper.java @@ -63,7 +63,7 @@ static RubyString newString(final Ruby runtime, final byte[] bytes, final int co } static RubyString newString(final Ruby runtime, final CharSequence chars) { - return new RubyString(runtime, runtime.getString(), chars, ASCIIEncoding.INSTANCE); + return RubyString.newString(runtime, chars, ASCIIEncoding.INSTANCE); } static ByteList setByteListShared(final RubyString str) { @@ -73,12 +73,12 @@ static ByteList setByteListShared(final RubyString str) { static RubyString newUTF8String(final Ruby runtime, final ByteList bytes) { ByteList byteList = new ByteList(RubyEncoding.encodeUTF8(bytes), UTF8Encoding.INSTANCE, false); - return new RubyString(runtime, runtime.getString(), byteList); + return RubyString.newString(runtime, byteList); } static RubyString newUTF8String(final Ruby runtime, final CharSequence chars) { ByteList byteList = new ByteList(RubyEncoding.encodeUTF8(chars), UTF8Encoding.INSTANCE, false); - return new RubyString(runtime, runtime.getString(), byteList); + return RubyString.newString(runtime, byteList); } static RubyString newStringFrozen(final Ruby runtime, final ByteList bytes) { From 654046f1c7fe726269b9be6d0b1387eaa8114ec4 Mon Sep 17 00:00:00 2001 From: Charles Oliver Nutter Date: Wed, 8 Apr 2026 19:26:34 -0500 Subject: [PATCH 2/2] Bump JRuby to 9.2.1.0 for CharSequence newString This RubyString factory was added in 9.2.1.0. Since nobody should expect support for 9.2.0.0 at this point, I am bumping the compile- time dependency. --- Mavenfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mavenfile b/Mavenfile index 238f447d..71dddfe3 100644 --- a/Mavenfile +++ b/Mavenfile @@ -82,7 +82,7 @@ plugin :clean do 'failOnError' => 'false' ) end -jar 'org.jruby:jruby-core', '9.2.0.0', :scope => :provided +jar 'org.jruby:jruby-core', '9.2.1.0', :scope => :provided # for invoker generated classes we need to add javax.annotation when on Java > 8 jar 'javax.annotation:javax.annotation-api', '1.3.1', :scope => :compile jar 'org.junit.jupiter:junit-jupiter', '5.11.4', :scope => :test