--- old/src/java.base/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java 2016-11-22 14:45:41.000000000 +0530 +++ new/src/java.base/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java 2016-11-22 14:45:41.000000000 +0530 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,6 +50,7 @@ import java.util.spi.LocaleNameProvider; import java.util.spi.LocaleServiceProvider; import java.util.spi.TimeZoneNameProvider; +import sun.text.spi.JavaTimeDateTimePatternProvider; import sun.util.resources.LocaleData; import sun.util.spi.CalendarProvider; @@ -109,6 +110,8 @@ return (P) getCalendarNameProvider(); case "CalendarProvider": return (P) getCalendarProvider(); + case "JavaTimeDateTimePatternProvider": + return (P) getJavaTimeDateTimePatternProvider(); default: throw new InternalError("should not come down here"); } @@ -128,6 +131,7 @@ private volatile CalendarNameProvider calendarNameProvider; private volatile CalendarProvider calendarProvider; + private volatile JavaTimeDateTimePatternProvider javaTimeDateTimePatternProvider; /* * Getter methods for java.text.spi.* providers @@ -354,6 +358,27 @@ return calendarProvider; } + /** + * Getter methods for sun.text.spi.JavaTimeDateTimePatternProvider provider + */ + @Override + public JavaTimeDateTimePatternProvider getJavaTimeDateTimePatternProvider() { + if (javaTimeDateTimePatternProvider == null) { + JavaTimeDateTimePatternProvider provider = AccessController.doPrivileged( + (PrivilegedAction) () + -> new JavaTimeDateTimePatternImpl( + getAdapterType(), + getLanguageTagSet("FormatData"))); + + synchronized (this) { + if (javaTimeDateTimePatternProvider == null) { + javaTimeDateTimePatternProvider = provider; + } + } + } + return javaTimeDateTimePatternProvider; + } + @Override public LocaleResources getLocaleResources(Locale locale) { LocaleResources lr = localeResourcesMap.get(locale);