I can replicate this in Ptolemy, outside of Kepler.
It seems that the problem has to do with having more than one Display actor connected to a multiport output.
The attached model (MultiportOutHangDuringGetWidth.xml) replicates the problem using the Minimum actor, which has a multiport output connected to two Display actors.
The model hangs in preinitialize():
at java.util.LinkedList.addAll(LinkedList.java:408)
at java.util.LinkedList.addAll(LinkedList.java:387)
at java.util.LinkedList.<init>(LinkedList.java:119)
at ptolemy.actor.RelationWidthInference.inferWidths(RelationWidthInference.java:338\
)
at ptolemy.actor.CompositeActor.inferWidths(CompositeActor.java:824)
at ptolemy.actor.IORelation.getWidth(IORelation.java:325)
at ptolemy.actor.IOPort._getWidth(IOPort.java:4999)
at ptolemy.actor.IOPort.getWidth(IOPort.java:1952)
at ptolemy.actor.IOPort._getReceivers(IOPort.java:4859)
at ptolemy.actor.IOPort.getReceivers(IOPort.java:1754)
at ptolemy.actor.IOPort.getInsideReceivers(IOPort.java:1365)
at ptolemy.domains.sdf.kernel.SDFScheduler._scheduleConnectedActors(SDFScheduler.ja\
va:1513)
at ptolemy.domains.sdf.kernel.SDFScheduler._getSchedule(SDFScheduler.java:585)
at ptolemy.actor.sched.Scheduler.getSchedule(Scheduler.java:189)
at ptolemy.domains.sdf.kernel.SDFDirector.createSchedule(SDFDirector.java:408)
at ptolemy.domains.sdf.kernel.SDFDirector.preinitialize(SDFDirector.java:761)
at ptolemy.actor.CompositeActor.preinitialize(CompositeActor.java:1820)
However, $PTII/ptolemy/actor/lib/test/auto/MinimumMultiports.xml does not hang.
It has the Minimum actor connected to Test actors instead of Display.
I tried reverse type inference on my test case, but that did not change anything.
I'll see if I can get Edward's input.