Ano, těžko si to představit. Kompletní popis by byl rozsáhlý. Ale stručně je
to asi tak, že mám modul v NetBeans Platform, který poskytuje POJO jiným
modulům. V určitý moment se z POJO stanou JPA managed entities. Odkazy, ale
ale již existují např. z TableModelů Swingové JTable a ještě ke všemu v
jiném dalším třetím modulu. Navíc si řízení a načítání modulů řídí NBP více
méně podle sebe samo.

Jen výpis zrovna této NullPointerException je asi tak cca 90-100 volání :-)
V téhle "džungli" se pak můžou dít věci a to je pak debugging jak má být :-)


Dne 9. června 2011 10:29 Martin Beránek <[email protected]> napsal(a):

> Dne 9.6.2011 09:15, Libor Jelinek napsal(a):
>
>  Dobrý den!
>> Chtěl bych probrat, jak by kdo řešil následující problém ochrany proti
>> NullPointerException pokud s jednou referenční proměnnou pracuje
>> současně více částí aplikace (více Swing formulářů nebo JPA perzisence a
>> JavaServer Faces web GUI současně apod.).
>>
>> OrderItem item = new OrderItem();
>>
>> /// V nějaké vrstvě se při vytváření položky nastaví nějaké hodnoty/
>> item.setPN(123);
>> item.setQty(2);
>>
>> /// V jiné vrstvě uživatel smaže položku. Reference je na null./
>> item = null;
>>
>> /// Další vrstva to neví a zavolá, což //skončí chybou
>> NullPointerException/
>> item.getPN();//
>>
>> Jak k tomu co nejlépe přistoupit? Mě napadají tak dvě možnosti:
>> 1. Do do getter metod přidat kontrolu na na null a v tom případě vrátit
>> např "-1".
>> 2. Oznamovat si změny např. beanovským PropertyChangeListener, což by
>> ale hodně zkomplikovalo kód.
>>
>> Budu rád za Vaše názory.
>> Libor
>>
>
> Nechápu jakým způsobem jste vlastně k tomuhle problému přišel. Pokud mám
> metodu která s objektem pracuje a pak si musím na začátku zkontrolovat,
> jestli mi někdo nepředal null. Ale v průběhu metody nejde nijak zvenku
> znullovat objekt, na který držím referenci.
>
> --
> Martin Beránek
>
>

Odpovedet emailem