You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by Guillaume Nodet <gn...@gmail.com> on 2007/01/22 11:33:16 UTC

JBI deployment broken due to versioning

It seems that the JBI deployment is broken.
The versioning stuff that has been recently introduced [1]
cause the OdeServiceUnit to fail starting.

The start method on the OdeServiceUnit is the following:
        List<QName> pids =
_ode._store.listProcesses(_serviceUnitRootPath.getName());
        if (pids == null) {
            __log.error(_serviceUnitRootPath.getName() + " not found
in process stroe. ");
            throw new IllegalStateException("Process store and JBI out
of synch.");
        }

        Exception e = null;
        for (QName pid : pids) {
            try {
                _ode._server.register(_ode._store.getProcessConfiguration(pid));
                _registered.add(pid);
            } catch (Exception ex) {
                e = ex;
                __log.error("Unable to load " + pid, ex);
                break;
            }
        }


The problem is that the listProcesses returns a list of QNames (with
the original
process names), but the getProcessConfiguration expects a versioned qname
(ending with "-1").  This leads to an NPE being thrown when calling the
register method with a null process.

As there is no way to retrieve the DeploymentUnitDir object, i guess
the listProcesses method should be fixed somehow, but I'm not sure exactly
how ...  Matthieu ?

[1] http://fisheye3.cenqua.com/browse/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java?r1=495361&r2=496884

-- 
Cheers,
Guillaume Nodet
------------------------
Architect, LogicBlaze (http://www.logicblaze.com/)
Blog: http://gnodet.blogspot.com/

Re: JBI deployment broken due to versioning

Posted by Matthieu Riou <ma...@gmail.com>.
Yeah, looks like listProcesses should be fixed. I'll have a look.

Matthieu

On 1/22/07, Guillaume Nodet <gn...@gmail.com> wrote:
>
> It seems that the JBI deployment is broken.
> The versioning stuff that has been recently introduced [1]
> cause the OdeServiceUnit to fail starting.
>
> The start method on the OdeServiceUnit is the following:
>         List<QName> pids =
> _ode._store.listProcesses(_serviceUnitRootPath.getName());
>         if (pids == null) {
>             __log.error(_serviceUnitRootPath.getName() + " not found
> in process stroe. ");
>             throw new IllegalStateException("Process store and JBI out
> of synch.");
>         }
>
>         Exception e = null;
>         for (QName pid : pids) {
>             try {
>
>                 _ode._server.register(_ode._store.getProcessConfiguration(pid));
>                 _registered.add(pid);
>             } catch (Exception ex) {
>                 e = ex;
>                 __log.error("Unable to load " + pid, ex);
>                 break;
>             }
>         }
>
>
> The problem is that the listProcesses returns a list of QNames (with
> the original
> process names), but the getProcessConfiguration expects a versioned qname
> (ending with "-1").  This leads to an NPE being thrown when calling the
> register method with a null process.
>
> As there is no way to retrieve the DeploymentUnitDir object, i guess
> the listProcesses method should be fixed somehow, but I'm not sure exactly
> how ...  Matthieu ?
>
> [1]
> http://fisheye3.cenqua.com/browse/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java?r1=495361&r2=496884
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Architect, LogicBlaze (http://www.logicblaze.com/)
> Blog: http://gnodet.blogspot.com/
>