Oracle SQL Developer зависает после переименования пакета plsql - PullRequest
0 голосов
/ 08 января 2019

Если я переименую пакет, а затем скомпилирую его, SQL-Developer зависнет. Это известная проблема / есть какие-то решения для такого поведения?

В более ранних версиях (например, 4.x) был создан новый пакет.

Добавление или удаление функций и процедур работает, но без изменения названия пакета. Я сделал скриншот после того, как sqldeveloper заморожен - я должен убить его с помощью диспетчера задач Windows.

Новый пакет создан, и я могу редактировать его после запуска нового sqldeveloper.

Спасибо

Версия для разработчиков SQL 18.3.0.277 Oracle Database 12c

полный вывод jstack: https://pastebin.com/VXZb2rSn

java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Found 1 deadlock.

1 Ответ

0 голосов
/ 08 января 2019

Открыть пакет (спец!)

create or replace PACKAGE PACKAGE_SO AS 

  /* TODO enter package declarations (types, exceptions, methods etc) here */ 

END PACKAGE_SO;

Взять код, переименовать пакет.

create or replace PACKAGE PACKAGE_SO_NEW_NAME AS 

  /* TODO enter package declarations (types, exceptions, methods etc) here */ 

END PACKAGE_SO_NEW_NAME;

Compile.

enter image description here

Я получаю всплывающее диалоговое окно, указывающее, что был создан новый пакет, и после небольшой паузы я получаю новый редактор кода.

enter image description here

Мой первый пакет больше не открыт.

Мне нужно обновить элемент Package в дереве, чтобы увидеть, как появляется новый.

Это на версии 18.3 с использованием Java 8 на Mac против базы данных 18c (12.2).

Теперь, почему у вас это не работает?

Похоже, базовый код фреймворка пытается выполнить работу интерфейса пользователя в потоке, не являющемся пользовательским интерфейсом, и он застревает.

Не уверен, что вызвало это состояние для вас, а не для меня, но это было бы ошибкой.

...