[hibernate-dev] Locale to/from String
Steve Ebersole
steve at hibernate.org
Fri Aug 12 22:05:04 EDT 2016
We could also redo our toString support to support "__ch123" if we want. I
just think its better to standardize if we are talking externalizations.
On Fri, Aug 12, 2016 at 8:47 PM Steve Ebersole <steve at hibernate.org> wrote:
> I have had a comment in LocaleType for quite some time to convert
> fromString handling to use the Locale.Builder introduced in Java 7. As
> part of the 6.0 work I took a quick look at this.
>
> I think we handle this incorrectly for certain cases currently.
>
> Currently we implement toString(Locale) via Locale#toString, where the
> authors specifically say "If both the language and country fields are
> missing, this function will return the empty string, even if the variant,
> script, or extensions field is present (you can't have a locale with just
> a variant, the variant must accompany a well-formed language or country
> code)."
>
> However in fromString we actually allow for such cases. Consider this
> test:
>
> assertEquals(
> "___ch123",
> LocaleTypeDescriptor.INSTANCE.toString(
> LocaleTypeDescriptor.INSTANCE.fromString( "__ch123" )
> )
> );
>
> This actually ends up failing. The assertion fails. LocaleTypeDescriptor.INSTANCE.fromString(
> "__ch123" ) does in fact parse us a Locale with no language, no
> country/region and a variant of "ch123". In fact if I check the Locale
> fields individually they are all set that way.
>
> However, as per that javadoc note, the call to LocaleTypeDescriptor#toString
> (Locale#toString) returns "".
>
> So the question becomes what we want to support here. If the described
> Java behavior is to not allow a Locale with just a variant (no language nor
> country/region) I think we may want to enforce that here too.
>
> Thoughts?
>
>
More information about the hibernate-dev
mailing list