Exceptions with ParallelExecutor

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Exceptions with ParallelExecutor

nquirynen
Hi,

When using the ParallelExecutor exceptions thrown seem to be ignored in
some way? The invokable just stops when there's an error somewhere, but
no exception is being logged, making it hard to find the problem.
How can I get exceptions happening in the invokable getting logged?

Simple example page:


public class TestPage {

         @Inject
         private ParallelExecutor parallelExecutor;

         void setupRender() {
             parallelExecutor.invoke(new Invokable<String>() {
                 @Override
                 public String invoke() {
                     throw new RuntimeException("TEST EXCEPTION");
                 }
             });
         }

}



---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Exceptions with ParallelExecutor

Ilya Obshadko-2
You may pass injected Logger instance to parallel execution, just like you
do normally.

On Thu, Nov 19, 2015 at 5:07 PM, Nathan Quirynen <
[hidden email]> wrote:

> Hi,
>
> When using the ParallelExecutor exceptions thrown seem to be ignored in
> some way? The invokable just stops when there's an error somewhere, but no
> exception is being logged, making it hard to find the problem.
> How can I get exceptions happening in the invokable getting logged?
>
> Simple example page:
>
>
> public class TestPage {
>
>         @Inject
>         private ParallelExecutor parallelExecutor;
>
>         void setupRender() {
>             parallelExecutor.invoke(new Invokable<String>() {
>                 @Override
>                 public String invoke() {
>                     throw new RuntimeException("TEST EXCEPTION");
>                 }
>             });
>         }
>
> }
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


--
Ilya Obshadko
Reply | Threaded
Open this post in threaded view
|

Re: Exceptions with ParallelExecutor

nquirynen
Hey Ilya,

Hmm I'm not sure what you mean. It does log everything, but no exceptions:

public class TestPage {

     @Inject
     private ParallelExecutor parallelExecutor;

     void setupRender() {
         parallelExecutor.invoke(new SomeBackgroundTask());
     }

     public class SomeBackgroundTask implements Invokable<String> {

         private final Logger log =
LoggerFactory.getLogger(SomeBackgroundTask.class);

         @Override
         public String invoke() {
             System.out.println("SYSOUT TEST");  // --> is outputted to
console
             log.debug("LOG TEST"); // --> is outputted to console
             throw new RuntimeException("EXCEPTION TEST"); // --> is NOT
outputted to console
         }

     }

}

What am I supposed to do exactly?

Thanks,
Nathan

On 20/11/15 09:53, Ilya Obshadko wrote:

> You may pass injected Logger instance to parallel execution, just like you
> do normally.
>
> On Thu, Nov 19, 2015 at 5:07 PM, Nathan Quirynen <
> [hidden email]> wrote:
>
>> Hi,
>>
>> When using the ParallelExecutor exceptions thrown seem to be ignored in
>> some way? The invokable just stops when there's an error somewhere, but no
>> exception is being logged, making it hard to find the problem.
>> How can I get exceptions happening in the invokable getting logged?
>>
>> Simple example page:
>>
>>
>> public class TestPage {
>>
>>          @Inject
>>          private ParallelExecutor parallelExecutor;
>>
>>          void setupRender() {
>>              parallelExecutor.invoke(new Invokable<String>() {
>>                  @Override
>>                  public String invoke() {
>>                      throw new RuntimeException("TEST EXCEPTION");
>>                  }
>>              });
>>          }
>>
>> }
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Exceptions with ParallelExecutor

nquirynen
Or do you mean I should just surround everything with a try catch to catch any exception and then use the logger to log it?

On 20/11/15 11:22, Nathan Quirynen wrote:
Hey Ilya,

Hmm I'm not sure what you mean. It does log everything, but no exceptions:

public class TestPage {

    @Inject
    private ParallelExecutor parallelExecutor;

    void setupRender() {
        parallelExecutor.invoke(new SomeBackgroundTask());
    }

    public class SomeBackgroundTask implements Invokable<String> {

        private final Logger log = LoggerFactory.getLogger(SomeBackgroundTask.class);

