As is my way, I'm posting the issue and the solution in a bid to reduce the average amount of pain felt.
WARNING: HP Quality Center Plugin exception com4j.ComException: 800413ed (Unknown error) : Parameter Type is Invalid : .\invoke.cpp:517
The fix for this turned out to be replacing the empty String with a com4j.Variant.Type.VT_NULL
import com4j.Variant;
Then replace
Com4jObject bugObject = bugFactory.addItem("");With
Com4jObject bugObject = bugFactory.addItem(new Variant(Variant.Type.VT_NULL));
Another tip is formatting the date.
WARNING: HP Quality Center Plugin exception com4j.ComException: 80040519 (Unknown error) : Invalid date field value. : .\invoke.cpp:517
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yy"); Date date = new Date(); bug.field("BG_DETECTION_DATE", dateFormat.format(date));
The final tip is ensuring you use a user that exists on the system.
WARNING: HP Quality Center Plugin exception com4j.ComException: 800403ff (Unknown error) : Dookie is not in the users list : .\invoke.cpp:517
bug.field("BG_DETECTED_BY", "this has to be a valid user");
It's not all good news. For the life of me I couldn't find a solution to the this one and didn't want to get too deeply into the whole DLL thing. No matter how I specified the DLL; jvm params, properties et al of how I registered them or indeed which version I used, I could not overcome the following error. If oyu have a fix, let me know please. The only way to circumnavigate it was to downgrade from a 64-bit to a 32-bit version of the application. So I can only assume there is an issue with com4j-amd64.dll or com4j-x64.dll
com4j.ExecutionException: com4j.ComException: 80040154 CoCreateInstance failed : Class not registered : .\com4j.cpp:153