Yea for sure that was exactly the problem.

I changed closed to a closedDate and isClosed to

    @Transient
    public boolean isClosed() {
        return closedDate != null;
    }

so now I also now when the ledger was closed.

Thank you for "bearing with me" ...

2011/9/3 Steve Eynon <steve.ey...@googlemail.com>

> Yeah, autoboxing is evil - it's just a compiler convenience thing. If you
> have:
>
> Boolean closed = null;
>
> boolean isClosed() {
>    return closed;
> }
>
> The compiler transforms it to
>
> boolean isClosed() {
>    return closed.booleanValue();
> }
>
> which of course throws an NPE.
>
> Steve.
> --
> Steve Eynon
>
>
> On 3 September 2011 16:04, Gunnar Eketrapp <gunnar.eketr...@gmail.com>
> wrote:
> > 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
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


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

Reply via email to