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/
>