Hello!
I’m testing out an upgrade from Ignition 7.3.4 to 7.5.6. The problem I’m facing is that the code editor (Python) in the Designer is now inpractically slow, if typing any letters or numbers. Otherwise it works fine: For example, cut and paste and hitting Enter key repeatedly.
The effect is significant, I can’t use the code editor for programming, only for text block handling.
My OS is Xubuntu and this problem reproduces with both, Java 6 and Java 7 equally.
A possibly userful lead I got, is that every time I break the execution of the Designer, the stack (of the thread likely in question) looks like below. Seems like a race condition of some sort:
Cheers,
cgz
Thread [AWT-EventQueue-0] (Suspended)
Unsafe.park(boolean, long) line: not available [native method]
LockSupport.park(Object) line: 156
AbstractQueuedSynchronizer$ConditionObject.await() line: 1987
SunToolkit.awtLockWait() line: 248
XToolkit.getCurrentServerTime() line: 1189
XClipboard.setContentsNative(Transferable) line: 69
XClipboard(SunClipboard).setContents(Transferable, ClipboardOwner) line: 93
CodeEditorFactory$1(CodeEditor).selectionChanged(SelectionEvent) line: not available
DefaultSelectionModel.fireSelectionChangeEvent(int, int, int, int) line: not available
DefaultSelectionModel.setSelection(int, int) line: not available
CodeEditorFactory$1(CodeEditor).a(int, int, boolean, boolean) line: not available
CodeEditorFactory$1(CodeEditor).select(int, int, boolean) line: not available
CodeEditorFactory$1(CodeEditor).select(int, int) line: not available
CodeEditor$p_.insertUpdate(DocumentEvent) line: not available
SyntaxDocument(AbstractDocument).fireInsertUpdate(DocumentEvent) line: 185
SyntaxDocument.fireInsertUpdate(DocumentEvent) line: not available
SyntaxDocument(AbstractDocument).handleInsertString(int, String, AttributeSet) line: 734
SyntaxDocument(AbstractDocument).insertString(int, String, AttributeSet) line: 693
SyntaxDocument(PlainDocument).insertString(int, String, AttributeSet) line: 114
a.insertStringAtCaret(CodeEditor, String, boolean, boolean) line: not available
CodeEditorFactory$1(CodeEditor).c(String) line: not available
CodeEditorFactory$1(CodeEditor).b(String) line: not available
CodeEditorFactory$1(CodeEditor).insertChar(String) line: not available
InputHandler$bb_.actionPerformed(ActionEvent) line: not available
DefaultInputHandler(InputHandler).executeAction(Action, Object, String) line: not available
DefaultInputHandler(InputHandler).keyTyped(KeyEvent) line: not available
CodeEditorFactory$1(CodeEditor).processKeyEvent(KeyEvent) line: not available
CodeEditorFactory$1(Component).processEvent(AWTEvent) line: 6067
CodeEditorFactory$1(Container).processEvent(AWTEvent) line: 2039
CodeEditorFactory$1(Component).dispatchEventImpl(AWTEvent) line: 4653
CodeEditorFactory$1(Container).dispatchEventImpl(AWTEvent) line: 2097
CodeEditorFactory$1(Component).dispatchEvent(AWTEvent) line: 4481
DefaultKeyboardFocusManager(KeyboardFocusManager).redispatchEvent(Component, AWTEvent) line: 1836
DefaultKeyboardFocusManager.dispatchKeyEvent(KeyEvent) line: 712
DefaultKeyboardFocusManager.preDispatchKeyEvent(KeyEvent) line: 990
DefaultKeyboardFocusManager.typeAheadAssertions(Component, AWTEvent) line: 855
DefaultKeyboardFocusManager.dispatchEvent(AWTEvent) line: 676
ScriptPlayground(Component).dispatchEventImpl(AWTEvent) line: 4525
ScriptPlayground(Container).dispatchEventImpl(AWTEvent) line: 2097
ScriptPlayground(Window).dispatchEventImpl(AWTEvent) line: 2482
ScriptPlayground(Component).dispatchEvent(AWTEvent) line: 4481
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 648
EventQueue.access$000(EventQueue, AWTEvent, Object) line: 84
EventQueue$1.run() line: 607
EventQueue$1.run() line: 605
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
AccessControlContext$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 87
AccessControlContext$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext) line: 98
EventQueue$2.run() line: 621
EventQueue$2.run() line: 619
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
AccessControlContext$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 87
EventQueue.dispatchEvent(AWTEvent) line: 618
EventDispatchThread.pumpOneEventForFilters(int) line: 269
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 184
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 174
EventDispatchThread.pumpEvents(int, Conditional) line: 169
EventDispatchThread.pumpEvents(Conditional) line: 161
EventDispatchThread.run() line: 122