<Swing Dev> Request for review: NPE when using Nimbus with a TableCellRenderer returning null.

Alexander Scherbatiy alexandr.scherbatiy at oracle.com
Fri Apr 26 10:25:57 UTC 2013


   Hello Clemens,

   Could you send a code snippet from your application that reproduces 
the NPE?
   I think we should investigate first why the JTable.prepareRenderer() 
returns null in this case.

   Thanks,
   Alexandr.

On 4/18/2013 9:37 AM, Miguel Muñoz wrote:
> JTable.prepareRenderer() should never return null. There's nothing in 
> the API to suggest that null is a valid return value. I have found 
> (and reported) at least one bug in Nimbus where it returns a null 
> renderer when the column class is Icon. I think that's fixed, but I 
> wouldn't be surprised if there are others.
>
> — Miguel Muñoz
>
>
> On Apr 16, 2013, at 7:55 AM, Alexander Scherbatiy wrote:
>
>> On 4/13/2013 2:19 PM, Clemens Eisserer wrote:
>>> Hi,
>>>
>>> When testing a legacy application which was using Metal LnF previously
>>> with Nimbus I ran into the following problem:
>>>
>>>   Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
>>>       at 
>>> javax.swing.plaf.synth.SynthTableUI.paintCell(SynthTableUI.java:685)
>>>       at 
>>> javax.swing.plaf.synth.SynthTableUI.paintCells(SynthTableUI.java:581)
>>>       ......
>>>
>>> the code in question is:
>>>
>>>   TableCellRenderer renderer = table.getCellRenderer(row, column);
>>>   Component component = table.prepareRenderer(renderer, row, column);
>>>   Color b = component.getBackground();
>>
>>    Could you check that returning the null component is the correct 
>> behavior in this case?
>>    So there is no the real bug that does not allow to return the 
>> right component.
>>
>>>
>>> I've written a patch to simply check for "component" to be non-null:
>>> http://cr.openjdk.java.net/~ceisserer/nimbusnpe/ 
>>> <http://cr.openjdk.java.net/%7Eceisserer/nimbusnpe/>
>>> Unfortunately I don't have a bug number, as the old bug-submission
>>   There are 2 issues with the NPE in paintCell chain call in JTable:
>>     6582564 JTable with rowHeader and sorting given NPE when 
>> inserting a new row
>> http://bugs.sun.com/view_bug.do?bug_id=6582564
>>     6429812 NPE after calling JTable.updateUI() when using a header 
>> renderer + XP L&F
>> http://bugs.sun.com/view_bug.do?bug_id=6429812
>>
>>   This issue is different so I can create the new one.
>>
>>   Thanks,
>>   Alexandr.
>>
>>> system seems to be dead.
>>>
>>> Please let me know what you think.
>>>
>>> Regards, Clemens
>>
>
> -------------------------------------------
>
> Miguel Muñoz
> SwingGuy1024 at yahoo.com <mailto:SwingGuy1024 at yahoo.com>
> 323/225-7285
>
> -------------------------------------------
>
> /The Sun, with all those planets revolving around it and dependent on 
> it, can still ripen a vine of grapes like it had nothing else to do in 
> the world./
>
>   -- Galileo
>
> -------------------------------------------
> /
> /
> /There are seven sins in the world./
> /    Wealth without work./
> ///Pleasure without conscience./
> ///Knowledge without character./
> ///Commerce without morality./
> ///Science without humanity./
> ///Worship without sacrifice./
> ///Politics without principle.///
> /
> /
>   -- Mohandas Gandhi
>
> -------------------------------------------
>
> /If tyranny and oppression come to this land, it will come in the 
> guise of fighting a foreign enemy./
>
>   -- James Madison
>
>
>




More information about the swing-dev mailing list