code: public long executeStartWork(org.ironjacamar.core.spi.workmanager.Address logicalAddress,
                                  ClassBundle classBundle, byte[] b)
        throws WorkException
     {
        ByteArrayInputStream bias = new ByteArrayInputStream(b);
        WorkObjectInputStream wois = null;
        try
        {
           WorkClassLoader wcl = SecurityActions.createWorkClassLoader(classBundle);
           
           wois = new WorkObjectInputStream(bias, wcl);
  
           DistributableWork dw = (DistributableWork)wois.readObject();
  
           return localStartWork(logicalAddress, dw);
        }
        catch (WorkException we)
        {
           throw we;
        }
        catch (Throwable t)
        {
           throw new WorkException("Error during doWork: " + t.getMessage(), t);
        }
        finally
        {
           if (wois != null)
           {
              try
              {
                 wois.close();
              }
              catch (IOException ioe)
              {
                 // Ignore
              }
           }
        }
     }
docs: Execute startWork
  @param logicalAddress The logical address
  @param classBundle The class bundle
  @param b The bytes
  @return the start value
  @throws WorkException in case of error