Monthly Archives: April 2010

DFC Lifecycle Promotion Failure at End of Lifecycle

Finding issues like the following is one of the amusing things about navigating APIs.  In DFC 6.5SP1 IDfSysObject.canPromote() will return true for an object that is at the end of it’s lifecycle.

Wait.  That isn’t right!  Yet, that is what happens.

It appears to get DfPolicy.canPromot() to do the real task.  There’s clearly a bug in how that computes the subsequent state and identifies a terminal state.

But there is a workaround:  IDfSysObject.getNextStateName().  The following test proved to work in all of the situations I needed it to, including not attempting to promote a object already at the end of its lifecycle:

if (!sysObj.canPromote() ||
     sysObj.getNextStateName() == null) {
   ... yell about not being able to promote

And that’s that.

Synergy Plus

I feel very behind the times.  One of my favorite tools has not been maintained for years.  BUT, there is a fork of it that is maintained:

Even with a KVM, this additional tool is great.  I have a dual-monitor setup where one monitor is on a KVM.  The second monitor on my desktop system and my laptop screen are dedicated to those systems.  With the KVM I can make either desktop bigger, but since I spend most of my time with my laptop (for work), Synergy+ lets me quickly drift over to my desktop and deal with anything displaying on the secondary screen (IRC, music, etc.).