Передача Date в открываемый экран вызывает ошибку ClassCastException: class java.util.Date cannot be cast to class java.sql.Date

В вызывающем и вызываемом экранах есть поля:

<dateField id="startDateField" resolution="DAY" autofill="true"/>
<dateField id="endDateField" resolution="DAY" autofill="true"/>

При вызове экрана с передачей параметров:

StatementCustomerActEntityBrowse screen = screens.create(StatementCustomerActEntityBrowse.class);
screen.setStartDateField(startDateField.getValue());
screen.setEndDateField(endDateField.getValue());
screen.setCustomerField(statementCustomersEntitiesDc.getItem().getCustomer());
screens.show(screen);

получаю ошибку, указанную в теме сообщения, при передаче дат
Вопрос: как исправить?

Судя по ошибке, у вас в вызываемом экране у startDateField и endDateField класс java.sql.Date. А контрол dateField отдает java.util.Date.
Измените у startDateField и endDateField класс на java.util.Date и все будет хорошо.

Так пробовал, в первую очередь :(. И, что интересно, работает. Но куба-студия проникновенно предупреждает:

Injected type is incorrect (should be DateField<Date>)

И норовит изменить тип на java.sql.Date.
Чего она?

А как у вас DateField инжектирован?
Надо

@Inject
DateField<Date> dateField

Но именно java.util.Date.

Да, именно так инжектирован. Студия автоматом ставит тип sql, импортируя соответствующий класс. Меняю

import java.sql.Date

на

import java.util.Date

и попадаю в ситуацию, описанную в предыдущем посте.

Хм… Не замечал такого.

Да ладно… Работает же. Просто напрягает желтый фон на этих инжектах. До этого момента студия возмущалась только по делу и много полезного подсказывала.

Я замечал. Тоже поменял тип на верный и прошел мимо.

Добрый день,
Спасибо что сообщили о проблеме.
Будет поправлено в Studio: https://youtrack.cuba-platform.com/issue/STUDIO-8441

Там с DateField довольно сложная логика, т.к. он может работать с разными типами данных от java.sql.Date до OffsetDateTime. Но в данном случае компонент создает значения с типом java.util.Date.

1 симпатия