        @Override
        public String invoke() {
            System.out.println("SYSOUT TEST");  // --> is outputted to console
            log.debug("LOG TEST"); // --> is outputted to console
            throw new RuntimeException("EXCEPTION TEST"); // --> is NOT outputted to console
        }

    }

}

What am I supposed to do exactly?

Thanks,
Nathan

On 20/11/15 09:53, Ilya Obshadko wrote:
You may pass injected Logger instance to parallel execution, just like you
do normally.

On Thu, Nov 19, 2015 at 5:07 PM, Nathan Quirynen <
[hidden email]> wrote:

Hi,

When using the ParallelExecutor exceptions thrown seem to be ignored in
some way? The invokable just stops when there's an error somewhere, but no
exception is being logged, making it hard to find the problem.
How can I get exceptions happening in the invokable getting logged?

Simple example page:


public class TestPage {

         @Inject
         private ParallelExecutor parallelExecutor;

         void setupRender() {
             parallelExecutor.invoke(new Invokable<String>() {
                 @Override
                 public String invoke() {
                     throw new RuntimeException("TEST EXCEPTION");
                 }
             });
         }

}



---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]





---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]




--


Een klare kijk op aanvullende pensioenen

Nathan Quirynen
03 340 04 60
[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Exceptions with ParallelExecutor

Ilya Obshadko-2
Yes, that's basically it. Background thread exceptions are not being caught by Tapestry application, so you need to take care of the logging yourself.




(Also, do not forget to do thread cleanup).




Sent from Mailbox

On Fri, Nov 20, 2015 at 12:30 PM, Nathan Quirynen
<[hidden email]> wrote:

> Or do you mean I should just surround everything with a try catch to
> catch any exception and then use the logger to log it?
> On 20/11/15 11:22, Nathan Quirynen wrote:
>> Hey Ilya,
>>
>> Hmm I'm not sure what you mean. It does log everything, but no
>> exceptions:
>>
>> public class TestPage {
>>
>>     @Inject
>>     private ParallelExecutor parallelExecutor;
>>
>>     void setupRender() {
>>         parallelExecutor.invoke(new SomeBackgroundTask());
>>     }
>>
>>     public class SomeBackgroundTask implements Invokable<String> {
>>
>>         private final Logger log =
>> LoggerFactory.getLogger(SomeBackgroundTask.class);
>>
>>         @Override
>>         public String invoke() {
>>             System.out.println("SYSOUT TEST");  // --> is outputted to
>> console
>>             log.debug("LOG TEST"); // --> is outputted to console
>>             throw new RuntimeException("EXCEPTION TEST"); // --> is
>> NOT outputted to console
>>         }
>>
>>     }
>>
>> }
>>
>> What am I supposed to do exactly?
>>
>> Thanks,
>> Nathan
>>
>> On 20/11/15 09:53, Ilya Obshadko wrote:
>>> You may pass injected Logger instance to parallel execution, just
>>> like you
>>> do normally.
>>>
>>> On Thu, Nov 19, 2015 at 5:07 PM, Nathan Quirynen <
>>> [hidden email]> wrote:
>>>
>>>> Hi,
>>>>
>>>> When using the ParallelExecutor exceptions thrown seem to be ignored in
>>>> some way? The invokable just stops when there's an error somewhere,
>>>> but no
>>>> exception is being logged, making it hard to find the problem.
>>>> How can I get exceptions happening in the invokable getting logged?
>>>>
>>>> Simple example page:
>>>>
>>>>
>>>> public class TestPage {
>>>>
>>>>          @Inject
>>>>          private ParallelExecutor parallelExecutor;
>>>>
>>>>          void setupRender() {
>>>>              parallelExecutor.invoke(new Invokable<String>() {
>>>>                  @Override
>>>>                  public String invoke() {
>>>>                      throw new RuntimeException("TEST EXCEPTION");
>>>>                  }
>>>>              });
>>>>          }
>>>>
>>>> }
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [hidden email]
>>>> For additional commands, e-mail: [hidden email]
>>>>
>>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
> --
> Een klare kijk op aanvullende pensioenen
> *Nathan Quirynen*
> 03 340 04 60
> [hidden email] <mailto:[hidden email]>