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

Clemens Eisserer linuxhippy at gmail.com
Fri May 10 22:01:14 UTC 2013


Hi Alexander,

>   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.

Sorry for the lag - I have been on vacation.
I'll prepare something tomorrow.

Regards, Clemens



>
>   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