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/

Reply via email to