On Wed, 21 Jan 2015 20:04:29 -0200, Chris Poulsen <mailingl...@nesluop.dk>
wrote:

Would it be easier to mock a request?

I think this looks like a bug to me, even a relatively easy one to fix, so
it should be fixed IMHO.


On Wed, Jan 21, 2015 at 10:30 PM, George Christman <gchrist...@cardaddy.com>
wrote:

On Wed, Jan 21, 2015 at 4:13 PM, Kalle Korhonen
<kalle.o.korho...@gmail.com> wrote:
> On Wed, Jan 21, 2015 at 1:07 PM, George Christman <
gchrist...@cardaddy.com>
> wrote:
>
>> On Wed, Jan 21, 2015 at 3:16 PM, Kalle Korhonen
>> <kalle.o.korho...@gmail.com> wrote:
>> > On Tue, Jan 20, 2015 at 1:03 PM, George Christman <
>> gchrist...@cardaddy.com>
>> > wrote:
>> >> So I just took a look at the tapestry code and I'm not seeing anyway
>> >> to work around it unless I want to build my own links which I'd
rather
>> >> not do because of my use of the url rewriter.
>> >> Tap code line 113
>> >>
>>
https://github.com/apache/tapestry-5/blob/5.4-beta-26/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LinkSourceImpl.java
>> >> How do you work around this?
>> > You are right George. Ever since the loopback reset listeners was put
it
>> in
>> > (for T5.3), the LinkSource.createPageRenderLink(...) doesn't anymore
work
>> > outside request context (e.g. in a scheduled job). You should instead
use
>> > the linkEncoder directly (as in the implementation for
>> > createPageRenderLink):
>> >
>> Just seen this, is there any chance we could fix this issue so that we >> don't need to write the cumbersome code below every time? I'm actually
>> surprised I'm the first to discover this. We send out a lot of
>> reminder emails etc at work via a cron job which would require this
>> and I also need it to work for my own project. Should I create a bug
>> in jira?
>> >
>>
>
> Somebody's gotta be the first one. I guess many of the existing
> installations are still not using the more recent versions of T5. But I
> agree, it might be worth fixing so go ahead and open an issue.
>
Just seems like 5.3 was a long time ago lol. Ok np, I'll open an issue
up for it.
>
>> >         PageRenderRequestParameters parameters = new
>> > PageRenderRequestParameters(canonical, new ArrayEventContext(
>> >                 typeCoercer, context), loopback);
>> >         Link link = linkEncoder.createPageRenderLink(parameters);
>>
>> One last thing before we move on from this issue, what is the
>> canonical? Would that be the Page.class.getName() ? and I'm assuming
>> context is just my url context values?
>>
>
> Take another look at the source you pointed to yourself, but: String
> canonical = resolver.canonicalizePageName(pageName);

Well it looks like you need to specify the exact page name and not the
java class, example "index"

Anyhow none of it worked either, same issue as before.

    @Inject
    private ComponentClassResolver resolver;

    @Inject
    private TypeCoercer typeCoercer;

    @Inject
    private ComponentEventLinkEncoder linkEncoder;

    private void testTask() {
        periodicExecutor.addJob(new IntervalSchedule(3000),
                "Data Validation1", new Runnable() {
            @Override
            public void run() {
                System.out.println("test");

                try {
                    String canonical =
resolver.canonicalizePageName("login");

                    PageRenderRequestParameters parameters = new
PageRenderRequestParameters(canonical, new ArrayEventContext(
                            typeCoercer, new Object()), false);
                    Link link =
linkEncoder.createPageRenderLink(parameters);

                    System.out.println(link.toAbsoluteURI());


                } catch (Exception ex) {
                    System.out.println("ex " + getStackTrace(ex));
                }
            }
        });
    }

exception

ex java.lang.NullPointerException: Unable to delegate method
invocation to property 'request' of <Proxy for
RequestGlobals(org.apache.tapestry5.services.RequestGlobals)>, because
the property is null.
    at $Request_1a34deec12ab7.readProperty(Unknown Source)
    at $Request_1a34deec12ab7.isSecure(Unknown Source)
    at $Request_1a34deec12a4e.isSecure(Unknown Source)
    at
org.apache.tapestry5.internal.services.RequestSecurityManagerImpl.checkPageSecurity(RequestSecurityManagerImpl.java:112)
    at $RequestSecurityManager_1a34deec12aae.checkPageSecurity(Unknown
Source)
    at
org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.createPageRenderLink(ComponentEventLinkEncoderImpl.java:111)
    at
org.apache.tapestry5.internal.services.linktransform.LinkTransformerInterceptor.createPageRenderLink(LinkTransformerInterceptor.java:50)
    at
$ComponentEventLinkEncoder_1a34deec12a6d.createPageRenderLink(Unknown
Source)
    at
