chimerapps / niddler-ui Goto Github PK
View Code? Open in Web Editor NEWUI component for Niddler.
License: Apache License 2.0
UI component for Niddler.
License: Apache License 2.0
My Android Studio just froze. Looking at the thread dump, it appears Niddler is the culprit:
"AWT-EventQueue-0" #22 prio=6 os_prio=0 cpu=479770.25ms elapsed=8369.57s tid=0x00007f078411e800 nid=0x1bfc4 waiting for monitor entry [0x00007f074d913000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList.get(ObservableLinkedMessageList.kt:81)
- waiting to lock <0x000000071c27f688> (a java.util.ArrayList)
at com.icapps.niddler.lib.model.NiddlerMessageContainer.getMessagesWithRequestId(NiddlerMessageContainer.kt:67)
- locked <0x000000071c26bd40> (a com.icapps.niddler.lib.model.NiddlerMessageContainer)
at com.icapps.niddler.lib.model.NiddlerMessageContainer.findResponse(NiddlerMessageContainer.kt:72)
at com.chimerapps.niddler.ui.component.view.TimelineTableModel.getValueAt(TimelineView.kt:296)
at javax.swing.JTable.getValueAt([email protected]/JTable.java:2706)
at javax.swing.JTable.prepareRenderer([email protected]/JTable.java:5724)
at com.intellij.ui.table.JBTable.prepareRenderer(JBTable.java:644)
at javax.swing.plaf.basic.BasicTableUI.paintCell([email protected]/BasicTableUI.java:2185)
at javax.swing.plaf.basic.BasicTableUI.paintCells([email protected]/BasicTableUI.java:2087)
at javax.swing.plaf.basic.BasicTableUI.paint([email protected]/BasicTableUI.java:1883)
at javax.swing.plaf.ComponentUI.update([email protected]/ComponentUI.java:161)
at javax.swing.JComponent.paintComponent([email protected]/JComponent.java:800)
at com.intellij.ui.table.JBTable.paintComponent(JBTable.java:366)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1077)
at com.intellij.ui.table.JBTable.paint(JBTable.java:496)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JViewport.paint([email protected]/JViewport.java:737)
at com.intellij.ui.components.JBViewport.paint(JBViewport.java:240)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JLayeredPane.paint([email protected]/JLayeredPane.java:590)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JLayeredPane.paint([email protected]/JLayeredPane.java:590)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JLayeredPane.paint([email protected]/JLayeredPane.java:590)
at javax.swing.JComponent.paintToOffscreen([email protected]/JComponent.java:5263)
at javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl([email protected]/RepaintManager.java:1654)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered([email protected]/RepaintManager.java:1629)
at javax.swing.RepaintManager$PaintManager.paint([email protected]/RepaintManager.java:1566)
at javax.swing.BufferStrategyPaintManager.paint([email protected]/BufferStrategyPaintManager.java:262)
at javax.swing.RepaintManager.paint([email protected]/RepaintManager.java:1333)
at javax.swing.JComponent._paintImmediately([email protected]/JComponent.java:5211)
at javax.swing.JComponent.paintImmediately([email protected]/JComponent.java:5021)
at javax.swing.RepaintManager$4.run([email protected]/RepaintManager.java:868)
at javax.swing.RepaintManager$4.run([email protected]/RepaintManager.java:851)
at java.security.AccessController.doPrivileged([email protected]/Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege([email protected]/ProtectionDomain.java:85)
at javax.swing.RepaintManager.paintDirtyRegions([email protected]/RepaintManager.java:851)
at javax.swing.RepaintManager.paintDirtyRegions([email protected]/RepaintManager.java:826)
at javax.swing.RepaintManager.prePaintDirtyRegions([email protected]/RepaintManager.java:775)
at javax.swing.RepaintManager$ProcessingRunnable.run([email protected]/RepaintManager.java:1901)
at java.awt.event.InvocationEvent.dispatch([email protected]/InvocationEvent.java:313)
at java.awt.EventQueue.dispatchEventImpl([email protected]/EventQueue.java:776)
at java.awt.EventQueue$4.run([email protected]/EventQueue.java:727)
at java.awt.EventQueue$4.run([email protected]/EventQueue.java:721)
at java.security.AccessController.doPrivileged([email protected]/Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege([email protected]/ProtectionDomain.java:85)
at java.awt.EventQueue.dispatchEvent([email protected]/EventQueue.java:746)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:971)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:841)
at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:452)
at com.intellij.ide.IdeEventQueue$$Lambda$661/0x00000008008af440.compute(Unknown Source)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:744)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:451)
at com.intellij.ide.IdeEventQueue$$Lambda$659/0x00000008008aa840.run(Unknown Source)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:495)
at java.awt.EventDispatchThread.pumpOneEventForFilters([email protected]/EventDispatchThread.java:203)
at java.awt.EventDispatchThread.pumpEventsForFilter([email protected]/EventDispatchThread.java:124)
at java.awt.EventDispatchThread.pumpEventsForHierarchy([email protected]/EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents([email protected]/EventDispatchThread.java:109)
at java.awt.EventDispatchThread.pumpEvents([email protected]/EventDispatchThread.java:101)
at java.awt.EventDispatchThread.run([email protected]/EventDispatchThread.java:90)
Locked ownable synchronizers:
- None
"WebSocketConnectReadThread-6945" #6945 prio=6 os_prio=0 cpu=11.17ms elapsed=166.12s tid=0x00007f0733656000 nid=0x28ea2 waiting for monitor entry [0x00007f05a51cf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.awt.Container.validate([email protected]/Container.java:1646)
- waiting to lock <0x0000000703d6c1d0> (a java.awt.Component$AWTTreeLock)
at com.intellij.ui.tree.ui.DefaultTreeUI$1.getNodeDimensions(DefaultTreeUI.java:367)
at javax.swing.tree.AbstractLayoutCache.getNodeDimensions([email protected]/AbstractLayoutCache.java:493)
at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize([email protected]/VariableHeightLayoutCache.java:1344)
at javax.swing.tree.VariableHeightLayoutCache.createNodeAt([email protected]/VariableHeightLayoutCache.java:767)
at javax.swing.tree.VariableHeightLayoutCache.treeNodesInserted([email protected]/VariableHeightLayoutCache.java:476)
at com.intellij.ui.tree.ui.DefaultTreeUI$2.treeNodesInserted(DefaultTreeUI.java:403)
at javax.swing.plaf.basic.BasicTreeUI$Handler.treeNodesInserted([email protected]/BasicTreeUI.java:4285)
at javax.swing.tree.DefaultTreeModel.fireTreeNodesInserted([email protected]/DefaultTreeModel.java:544)
at javax.swing.tree.DefaultTreeModel.nodesWereInserted([email protected]/DefaultTreeModel.java:331)
at javax.swing.tree.DefaultTreeModel.insertNodeInto([email protected]/DefaultTreeModel.java:251)
at com.chimerapps.niddler.ui.component.view.LinkedTreeModel.itemsInserted(LinkedView.kt:119)
- locked <0x000000074ab81760> (a com.chimerapps.niddler.ui.component.view.LinkedTreeModel)
at com.icapps.niddler.lib.utils.ObservableMutableList.add(ObservableList.kt:17)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList$Companion.insert(ObservableLinkedMessageList.kt:43)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList$Companion.addMessage(ObservableLinkedMessageList.kt:33)
at com.icapps.niddler.lib.model.ObservableLinkedMessagesView.notifyMessageInsert(ObservableLinkedMessageList.kt:132)
- locked <0x0000000733501a00> (a com.icapps.niddler.lib.model.ObservableLinkedMessagesView)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList$addMessage$$inlined$synchronized$lambda$1.invoke(ObservableLinkedMessageList.kt:62)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList$addMessage$$inlined$synchronized$lambda$1.invoke(ObservableLinkedMessageList.kt:8)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList.dispatchToViews(ObservableLinkedMessageList.kt:111)
- locked <0x0000000710329da0> (a java.util.ArrayList)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList.addMessage(ObservableLinkedMessageList.kt:62)
- locked <0x000000071c27f688> (a java.util.ArrayList)
at com.icapps.niddler.lib.model.NiddlerMessageContainer$messageAdapter$1.onServiceMessage(NiddlerMessageContainer.kt:25)
at com.icapps.niddler.lib.connection.NiddlerClient.onServiceMessage(NiddlerClient.kt:94)
- locked <0x0000000796e654d0> (a java.util.HashSet)
at com.icapps.niddler.lib.connection.protocol.NiddlerV1ProtocolHandler.onServiceMessage(NiddlerV1ProtocolHandler.kt:32)
at com.icapps.niddler.lib.connection.protocol.NiddlerV2ProtocolHandler.onMessage(NiddlerV2ProtocolHandler.kt:31)
at com.icapps.niddler.lib.connection.protocol.NiddlerV4ProtocolHandler.onMessage(NiddlerV4ProtocolHandler.kt:34)
at com.icapps.niddler.lib.connection.WebSocketNiddlerClient.onMessage(NiddlerClient.kt:217)
at org.java_websocket.client.WebSocketClient.onWebsocketMessage(WebSocketClient.java:593)
at org.java_websocket.drafts.Draft_6455.processFrameText(Draft_6455.java:885)
at org.java_websocket.drafts.Draft_6455.processFrame(Draft_6455.java:819)
at org.java_websocket.WebSocketImpl.decodeFrames(WebSocketImpl.java:379)
at org.java_websocket.WebSocketImpl.decode(WebSocketImpl.java:216)
at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:506)
at java.lang.Thread.run([email protected]/Thread.java:834)
Locked ownable synchronizers:
- None
This is with Android Studio Arctic Fox | 2020.3.1 Beta 1 + Niddler 2.10.2
Currently when Niddler is set to auto-connect, IDE will auto-switch to the Niddler window on every single run of the app.
That is pretty annoying, because most of the time I will not be needing Niddler right away.
Could you add an option to disable this behavior?
When the text field does not have focus, ctrl-F does not trigger search
Apparently, when I set response status to something else (e.g. 500), I'm still getting status 200 back.
Other responses are working normally.
This is with Android Studio 4.0 and Niddler-ui 2.9.5
I've managed to get Niddler to freeze Android Studio once again. Here is the thread dump:
Found one Java-level deadlock:
=============================
"AWT-EventQueue-0":
waiting to lock monitor 0x00007f107c0f7c00 (object 0x0000000717e1f588, a java.util.ArrayList),
which is held by "WebSocketConnectReadThread-1158"
"WebSocketConnectReadThread-1158":
waiting to lock monitor 0x00007f1134007600 (object 0x0000000707d85be8, a java.awt.Component$AWTTreeLock),
which is held by "AWT-EventQueue-0"
Java stack information for the threads listed above:
===================================================
"AWT-EventQueue-0":
at com.icapps.niddler.lib.model.ObservableLinkedMessageList.get(ObservableLinkedMessageList.kt:81)
- waiting to lock <0x0000000717e1f588> (a java.util.ArrayList)
at com.icapps.niddler.lib.model.NiddlerMessageContainer.getMessagesWithRequestId(NiddlerMessageContainer.kt:67)
- locked <0x0000000717de2cb0> (a com.icapps.niddler.lib.model.NiddlerMessageContainer)
at com.icapps.niddler.lib.model.NiddlerMessageContainer.findResponse(NiddlerMessageContainer.kt:72)
at com.chimerapps.niddler.ui.component.view.TimelineTableModel.getValueAt(TimelineView.kt:302)
at javax.swing.JTable.getValueAt([email protected]/JTable.java:2706)
at javax.swing.JTable.prepareRenderer([email protected]/JTable.java:5724)
at com.intellij.ui.table.JBTable.prepareRenderer(JBTable.java:658)
at javax.swing.plaf.basic.BasicTableUI.paintCell([email protected]/BasicTableUI.java:2185)
at javax.swing.plaf.basic.BasicTableUI.paintCells([email protected]/BasicTableUI.java:2087)
at javax.swing.plaf.basic.BasicTableUI.paint([email protected]/BasicTableUI.java:1883)
at javax.swing.plaf.ComponentUI.update([email protected]/ComponentUI.java:161)
at javax.swing.JComponent.paintComponent([email protected]/JComponent.java:800)
at com.intellij.ui.table.JBTable.paintComponent(JBTable.java:373)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1077)
at com.intellij.ui.table.JBTable.paint(JBTable.java:503)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JViewport.paint([email protected]/JViewport.java:737)
at com.intellij.ui.components.JBViewport.paint(JBViewport.java:241)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JLayeredPane.paint([email protected]/JLayeredPane.java:590)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JLayeredPane.paint([email protected]/JLayeredPane.java:590)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JComponent.paintChildren([email protected]/JComponent.java:910)
- locked <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint([email protected]/JComponent.java:1086)
at javax.swing.JLayeredPane.paint([email protected]/JLayeredPane.java:590)
at javax.swing.JComponent.paintToOffscreen([email protected]/JComponent.java:5263)
at javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl([email protected]/RepaintManager.java:1654)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered([email protected]/RepaintManager.java:1629)
at javax.swing.RepaintManager$PaintManager.paint([email protected]/RepaintManager.java:1566)
at javax.swing.BufferStrategyPaintManager.paint([email protected]/BufferStrategyPaintManager.java:262)
at javax.swing.RepaintManager.paint([email protected]/RepaintManager.java:1333)
at javax.swing.JComponent._paintImmediately([email protected]/JComponent.java:5211)
at javax.swing.JComponent.paintImmediately([email protected]/JComponent.java:5021)
at javax.swing.RepaintManager$4.run([email protected]/RepaintManager.java:868)
at javax.swing.RepaintManager$4.run([email protected]/RepaintManager.java:851)
at java.security.AccessController.doPrivileged([email protected]/Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege([email protected]/ProtectionDomain.java:85)
at javax.swing.RepaintManager.paintDirtyRegions([email protected]/RepaintManager.java:851)
at javax.swing.RepaintManager.paintDirtyRegions([email protected]/RepaintManager.java:826)
at javax.swing.RepaintManager.prePaintDirtyRegions([email protected]/RepaintManager.java:775)
at javax.swing.RepaintManager$ProcessingRunnable.run([email protected]/RepaintManager.java:1901)
at java.awt.event.InvocationEvent.dispatch([email protected]/InvocationEvent.java:313)
at java.awt.EventQueue.dispatchEventImpl([email protected]/EventQueue.java:776)
at java.awt.EventQueue$4.run([email protected]/EventQueue.java:727)
at java.awt.EventQueue$4.run([email protected]/EventQueue.java:721)
at java.security.AccessController.doPrivileged([email protected]/Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege([email protected]/ProtectionDomain.java:85)
at java.awt.EventQueue.dispatchEvent([email protected]/EventQueue.java:746)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:976)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:843)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:454)
at com.intellij.ide.IdeEventQueue$$Lambda$714/0x000000080096d440.compute(Unknown Source)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:773)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:453)
at com.intellij.ide.IdeEventQueue$$Lambda$713/0x000000080096ec40.run(Unknown Source)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:497)
at java.awt.EventDispatchThread.pumpOneEventForFilters([email protected]/EventDispatchThread.java:203)
at java.awt.EventDispatchThread.pumpEventsForFilter([email protected]/EventDispatchThread.java:124)
at java.awt.EventDispatchThread.pumpEventsForHierarchy([email protected]/EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents([email protected]/EventDispatchThread.java:109)
at java.awt.EventDispatchThread.pumpEvents([email protected]/EventDispatchThread.java:101)
at java.awt.EventDispatchThread.run([email protected]/EventDispatchThread.java:90)
"WebSocketConnectReadThread-1158":
at java.awt.Container.addImpl([email protected]/Container.java:1100)
- waiting to lock <0x0000000707d85be8> (a java.awt.Component$AWTTreeLock)
at javax.swing.CellRendererPane.addImpl([email protected]/CellRendererPane.java:108)
at java.awt.Container.add([email protected]/Container.java:436)
at com.intellij.ui.tree.ui.DefaultTreeUI.getRenderer(DefaultTreeUI.java:170)
at com.intellij.ui.tree.ui.DefaultTreeUI$1.getNodeDimensions(DefaultTreeUI.java:380)
at javax.swing.tree.AbstractLayoutCache.getNodeDimensions([email protected]/AbstractLayoutCache.java:493)
at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize([email protected]/VariableHeightLayoutCache.java:1344)
at javax.swing.tree.VariableHeightLayoutCache.createNodeAt([email protected]/VariableHeightLayoutCache.java:767)
at javax.swing.tree.VariableHeightLayoutCache.treeNodesInserted([email protected]/VariableHeightLayoutCache.java:476)
at com.intellij.ui.tree.ui.DefaultTreeUI$2.treeNodesInserted(DefaultTreeUI.java:418)
at javax.swing.plaf.basic.BasicTreeUI$Handler.treeNodesInserted([email protected]/BasicTreeUI.java:4285)
at javax.swing.tree.DefaultTreeModel.fireTreeNodesInserted([email protected]/DefaultTreeModel.java:544)
at javax.swing.tree.DefaultTreeModel.nodesWereInserted([email protected]/DefaultTreeModel.java:331)
at javax.swing.tree.DefaultTreeModel.insertNodeInto([email protected]/DefaultTreeModel.java:251)
at com.chimerapps.niddler.ui.component.view.LinkedTreeModel.itemsInserted(LinkedView.kt:119)
- locked <0x00000007450ef7e8> (a com.chimerapps.niddler.ui.component.view.LinkedTreeModel)
at com.icapps.niddler.lib.utils.ObservableMutableList.add(ObservableList.kt:17)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList$Companion.insert(ObservableLinkedMessageList.kt:39)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList$Companion.addMessage(ObservableLinkedMessageList.kt:33)
at com.icapps.niddler.lib.model.ObservableLinkedMessagesView.notifyMessageInsert(ObservableLinkedMessageList.kt:132)
- locked <0x00000007450f4438> (a com.icapps.niddler.lib.model.ObservableLinkedMessagesView)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList$addMessage$1$1.invoke(ObservableLinkedMessageList.kt:62)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList$addMessage$1$1.invoke(ObservableLinkedMessageList.kt:62)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList.dispatchToViews(ObservableLinkedMessageList.kt:111)
- locked <0x0000000717e1f5a0> (a java.util.ArrayList)
at com.icapps.niddler.lib.model.ObservableLinkedMessageList.addMessage(ObservableLinkedMessageList.kt:62)
- locked <0x0000000717e1f588> (a java.util.ArrayList)
at com.icapps.niddler.lib.model.NiddlerMessageContainer$messageAdapter$1.onServiceMessage(NiddlerMessageContainer.kt:25)
at com.icapps.niddler.lib.connection.NiddlerClient.onServiceMessage(NiddlerClient.kt:94)
- locked <0x000000074f59ae98> (a java.util.HashSet)
at com.icapps.niddler.lib.connection.protocol.NiddlerV1ProtocolHandler.onServiceMessage(NiddlerV1ProtocolHandler.kt:32)
at com.icapps.niddler.lib.connection.protocol.NiddlerV2ProtocolHandler.onMessage(NiddlerV2ProtocolHandler.kt:31)
at com.icapps.niddler.lib.connection.protocol.NiddlerV4ProtocolHandler.onMessage(NiddlerV4ProtocolHandler.kt:35)
at com.icapps.niddler.lib.connection.WebSocketNiddlerClient.onMessage(NiddlerClient.kt:217)
at org.java_websocket.client.WebSocketClient.onWebsocketMessage(WebSocketClient.java:636)
at org.java_websocket.drafts.Draft_6455.processFrameText(Draft_6455.java:963)
at org.java_websocket.drafts.Draft_6455.processFrame(Draft_6455.java:887)
at org.java_websocket.WebSocketImpl.decodeFrames(WebSocketImpl.java:401)
at org.java_websocket.WebSocketImpl.decode(WebSocketImpl.java:233)
at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:516)
at java.lang.Thread.run([email protected]/Thread.java:834)
Found 1 deadlock.
This is with Niddler plugin 2.12.0 and Android Studio Arctic Fox | 2020.3.1 Beta 3
It would be very useful if Niddler would offer automatic connection to the app after app is built and started on the device.
Currently Niddler has an option to auto connect after Run, but this does not appear to activate Debug mode (rewrites).
Using Niddler 2.10.1 with IntelliJ 2021.1 keeps reporting this exception:
java.lang.Throwable: class com.intellij.openapi.wm.ToolWindowManager it is a service, use getService instead of getComponent
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:161)
at com.intellij.serviceContainer.ComponentManagerImpl.getComponent(ComponentManagerImpl.kt:451)
at com.chimerapps.niddler.ui.NiddlerToolWindow$Companion.get(NiddlerToolWindow.kt:42)
at com.chimerapps.niddler.ui.util.execution.NiddlerAutomaticConnectionHelper$connect$1.invoke(ProcessExecutionListener.kt:126)
at com.chimerapps.niddler.ui.util.execution.NiddlerAutomaticConnectionHelper$connect$1.invoke(ProcessExecutionListener.kt:122)
at com.chimerapps.niddler.ui.util.ui.ExtensionsKt$sam$java_lang_Runnable$0.run(Extensions.kt)
at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:218)
at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:200)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:781)
at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:319)
at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133)
at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:969)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:839)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:449)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:808)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:781)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:496)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
I can't find any noticeable adverse side effect from this though.
You can already use r
to jump to the correct response from a request
It would be nice to have the same option in the context menu. So it is not a hidden feature
Changes will not take effect. I have to disconnect and reconnect to make them stick.
This is with Niddler UI 2.9.4 and Niddler 1.2.0 on Android app
Steps:
BUG: Niddler will become blank, displaying only "Nothing to show"
Switching to Timeline and then will bring the requests back
Small QOL enhancement: Whenever I scroll up on the list, autoscroll to the end should be disabled (otherwise it keeps jumping while I scroll up). Then when I scroll back to the bottom, it should re-enable itself.
I've noticed very weird bug with Niddler:
Content-Type
into clipboard)BUG: Instead of whatever you copied in step 3, Niddler's value will be pasted (in above example Content-Type
will be pasted).
So basically, at this point, IntelliJ will stop reacting to any clipboard changes outside IntellIJ. It will keep clipboard at Niddler's copy.
Workaround for this is to select any text inside IntelliJ (for example inside text editor) and copy it - this will unblock the clipboard sync.
This is with:
Android Studio 4.1
Build #AI-201.8743.12.41.6858069, built on September 23, 2020
Runtime version: 1.8.0_242-release-1644-b3-6222593 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 5.8.17-1-manjaro
(I know I said IntelliJ above, but Android Studio uses IntelliJ platform under the hood so I'm using them interchangeably)
Any ideas what could cause this?
Currently to replace response body, I have to paste long body response string into that (comparably) tiny text box. It would be nice if I could pick local html/json file instead and Niddler would read from that file when serving the response.
As an added bonus, this would also make editing the response much easier since I would only need to edit the file (no need to touch Niddler UI for changing response body).
I have noticed that Niddler will sometimes not auto connect after launching the app with "Run" button.
I have all 3 checkboxes in settings checked. Most of the time it seems to work, but sometimes it doesn't (Niddler stays disconnected after run. Connecting manually after that works normally).
I realize this is pretty vague, what can I do to collect more information on when this happens?
Not sure how I reproduced this, but Android Studio reported this error:
java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:422)
at java.util.ArrayList.set(ArrayList.java:450)
at com.chimerapps.niddler.ui.debugging.rewrite.RewriteDialog.onItemUpdated(RewriteDialog.kt:140)
at com.chimerapps.niddler.ui.debugging.rewrite.RewriteDialog.access$onItemUpdated(RewriteDialog.kt:25)
at com.chimerapps.niddler.ui.debugging.rewrite.RewriteDialog$detailPanel$1.invoke(RewriteDialog.kt:68)
at com.chimerapps.niddler.ui.debugging.rewrite.RewriteDialog$detailPanel$1.invoke(RewriteDialog.kt:25)
at com.chimerapps.niddler.ui.debugging.rewrite.RewriteDetailPanel$rulesTable$2.invoke(RewriteDetailPanel.kt:195)
at com.chimerapps.niddler.ui.debugging.rewrite.RewriteDetailPanel$rulesTable$2.invoke(RewriteDetailPanel.kt:30)
at com.chimerapps.niddler.ui.debugging.rewrite.PackingJBTable$1.mousePressed(RewriteDetailPanel.kt:354)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
at java.awt.Component.processMouseEvent(Component.java:6547)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
at com.intellij.ui.table.JBTable.processMouseEvent(JBTable.java:591)
at java.awt.Component.processEvent(Component.java:6315)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4899)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4721)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4532)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4721)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:739)
at java.awt.EventQueue$4.run(EventQueue.java:737)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:846)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:778)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
at java.awt.Dialog.show(Dialog.java:1077)
at java.awt.Component.show(Component.java:1681)
at java.awt.Component.setVisible(Component.java:1633)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:998)
at com.chimerapps.niddler.ui.debugging.rewrite.RewriteDialog$Companion.show(RewriteDialog.kt:33)
at com.chimerapps.niddler.ui.NiddlerToolWindow$setupViewActions$configureDebuggerAction$1.invoke(NiddlerToolWindow.kt:139)
at com.chimerapps.niddler.ui.NiddlerToolWindow$setupViewActions$configureDebuggerAction$1.invoke(NiddlerToolWindow.kt:35)
at com.chimerapps.niddler.ui.actions.DisableableAction.actionPerformed(DisableableAction.kt:20)
at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:298)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:315)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:289)
at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:194)
at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:157)
at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:447)
at java.awt.Component.processEvent(Component.java:6315)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4899)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4721)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4721)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:739)
at java.awt.EventQueue$4.run(EventQueue.java:737)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:846)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:778)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
at 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)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.