I personally would prefer a setting somewhere that lets NB automatically gather exception info. Opt-in only to be privacy-friendly. An automated system that collects exceptions and counts how many are reported for each unique stack trace could help direct developers to things that should be addressed. I don’t think they should go automatically into the bug database. They should be visible to developers to triage. If the exception has been dealt with in a newer version of NB (this info would be available when the exceptions automatically submitted), the UI could indicate that to the user.
Scott > On Dec 5, 2022, at 5:28 PM, Greenberg, Gary <ggree...@visa.com.INVALID> wrote: > > It used to be a feature that allows to submit exceptions along with some > other info to Netbeans development team with a > click of a button. > Now you can only open notification and view the exception stack trace and > that’s it. Exceptions do occur regularly and I > mostly ignore them. I did raise this question sometime ago and was told that > now I need to open JIRA ticket manually to > submit any NB problem and supply code samples in Apache GIT. > IMHO it is bad idea and not acceptable for many Netbeans users because > It does take more time, which is hard to allocate in busy development > schedule. > Many companies (like mine) for security reasons do not allow to use offsite > GIT and JIRA > Therefore, Netbeans team diminishing their ability to fix bugs and other > problems. > > For example, yesterday I was debugging an application and wanted to see > changes in the database. I did have SQL window open. > As I switched to this SQL tab, exception occurred and all windows in Netbeans > were garbled. > I saved the stack trace and had to restart NB as it was not responsive. > Here the stack trace: > java.lang.NullPointerException > at > org.netbeans.modules.db.dataview.util.FileBackedClob.getSubString(FileBackedClob.java:166) > at > org.netbeans.modules.db.dataview.util.LobHelper.clobToString(LobHelper.java:142) > at > org.netbeans.modules.db.dataview.table.ClobCellRenderer.getTableCellRendererComponent(ResultSetCellRenderer.java:217) > at > org.netbeans.modules.db.dataview.table.ResultSetCellRenderer.getTableCellRendererComponent(ResultSetCellRenderer.java:98) > at java.desktop/javax.swing.JTable.prepareRenderer(JTable.java:5741) > at > org.netbeans.modules.db.dataview.table.JXTableDecorator.prepareRenderer(JXTableDecorator.java:119) > at > org.netbeans.modules.db.dataview.output.DataViewTableUI.prepareRenderer(DataViewTableUI.java:126) > at > java.desktop/javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2190) > at > java.desktop/javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:2092) > at > java.desktop/javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1888) > at com.formdev.flatlaf.ui.FlatTableUI.paint(FlatTableUI.java:396) > at java.desktop/javax.swing.plaf.ComponentUI.update(ComponentUI.java:161) > at java.desktop/javax.swing.JComponent.paintComponent(JComponent.java:797) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1074) > at > org.netbeans.modules.db.dataview.table.JXTableDecorator.paint(JXTableDecorator.java:65) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JViewport.paint(JViewport.java:737) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JSplitPane.paintChildren(JSplitPane.java:1024) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at > org.netbeans.swing.tabcontrol.TabbedContainer.paint(TabbedContainer.java:969) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:586) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at > org.netbeans.core.windows.view.ui.MainWindow$1.paint(MainWindow.java:166) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:586) > at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907) > at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083) > at > java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5255) > at > java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1643) > at > java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1618) > at > java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1556) > at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323) > at > java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5203) > at > java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5013) > at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:865) > at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848) > at > java.base/java.security.AccessController.doPrivileged(AccessController.java:391) > at > java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) > at > java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848) > at > java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823) > at > java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772) > at > java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1884) > at > java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316) > at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) > at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) > at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) > at > java.base/java.security.AccessController.doPrivileged(AccessController.java:391) > at > java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) > at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740) > at > org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136) > [catch] 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) > > And here is my NB info > > Product Version: Apache NetBeans IDE 14 > Java: 14.0.2; Java HotSpot(TM) 64-Bit Server VM 14.0.2+12-46 > Runtime: Java(TM) SE Runtime Environment 14.0.2+12-46 > System: Windows 10 version 10.0 running on amd64; Cp1252; en_US (nb) > > Gary Greenberg > Staff Software Engineer