Jaroslav Tulach-4 wrote > Hello Alexander, > thanks for your reply. The source code for NetBeans TreeView component is > available here: > http://hg.netbeans.org/main- > golden/file/ccea2dfe47eb/openide.explorer/src/org/openide/explorer/view/TreeView.java > I'll be glad for any review, however I am also positively pleased by your > answer: > >> The ui.getPathBounds(tree, newPath) method definitely can return >> null so it needs to have this check. > > Should I start working on a webrev, so (in case you don't find any > violation of > good Swing practices in TreeView) we can eliminate this NPE once and > forever? > > What should be part of such webrev? Just the NPE check? Or do you want > some > test, change in documentation, etc.? > > Thanks again for your comments. > -jt > > > Dne Pá 16. listopadu 2012 15:30:00, Alexander Scherbatiy napsal(a): >> On 11/15/2012 7:58 PM, Jaroslav Tulach wrote: >> > Dear Swing maintainers, >> > my name is Jaroslav Tulach and I am maintaining NetBeans explorer - a >> > component that is using JTree heavily. >> > >> > > From time to time I receive a user report with a NPE from Swing where >> > > little> >> > or even no NetBeans code involved. Just today I got >> > http://netbeans.org/bugzilla/show_bug.cgi?id=222081 >> > We have about 35 other ones (which is not that much given the fact we >> have >> > million of users), but still... >> > >> > According to >> > http://statistics.netbeans.org/exceptions/exception.do?id=628832 >> > the report comes from jdk7u9-b05. The source code is here >> > http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/file/jdk7u9- >> > b05/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java >> > and thus it looks like the call on line 4468 to >> > >> > ui.getPathBounds(tree, newPath); >> > >> > can return null (under some rare and unknown circumstances). >> > >> > I can close the bug #222081 as "worksforme", but it is clear that such >> > error happens from time to time and we don't want our users to face >> > errors. A simple: >> > >> > 4469 if (newRect == null) return; >> > >> > would do the trick. One question remains: if I try to donate such >> patch, >> > will you accept it? >> >> The ui.getPathBounds(tree, newPath) method definitely can return >> null so it needs to have this check. >> However, such fix can mask the real issue, for example, in the >> treeState.getBounds() method where the treeState can be instance of >> FixedHeightLayoutCache or VariableHeightLayoutCache class. >> >> If it is possible, could you send a code snippet that shows how >> NetBeans uses JTree? May be it can give a hint what can be wrong in this >> case. >> >> Thanks, >> Alexandr. >> >> > -jt
You mentioned the treeview, I do remember an interesting UI treeview component <http://www.kettic.com/winforms_ui/treeview.shtml> , don't know these things can be easily used or not. -- View this message in context: http://openjdk.5641.n7.nabble.com/Swing-Dev-Patch-for-NPE-at-javax-swing-plaf-basic-BasicTreeUI-Actions-page-4470-tp104706p178495.html Sent from the OpenJDK Swing Development mailing list archive at Nabble.com.
