Очевидным ответом будет , чтобы поймать исключение и проигнорировать его.
Если вы не можете этого сделать, возможны следующие варианты:
Разработайте патч для Eclipse, который позволяет подключаемому модулю подавлять эти исключения ... каким-то образом 1 . Затем отправьте отчет об ошибке Eclipse, указав свой патч в качестве решения.
Попросите пользователя добавить файл Intellij "idea.jar" в путь к классам Eclipse, чтобы Eclipse мог десериализовать эти объекты . Затем вам может потребоваться внести дополнительные изменения в свой плагин, чтобы он мог понять объекты IDEA, которые пользователь пытается скопировать и вставить в Eclipse.
Документируйте, что делает ваш плагин не поддерживает копирование / вставку из Intellij IDEA.
Я не видел никакого способа остановить Intellij от помещения сериализованных объектов в буфер обмена.
ОБНОВЛЕНИЕ - Я провел еще несколько исследований по этому поводу. Строка
"while constructing DataFlavor for:"
появляется в исходном коде для java.awt.datatransfer.SystemFlavorMap
. Это говорит о том, что проблема на самом деле та же, что и Java ошибок JDK-6606476 и 8246248 . (В последнем случае проблема возникает из-за определенных типов файлов JPEG.)
Изучение исходного кода предполагает, что эту проблему можно обойти; например, создав и зарегистрировав пользовательский DataFlavor
и реализовав DataContentHandler
/ DataContentHandlerFactory
, чтобы позаботиться о преобразовании 2 . Однако я не могу дать вам подробностей.
1 - Оказывается, проблема, вероятно, НЕ в базе кода Eclipse.
2 - Если вам не нравится декодирование Java формата сериализации вручную , Я предлагаю вам "десериализовать" этот материал как объекты без содержимого ... и заставить ваше приложение незаметно игнорировать события DnD для такого рода данных.