org.healthresearch.etss.services.scheduler.impl.ScheduleJobsImpl$1.run(ScheduleJobsImpl.java:155)
    at
org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl$Job.invoke(PeriodicExecutorImpl.java:225)
    at
org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl$Job.invoke(PeriodicExecutorImpl.java:49)
    at
org.apache.tapestry5.ioc.internal.services.ParallelExecutorImpl$1.call(ParallelExecutorImpl.java:60)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)


I think for the time being I'm ust going to use URIBuilder or
something until this gets fixed.

I'll file a jira issue tonight.
>
> Kalle
>
>
>>> On Tue, Jan 20, 2015 at 11:14 AM, George Christman
>> >> <gchrist...@cardaddy.com> wrote:
>> >> >  Still no success in getting this to work. I've contributed the
>> Hostname
>> >> etc.
>> >> >
>> >> > configuration.add(SymbolConstants.HOSTNAME, "localhost");
>> >> >         configuration.add(SymbolConstants.HOSTPORT, "8080");
>> >> >         configuration.add(SymbolConstants.HOSTPORT_SECURE,
"false");
>> >> >
>> >> > And a simple test which fails with the same error.
>> >> >
>> >> > private void testTask() {
>> >> >         periodicExecutor.addJob(new IntervalSchedule(3000),
>> >> >                 "Data Validation1", new Runnable() {
>> >> >             @Override
>> >> >             public void run() {
>> >> >                 System.out.println("test");
>> >> >                 try {
>> >> >
>> >> > System.out.println(linkSource.createPageRenderLink(Index.class));
>> >> >                 } catch (Exception ex) {
>> >> >                     System.out.println("ex " + ex);
>> >> >                 }
>> >> >             }
>> >> >         });
>> >> >     }
>> >> >
>> >> > On Tue, Jan 20, 2015 at 7:41 AM, George Christman
>> >> > <gchrist...@cardaddy.com> wrote:
>> >> >> So toAbsolute is the code calling the request and the cause of
this
>> >> >> exception? I'm assuming your referring to me contributing those
>> values
>> >> to my
>> >> >> appmodule. Once I contribute those values, would toAbsolute use
those
>> >> values
>> >> >> instead of the request? Just trying to understand the issue a
little
>> bit
>> >> >> better. Thanks Kalle.
>> >> >>
>> >> >> On Jan 20, 2015 4:44 AM, "Kalle Korhonen" <
>> kalle.o.korho...@gmail.com>
>> >> >> wrote:
>> >> >>>
>> >> >>> On Tue, Jan 20, 2015 at 1:23 AM, George Christman
>> >> >>> <gchrist...@cardaddy.com>
>> >> >>> wrote:
>> >> >>>
>> >> >>> > I'm using T5 beta-25 and I have the following code and I'm
>> noticing
>> >> >>> > when the scheduler fires off my service, my
PageRenderLinkSource
>> does
>> >> >>> > not work. If I manually fire it off through the admin with an
>> >> >>> > actionlink, it works without issue.
>> >> >>> > I'm seeing the following exception
>> >> >>> > java.lang.NullPointerException: Unable to delegate method
>> invocation
>> >> >>> > to property 'request' of <Proxy for
>> >> >>> > RequestGlobals(org.apache.tapestry5.services.RequestGlobals)>,
>> >> because
>> >> >>> > the property is null.
>> >> >>> > Any idea why this isn't working?
>> >> >>> >
>> >> >>>
>> >> >>> Naturally, you don't have a request to work with when you are
>> executing
>> >> >>> from a cron job. But if you just want to generate links, you
don't
>> >> need to
>> >> >>> and you shouldn't use the request values. Contribute HOSTNAME,
>> HOSTPORT
>> >> >>> and
>> >> >>> HOSTPORT_SECURE and you can generate absolute urls without
>> resorting to
>> >> >>> reading the values from the request.
>> >> >>>
>> >> >>> Kalle
>> >> >>>
>> >> >>>
>> >> >>>
>> >> >>> >
>> >> >>> >
>> ---------------------------------------------------------------------
>> >> >>> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> >> >>> > For additional commands, e-mail:
users-h...@tapestry.apache.org
>> >> >>> >
>> >> >>> >
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > George Christman
>> >> > CEO
>> >> > www.CarDaddy.com
>> >> > P.O. Box 735
>> >> > Johnstown, New York
>> >>
>> >>
>> >>
>> >> --
>> >> George Christman
>> >> CEO
>> >> www.CarDaddy.com
>> >> P.O. Box 735
>> >> Johnstown, New York
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> >> For additional commands, e-mail: users-h...@tapestry.apache.org
>> >>
>> >>
>>
>>
>>
>> --
>> George Christman
>> CEO
>> www.CarDaddy.com
>> P.O. Box 735
>> Johnstown, New York
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>



--
George Christman
CEO
www.CarDaddy.com
P.O. Box 735
Johnstown, New York

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to