Tapestry may not go wrong!

It must has to do with autoboxing in method isClosed() in Ledger.

I was fooled by the debugger and that ledger was shown as null but when
adding log statements I can see that it isn't.

So I have to read a little bit about aoutoboxing but for sure it was NOT a
T5 problem!

The call ledger.isClosed() raises a nul pointer but ledgers is not null!

Sorry for disturbing all of you.


2011/9/3 Gunnar Eketrapp <gunnar.eketr...@gmail.com>

> BUT it is also a T5 property so that could be T5 related.
>
> The instance seems to created but the T5 property ledger is null after the
> assignment.
>
>
> 2011/9/3 Gunnar Eketrapp <gunnar.eketr...@gmail.com>
>
>> Hum .. sorry .. too early in the morning for me .. Ledger is a hibernate
>> entity class and T5 should not be involved.
>>
>> I'll be right back ...
>>
>>
>> 2011/9/3 Gunnar Eketrapp <gunnar.eketr...@gmail.com>
>>
>>> Hi !
>>>
>>> I have been happily hacking web sites with T5 for a year and half now and
>>> is more then pleased!
>>> Kudos to all of you for this excellent web framework that makes coding
>>> fun again.
>>>
>>> And I have never ever encountered any defect in the T5 code.
>>>
>>> Now to my problem.
>>>
>>> I just got an error in an onActivate method that looked like it could not
>>> happen.
>>>
>>> When steeping through it in my debugger I really get puzzled.
>>>
>>> A variable assigned inside a block is null after leaving the block.
>>>
>>> It must have something to do with the "plastering" of my code. Or !?
>>>
>>> The error I get is ..
>>>
>>> Caused by: java.lang.NullPointerException
>>>        at
>>> utskicket.pages.economy.EditYear._$advised$onActivate_13(EditYear.java:91)
>>>
>>> ... and in the debugger I can see that ledger is null at line 91.
>>>
>>> In the code below I have commented what happens in the debugger.
>>>
>>> Can anyone understand what could cause this error ...
>>> I have stepped through the generated code without seeing anything
>>> strange. It all looks great but when returning ledger is null.
>>>
>>> Do I break any rule / convention with my code !?
>>>
>>> Many many thanks in  advance,
>>> Gunnar Eketrapp, Stockholm, Sweden
>>>
>>> Environment:
>>> *jdk 1.6.0_22*
>>> *t5.2.6*
>>> *windows 7 proffesional, 32-bit*
>>>
>>>
>>>     @Property
>>>     private Ledger ledger;
>>>
>>>     @Property
>>>     private String notice;
>>>
>>>     //
>>> ------------------------------------------------------------------------------
>>>     // -- Tapestry event methods - Tapestry event methods - Tapestry
>>> event methods --
>>>     //
>>> ------------------------------------------------------------------------------
>>>
>>>     @Log
>>>     Object onActivate(long groupId, long ledgerId) {
>>>
>>>         group = groupDAO.findById(groupId);
>>>         if (group == null)
>>>             return Index.class;
>>>
>>>         if (ledgerId != 0) {
>>>             ledger = ledgerDAO.findById(ledgerId);
>>>             if (ledger == null)
>>>                 return Index.class;
>>>             if (!same(group.getId(), ledger.getGroup().getId()))
>>>                 return Index.class;
>>>
>>>             hasPrevious = (null != ledgerDAO.findPrevious(ledger));
>>>             hasNext = (null != ledgerDAO.findNext(ledger));
>>>             transactionCount = transactionDAO.countTransactions(ledger);
>>>
>>>         } else  {
>>>             ledger = new Ledger(); * // 1: This one returns null !!!*
>>>             Ledger lastLedger = ledgerDAO.findLast(group);
>>>             if (null == lastLedger) {
>>>                 UTDate today = new UTDate();
>>>                 ledger.setStartDate(new UTDate(today.getYear(), 1, 1));
>>> *// 2: This line ends the block!*
>>>                 ledger.setEndDate(new UTDate(today.getYear(), 12, 31));
>>>             } else {
>>>
>>> ledger.setStartDate(lastLedger.getStartDate().warpYears(1));
>>>                 ledger.setEndDate(lastLedger.getEndDate().warpYears(1));
>>>             }
>>>         }
>>>
>>> *        if (ledger.getClosed())  // 3: And here we crash!*
>>>             notice = "Året är stängt och kan inte ändras";
>>>         else {
>>>             if (!mayEdit())
>>>                 notice = "Endast det senaste året kan ändras.";
>>>             else if (!mayEditStarts())
>>>                 notice = "Startdagen kan inte ändras då det finns
>>> tidigare år.";
>>>         }
>>>
>>>        return null;
>>>     }
>>>
>>>
>>
>>
>> --
>> [Hem: 08-715 59 57, Mobil: 070-991 86 42]
>> Allévägen 2A, 132 42 Saltsjö-Boo
>>
>
>
>
> --
> [Hem: 08-715 59 57, Mobil: 070-991 86 42]
> Allévägen 2A, 132 42 Saltsjö-Boo
>



-- 
[Hem: 08-715 59 57, Mobil: 070-991 86 42]
Allévägen 2A, 132 42 Saltsjö-Boo

Reply via email to