From ecaf408d30af119c04c67bf99790655a1e818472 Mon Sep 17 00:00:00 2001 From: Sara Golemon Date: Sun, 25 Jun 2017 17:44:59 -0400 Subject: [PATCH] Produce a better exception message when IntlDateFormatter constructor fails. --- ext/intl/dateformat/dateformat_create.cpp | 2 +- .../tests/dateformat_invalid_timezone.phpt | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 ext/intl/tests/dateformat_invalid_timezone.phpt diff --git a/ext/intl/dateformat/dateformat_create.cpp b/ext/intl/dateformat/dateformat_create.cpp index 00a5cc593c..e060711ce6 100644 --- a/ext/intl/dateformat/dateformat_create.cpp +++ b/ext/intl/dateformat/dateformat_create.cpp @@ -216,7 +216,7 @@ U_CFUNC PHP_METHOD( IntlDateFormatter, __construct ) return_value = getThis(); if (datefmt_ctor(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1) == FAILURE) { if (!EG(exception)) { - zend_throw_exception(IntlException_ce_ptr, "Constructor failed", 0); + zend_throw_exception(IntlException_ce_ptr, ZSTR_VAL(intl_error_get_message(NULL)), intl_error_get_code(NULL)); } } zend_restore_error_handling(&error_handling); diff --git a/ext/intl/tests/dateformat_invalid_timezone.phpt b/ext/intl/tests/dateformat_invalid_timezone.phpt new file mode 100644 index 0000000000..5b54fa89bb --- /dev/null +++ b/ext/intl/tests/dateformat_invalid_timezone.phpt @@ -0,0 +1,18 @@ +--TEST-- +IntlDateFormat constructor failure +--INI-- +date.timezone=Mars/Utopia_Planitia +--SKIPIF-- +getMessage(); +} +--EXPECT-- +IntlDateFormatter::__construct(): Invalid date.timezone value 'Mars/Utopia_Planitia', we selected the timezone 'UTC' for now. -- 2.50.1