Я обнаружил, что PropertyEditorManager регистрирует/находит редакторы на основе ThreadGroupContext, а не на основе глобального реестра, как до Java7.
И Java7 каждый раз создает новый ThreadGroupContext для новой ThreadGroup. Таким образом, PropertyEditorFinder (который фактически регистрирует/находит редакторы) снова является новинкой.
Java использует предопределенные редакторы для некоторых классов (
, Long и т. д.) и регистрирует их в PropertyEditorFinder в ctor). Допустим, я хочу зарегистрировать свой собственный PropertyEditor для некоторого предопределенного класса (например, Long). Это легко сделать в Java6, но в Java7 каждый раз, когда потоки создаются в новой ThreadGroup, я потерял свой редактор.
Итак, не могли бы вы сказать мне, что это такое? есть ли какое-нибудь решение, позволяющее правильно определить, какие редакторы создаются для новой ThreadGroup в Java7? Если столкнулись с какой-то проблемой и как ее решить?
P.S. Наверное, мне стоит извиниться за мой английский =)
P.P.S. ThreadGroupContext заменяет AppContext. И я надеялся, что реализация создания контекстов будет одинаковой: оба используют сопоставление между ThreadGroup и контекстом (
в Java 6, ThreadGroupContext в Java 7). А Java 6 использует тот же AppContext для новой ThreadGroup, что и для ее родительского элемента. Другими словами, AppContext используется для всего дерева ThreadGroup в jvm. Но, к сожалению, создание ThreadGroupContext отличается — это просто новый контекст для новой группы. Таким образом, вопрос автоматически решается, если однажды ThreadGroupContext будет использовать ту же технику создания.
Подробнее здесь:
https://stackoverflow.com/questions/134 ... oupcontext