You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Simon Laws <si...@googlemail.com> on 2009/04/27 11:18:20 UTC

[1.x] hang in BPEL itest with latest code

itest\bpel\helloworld-reference is hanging for me with the latest
code. It's getting to...

<message><parameters><getGreetings xmlns="http://greetings"><message xmlns="http
://helloworld" xmlns:ns2="http://helloworld/" xmlns:xs="http://www.w3.org/2001/X
MLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:str
ing">Luciano</message></getGreetings></parameters></message>
[DEBUG] - GeronimoLog.debug(66) | >>> Payload: <?xml version="1.0" encoding="UTF
-8"?>
<getGreetings xmlns="http://greetings"><message xmlns="http://helloworld" xmlns:
ns2="http://helloworld/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Luciano</message
></getGreetings>
[ERROR] - GeronimoLog.error(108) | Error sending message (mex={PartnerRoleMex#hq
ejbhcnphr4889s9idrig [PID {http://helloworld}HelloWorld-1] calling null.getGreet
ings(...)}): Unable to register synchronizer.
org.apache.ode.bpel.iapi.ContextException: Unable to register synchronizer.
        at org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(
SimpleScheduler.java:206)
        at org.apache.ode.scheduler.simple.SimpleScheduler.addTodoOnCommit(Simpl
eScheduler.java:364)
        at org.apache.ode.scheduler.simple.SimpleScheduler.schedulePersistedJob(
SimpleScheduler.java:232)
        at org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.continueAsy
nc(PartnerRoleMessageExchangeImpl.java:126)
        at org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.replyWithFa
ilure(PartnerRoleMessageExchangeImpl.java:97)
        at org.apache.tuscany.sca.implementation.bpel.ode.ODEExternalService$1$1
.call(ODEExternalService.java:146)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:907)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
        at org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(
SimpleScheduler.java:194)
        ... 10 more
Terminate batch job (Y/N)? y


Anyone else seeing this?

Simon

Re: [1.x] hang in BPEL itest with latest code

Posted by Raymond Feng <en...@gmail.com>.
I see it too.

Sent from my iPod

On Apr 27, 2009, at 5:42 AM, Mike Edwards <mike.edwards.inglenook@gmail.com 
 > wrote:

> Simon Laws wrote:
>> itest\bpel\helloworld-reference is hanging for me with the latest
>> code. It's getting to...
>> <message><parameters><getGreetings xmlns="http:// 
>> greetings"><message xmlns="http
>> ://helloworld" xmlns:ns2="http://helloworld/" xmlns:xs="http://www.w3.org/2001/X
>> MLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
>> xsi:type="xs:str
>> ing">Luciano</message></getGreetings></parameters></message>
>> [DEBUG] - GeronimoLog.debug(66) | >>> Payload: <?xml version="1.0"  
>> encoding="UTF
>> -8"?>
>> <getGreetings xmlns="http://greetings"><message xmlns="http://helloworld 
>> " xmlns:
>> ns2="http://helloworld/" xmlns:xs="http://www.w3.org/2001/ 
>> XMLSchema" xmlns:xsi="
>> http://www.w3.org/2001/XMLSchema-instance"  
>> xsi:type="xs:string">Luciano</message
>>> </getGreetings>
>> [ERROR] - GeronimoLog.error(108) | Error sending message  
>> (mex={PartnerRoleMex#hq
>> ejbhcnphr4889s9idrig [PID {http://helloworld}HelloWorld-1] calling  
>> null.getGreet
>> ings(...)}): Unable to register synchronizer.
>> org.apache.ode.bpel.iapi.ContextException: Unable to register  
>> synchronizer.
>>        at  
>> org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(
>> SimpleScheduler.java:206)
>>        at  
>> org.apache.ode.scheduler.simple.SimpleScheduler.addTodoOnCommit(Simpl
>> eScheduler.java:364)
>>        at  
>> org.apache.ode.scheduler.simple.SimpleScheduler.schedulePersistedJob(
>> SimpleScheduler.java:232)
>>        at  
>> org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.continueAsy
>> nc(PartnerRoleMessageExchangeImpl.java:126)
>>        at  
>> org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.replyWithFa
>> ilure(PartnerRoleMessageExchangeImpl.java:97)
>>        at  
>> org.apache.tuscany.sca.implementation.bpel.ode.ODEExternalService$1$1
>> .call(ODEExternalService.java:146)
>>        at java.util.concurrent.FutureTask 
>> $Sync.innerRun(FutureTask.java:303)
>>        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>        at java.util.concurrent.ThreadPoolExecutor 
>> $Worker.runTask(ThreadPoolExec
>> utor.java:885)
>>        at java.util.concurrent.ThreadPoolExecutor 
>> $Worker.run(ThreadPoolExecutor
>> .java:907)
>>        at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.NullPointerException
>>        at  
>> org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(
>> SimpleScheduler.java:194)
>>        ... 10 more
>> Terminate batch job (Y/N)? y
>> Anyone else seeing this?
>> Simon
> Folks,
>
> I too see this problem.
>
>
> Yours,  Mike.

Re: [1.x] hang in BPEL itest with latest code

Posted by Mike Edwards <mi...@gmail.com>.
Simon Laws wrote:
> itest\bpel\helloworld-reference is hanging for me with the latest
> code. It's getting to...
> 
> <message><parameters><getGreetings xmlns="http://greetings"><message xmlns="http
> ://helloworld" xmlns:ns2="http://helloworld/" xmlns:xs="http://www.w3.org/2001/X
> MLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:str
> ing">Luciano</message></getGreetings></parameters></message>
> [DEBUG] - GeronimoLog.debug(66) | >>> Payload: <?xml version="1.0" encoding="UTF
> -8"?>
> <getGreetings xmlns="http://greetings"><message xmlns="http://helloworld" xmlns:
> ns2="http://helloworld/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Luciano</message
>> </getGreetings>
> [ERROR] - GeronimoLog.error(108) | Error sending message (mex={PartnerRoleMex#hq
> ejbhcnphr4889s9idrig [PID {http://helloworld}HelloWorld-1] calling null.getGreet
> ings(...)}): Unable to register synchronizer.
> org.apache.ode.bpel.iapi.ContextException: Unable to register synchronizer.
>         at org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(
> SimpleScheduler.java:206)
>         at org.apache.ode.scheduler.simple.SimpleScheduler.addTodoOnCommit(Simpl
> eScheduler.java:364)
>         at org.apache.ode.scheduler.simple.SimpleScheduler.schedulePersistedJob(
> SimpleScheduler.java:232)
>         at org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.continueAsy
> nc(PartnerRoleMessageExchangeImpl.java:126)
>         at org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.replyWithFa
> ilure(PartnerRoleMessageExchangeImpl.java:97)
>         at org.apache.tuscany.sca.implementation.bpel.ode.ODEExternalService$1$1
> .call(ODEExternalService.java:146)
>         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:907)
>         at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.NullPointerException
>         at org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(
> SimpleScheduler.java:194)
>         ... 10 more
> Terminate batch job (Y/N)? y
> 
> 
> Anyone else seeing this?
> 
> Simon
> 
Folks,

I too see this problem.


Yours,  Mike.

Re: [1.x] hang in BPEL itest with latest code

Posted by Simon Laws <si...@googlemail.com>.
On Mon, Apr 27, 2009 at 4:31 PM, Raymond Feng <en...@gmail.com> wrote:
> I'll look into the mode for wsdl.
>

That would be great Raymond. Am still looking at why the error doesn't
get returned properly.

Simon

Re: [1.x] hang in BPEL itest with latest code

Posted by Raymond Feng <en...@gmail.com>.
I'll look into the mode for wsdl.

Sent from my iPod

On Apr 27, 2009, at 5:00 AM, Simon Laws <si...@googlemail.com>  
wrote:

> The underlying cause of the error is some holder code in
> JavaImplementationInvoker.invoke()...
>
>            // Holder pattern. Any payload parameters <T> which are
> should be in holders are placed in Holder<T>.
>            // Only check Holder for remotable interfaces
>            if (imethod != null && op.getInterface().isRemotable()) {
>                List<DataType> inputTypes =  
> op.getInputType().getLogical();
>                for (int i = 0, size = inputTypes.size(); i < size; i+ 
> +) {
>                    if (ParameterMode.IN !=  
> op.getParameterModes().get(i)) {
>                        // Promote array params from [<T>] to  
> [Holder<T>]
>                        Object[] payloadArray = (Object[])payload;
>                        for (int j = 0; payloadArray != null && j <
> payloadArray.length; j++) {
>                            Object item = payloadArray[j];
>                            payloadArray[j] = new Holder(item);
>                        }
>                        argumentHolderCount++;
>                    }
>                }
>            }
>
> I don't think this code is actually wrong though. In the case of the
> WSDL interfaces generated during the BPEL processing, and passed to a
> local Java component with the message operation, the array of
> parameter modes in the operation is empty. I assume WSDL operations
> should accurately describe their parameter modes.
>
> The secondary problem is that having found this error the BPEL
> processing locks up.
>
> Simon

Re: [1.x] hang in BPEL itest with latest code

Posted by Raymond Feng <en...@gmail.com>.
I fixed the issue and the test case is passing now.

Thanks,
Raymond
--------------------------------------------------
From: "Simon Laws" <si...@googlemail.com>
Sent: Monday, April 27, 2009 5:00 AM
To: <de...@tuscany.apache.org>; <an...@apache.org>
Subject: Re: [1.x] hang in BPEL itest with latest code

> The underlying cause of the error is some holder code in
> JavaImplementationInvoker.invoke()...
>
>            // Holder pattern. Any payload parameters <T> which are
> should be in holders are placed in Holder<T>.
>            // Only check Holder for remotable interfaces
>            if (imethod != null && op.getInterface().isRemotable()) {
>                List<DataType> inputTypes = op.getInputType().getLogical();
>                for (int i = 0, size = inputTypes.size(); i < size; i++) {
>                    if (ParameterMode.IN != op.getParameterModes().get(i)) 
> {
>                        // Promote array params from [<T>] to [Holder<T>]
>                        Object[] payloadArray = (Object[])payload;
>                        for (int j = 0; payloadArray != null && j <
> payloadArray.length; j++) {
>                            Object item = payloadArray[j];
>                            payloadArray[j] = new Holder(item);
>                        }
>                        argumentHolderCount++;
>                    }
>                }
>            }
>
> I don't think this code is actually wrong though. In the case of the
> WSDL interfaces generated during the BPEL processing, and passed to a
> local Java component with the message operation, the array of
> parameter modes in the operation is empty. I assume WSDL operations
> should accurately describe their parameter modes.
>
> The secondary problem is that having found this error the BPEL
> processing locks up.
>
> Simon 


Re: [1.x] hang in BPEL itest with latest code

Posted by Simon Laws <si...@googlemail.com>.
The underlying cause of the error is some holder code in
JavaImplementationInvoker.invoke()...

            // Holder pattern. Any payload parameters <T> which are
should be in holders are placed in Holder<T>.
            // Only check Holder for remotable interfaces
            if (imethod != null && op.getInterface().isRemotable()) {
                List<DataType> inputTypes = op.getInputType().getLogical();
                for (int i = 0, size = inputTypes.size(); i < size; i++) {
                    if (ParameterMode.IN != op.getParameterModes().get(i)) {
                        // Promote array params from [<T>] to [Holder<T>]
                        Object[] payloadArray = (Object[])payload;
                        for (int j = 0; payloadArray != null && j <
payloadArray.length; j++) {
                            Object item = payloadArray[j];
                            payloadArray[j] = new Holder(item);
                        }
                        argumentHolderCount++;
                    }
                }
            }

I don't think this code is actually wrong though. In the case of the
WSDL interfaces generated during the BPEL processing, and passed to a
local Java component with the message operation, the array of
parameter modes in the operation is empty. I assume WSDL operations
should accurately describe their parameter modes.

The secondary problem is that having found this error the BPEL
processing locks up.

Simon

Re: [1.x] hang in BPEL itest with latest code

Posted by Simon Laws <si...@googlemail.com>.
On Mon, Apr 27, 2009 at 10:54 AM, ant elder <an...@gmail.com> wrote:
> On Mon, Apr 27, 2009 at 10:18 AM, Simon Laws <si...@googlemail.com> wrote:
>> itest\bpel\helloworld-reference is hanging for me with the latest
>> code. It's getting to...
>>
>> <message><parameters><getGreetings xmlns="http://greetings"><message xmlns="http
>> ://helloworld" xmlns:ns2="http://helloworld/" xmlns:xs="http://www.w3.org/2001/X
>> MLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:str
>> ing">Luciano</message></getGreetings></parameters></message>
>> [DEBUG] - GeronimoLog.debug(66) | >>> Payload: <?xml version="1.0" encoding="UTF
>> -8"?>
>> <getGreetings xmlns="http://greetings"><message xmlns="http://helloworld" xmlns:
>> ns2="http://helloworld/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="
>> http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Luciano</message
>>></getGreetings>
>> [ERROR] - GeronimoLog.error(108) | Error sending message (mex={PartnerRoleMex#hq
>> ejbhcnphr4889s9idrig [PID {http://helloworld}HelloWorld-1] calling null.getGreet
>> ings(...)}): Unable to register synchronizer.
>> org.apache.ode.bpel.iapi.ContextException: Unable to register synchronizer.
>>        at org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(
>> SimpleScheduler.java:206)
>>        at org.apache.ode.scheduler.simple.SimpleScheduler.addTodoOnCommit(Simpl
>> eScheduler.java:364)
>>        at org.apache.ode.scheduler.simple.SimpleScheduler.schedulePersistedJob(
>> SimpleScheduler.java:232)
>>        at org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.continueAsy
>> nc(PartnerRoleMessageExchangeImpl.java:126)
>>        at org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.replyWithFa
>> ilure(PartnerRoleMessageExchangeImpl.java:97)
>>        at org.apache.tuscany.sca.implementation.bpel.ode.ODEExternalService$1$1
>> .call(ODEExternalService.java:146)
>>        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
>> utor.java:885)
>>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
>> .java:907)
>>        at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.NullPointerException
>>        at org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(
>> SimpleScheduler.java:194)
>>        ... 10 more
>> Terminate batch job (Y/N)? y
>>
>>
>> Anyone else seeing this?
>>
>> Simon
>>
>
> I see the same, it worked ok this morning then i updated to pick up
> recent checked in changes and now it hangs with "Unable to register
> synchronizer."
>
>   ...ant
>

Yep, I don't see any explicit implementation.bpel changes so something
else we've changed if upsetting it. I think this registerSynchronizer
is just a side effect of underlying problem. I have a feeling that the
error reporting from BPEL is not working properly.

Simon

Re: [1.x] hang in BPEL itest with latest code

Posted by ant elder <an...@gmail.com>.
On Mon, Apr 27, 2009 at 10:18 AM, Simon Laws <si...@googlemail.com> wrote:
> itest\bpel\helloworld-reference is hanging for me with the latest
> code. It's getting to...
>
> <message><parameters><getGreetings xmlns="http://greetings"><message xmlns="http
> ://helloworld" xmlns:ns2="http://helloworld/" xmlns:xs="http://www.w3.org/2001/X
> MLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:str
> ing">Luciano</message></getGreetings></parameters></message>
> [DEBUG] - GeronimoLog.debug(66) | >>> Payload: <?xml version="1.0" encoding="UTF
> -8"?>
> <getGreetings xmlns="http://greetings"><message xmlns="http://helloworld" xmlns:
> ns2="http://helloworld/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Luciano</message
>></getGreetings>
> [ERROR] - GeronimoLog.error(108) | Error sending message (mex={PartnerRoleMex#hq
> ejbhcnphr4889s9idrig [PID {http://helloworld}HelloWorld-1] calling null.getGreet
> ings(...)}): Unable to register synchronizer.
> org.apache.ode.bpel.iapi.ContextException: Unable to register synchronizer.
>        at org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(
> SimpleScheduler.java:206)
>        at org.apache.ode.scheduler.simple.SimpleScheduler.addTodoOnCommit(Simpl
> eScheduler.java:364)
>        at org.apache.ode.scheduler.simple.SimpleScheduler.schedulePersistedJob(
> SimpleScheduler.java:232)
>        at org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.continueAsy
> nc(PartnerRoleMessageExchangeImpl.java:126)
>        at org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.replyWithFa
> ilure(PartnerRoleMessageExchangeImpl.java:97)
>        at org.apache.tuscany.sca.implementation.bpel.ode.ODEExternalService$1$1
> .call(ODEExternalService.java:146)
>        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:885)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:907)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.NullPointerException
>        at org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(
> SimpleScheduler.java:194)
>        ... 10 more
> Terminate batch job (Y/N)? y
>
>
> Anyone else seeing this?
>
> Simon
>

I see the same, it worked ok this morning then i updated to pick up
recent checked in changes and now it hangs with "Unable to register
synchronizer."

   ...ant