<Swing Dev> Patch for NPE at javax.swing.plaf.basic.BasicTreeUI$Actions.page:4470

xiaoyuandlg xiaoyuandlg at hotmail.com
Wed Feb 19 07:10:57 UTC 2014


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.



More information about the swing-dev mailing list