Exemplo n.º 1
0
  public void recoverActivity(
      final String channel, final long activityId, final String action, FaultInfo fault) {
    // TODO: better translation here?
    final FaultData fdata =
        (fault != null) ? new FaultData(fault.getFaultName(), null, fault.getExplanation()) : null;

    _vpu.inject(
        new JacobRunnable() {
          private static final long serialVersionUID = 3168964409165899533L;

          public void run() {
            ActivityRecoveryChannel recovery =
                importChannel(channel, ActivityRecoveryChannel.class);
            __log.info(
                "ActivityRecovery: Recovering activity "
                    + activityId
                    + " with action "
                    + action
                    + " on channel "
                    + recovery);
            if (recovery != null) {
              if ("cancel".equals(action)) recovery.cancel();
              else if ("retry".equals(action)) recovery.retry();
              else if ("fault".equals(action)) recovery.fault(fdata);
            }
          }
        });
  }
Exemplo n.º 2
0
 @Test
 public void testFault() throws Exception {
   assertEquals(operationInfo.getFaults().size(), 0);
   QName faultName = new QName("urn:test:ns", "fault");
   operationInfo.addFault(
       faultName, new QName("http://apache.org/hello_world_soap_http", "faultMessage"));
   assertEquals(operationInfo.getFaults().size(), 1);
   FaultInfo fault = operationInfo.getFault(faultName);
   assertNotNull(fault);
   assertEquals(fault.getFaultName().getLocalPart(), "fault");
   assertEquals(fault.getName().getLocalPart(), "faultMessage");
   assertEquals(fault.getName().getNamespaceURI(), "http://apache.org/hello_world_soap_http");
   operationInfo.removeFault(faultName);
   assertEquals(operationInfo.getFaults().size(), 0);
   try {
     operationInfo.addFault(null, null);
     fail("should get NullPointerException");
   } catch (NullPointerException e) {
     assertEquals("Fault Name cannot be null.", e.getMessage());
   }
   try {
     operationInfo.addFault(faultName, null);
     operationInfo.addFault(faultName, null);
     fail("should get IllegalArgumentException");
   } catch (IllegalArgumentException e) {
     assertEquals(
         e.getMessage(),
         "A fault with name [{urn:test:ns}fault] already exists in this operation");
   }
 }