ClassCastExcpetion in PERestartTrigger when trying to resubmit from java method

I am currently trying to resubmit a step in a proces instance with modified data.

wM 9.5 SP1 with IS_9.5_SP1_Core_Fix8, PRT_9.5_SP1_Fix9 and MON_9.5_SP1_Fix9.

  • User has permission to “Modify and Resubmit”.
  • Resubmit Event is recorded in the process instance

But the resubmitted step and the subsequent steps do not get the additional step iteration with the modified data.

Instead there is an error message logged in server log and error log indicating that there have been a ClassCastException on PERestartTrigger:

Extract from ErrorLog:
2016-02-15 17:15:36 MET wm.prt.status:handleRestartCommand wm.prt.status:handleRestartCommand com.wm.data.BasicIDataCodable cannot be cast to com.wm.app.prt.util.ProcessData

We are invoking the service pub.monitor.process.instanceControl:resubmitInstanceStep via Context.connect() and Context.invoke() in an external Java application.

When performing the same via MWS manually this works.

Any ideas whats going wrong here?

Regards,
Holger

Any Ideas? Any One?

Hi,

my current assumption is, that the pipeline being returned by querying the Step Data for its pipeline data contains an element ProcessData of Type BasicIdataCodable instead of ProcessData.

Both classes are implementing IDataCodable, but cannot be converted into each other directly.

So here are additional questions:

  • Is there an easy way to verify the above assumption when having the Idata object of the complete pipeline available?
  • Is it possible to create a new ProcessData object with the corect data for the modified pipeline replacing the old one of Type BasicIdataCodable?

Regards,
Holger

Hi,

Have you checked that the external application is using the correct version of the WM jar files (that is, with the applied fixes)?

Has this ever worked, before applying the fixes?

Best Regards,

Hi Gerardo,

thanks for pointing this out.

I am not sure if I will find time this week to check this out.

But I will follow up on this in July after my vacations.

Regards,
Holger

Holger,

If it’s working from MWS, you can look at how the services under WmMonitor/ws (instead of /pub) are implemented because those are typically the services that MWS calls.

Once you look at those services, you could either do what MWS does and invoke those services yourself or you could peek behind the covers and call the same API those services are calling.

Percio