From ab9e13643cc8dab5554955598f247737a3965175 Mon Sep 17 00:00:00 2001
From: vharseko <vharseko@3a-systems.ru>
Date: Tue, 09 Jan 2024 18:00:56 +0000
Subject: [PATCH] FIX performance java.util.TimeZone.getTimeZone(TimeZone.java:516) is synchronized (#318)

---
 opendj-core/src/main/java/org/forgerock/opendj/ldap/GeneralizedTime.java |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/GeneralizedTime.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/GeneralizedTime.java
index 8bdfc37..6045ac8 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/GeneralizedTime.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/GeneralizedTime.java
@@ -15,6 +15,7 @@
  */
 package org.forgerock.opendj.ldap;
 
+import java.time.ZoneId;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
@@ -25,6 +26,7 @@
 import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.util.Reject;
 
+
 import static com.forgerock.opendj.ldap.CoreMessages.*;
 
 /**
@@ -790,7 +792,11 @@
 
         // If we've gotten here, then it looks like a valid offset. We can
         // create a time zone by using "GMT" followed by the offset.
-        return TimeZone.getTimeZone("GMT" + offSetStr);
+        try {
+        	return TimeZone.getTimeZone(ZoneId.of("GMT"+offSetStr)); 
+        }catch (java.time.DateTimeException e) {
+        	return TimeZone.getTimeZone("GMT"+offSetStr); 
+		}
     }
 
     /** Lazily constructed internal representations. */

--
Gitblit v1.10.0