[kepler-dev] Getting TerminateProcessException when sending token from input port to output port
Christopher Brooks
cxh at eecs.berkeley.edu
Sat Aug 25 09:14:29 PDT 2012
Hi Madhavi,
The pseudo code does not give me much to go on.
If you look at the put() method in PNQueueReceiver, then you will see:
while(!_terminate) {
...
try {
...
} catch (InterruptedException e) {
_terminate = true;
} finally {
....
}
}
if (_terminate) {
throw new TerminateProcessException("");
}
Also, reset() sets _terminate to false.
requestFinish() sets _terminate to true.
See the documentation for TerminateProcessException at
http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII8.0/ptII/doc/codeDoc/ptolemy/actor/process/TerminateProcessException.html
> This exception is thrown to terminate a process. This is only a
> notification exception that a ProcessDirector uses to terminate all
> the processes gracefully. It is not an exception that indicates an
> error in the code or model.
>
> In the process domains (PN and CSP for example), a simulation is
> terminated only when a deadlock is detected. During a deadlock, the
> threads corresponding to actors are normally blocked on a method call
> to the receiver. This exception is normally thrown from these methods,
> so that the threads can return from the call and terminate themselves.
>
> This class is a standalone class and not derived from the Ptolemy
> Runtime exceptions as those exceptions indicate an error in the model,
> while this exception is used for passing of information to the threads.
The run() method in ptolemy.actor.process.ProcessThread has code like
} else if (thrownWhenIterate instanceof InterruptedException) {
// Process was terminated by call to stop();
if (_debugging) {
_debug("-- Thread was interrupted: "
+ thrownWhenIterate);
}
}
My guess is that PNQueueReceiver.put() may be throwing an
InterruptedException, or PNQueueReceiver.requestFinish() is being called.
I don't see anything obviously wrong with your pseudo code, I suspect
the model has unconnected ports or something?
I would need a complete example to look further into this, there are
just too many possibilities.
_Christopher
On 8/24/12 10:13 PM, Madhavi Tikhe wrote:
>
> Hi Chris,
>
> Thanks for the reply. Following is the illustration for the logic I have.
>
> Public TestActor extends TypedAtomicActor
>
> {
>
> TypedIOPort input, output;
>
> Public TestActor (CompositeEntity container , String name ) throws
> IllegalActionException, NameDuplicationException
>
> {
>
> Super ( container, name);
>
> input = createInputPort ( "test");
>
> output = createOutputPort ("test");
>
> }
>
> Public void fire () throws IllegalActionException
>
> {
>
> Super.fire();
>
> If ( some-condition-met)
>
> {
>
> List <IOPort> ports = this.outputPortList();
>
> For (IOPort port : ports )
>
> {
>
> Object value = getValueFor ( port.getName ());
>
> Token token = createTokenFromObject ( value ) ;
>
> port.send (0, token); // THIS LINE IS THROWING TPE
>
> }
>
> }
>
> }
>
> public void postfire() throws IllegalActionException
>
> {
>
> return doWeWantToStop();
>
> }
>
> }
>
> Regards,
>
> Madhavi
>
> *From:*Christopher Brooks [mailto:cxh at eecs.berkeley.edu]
> *Sent:* Saturday, August 25, 2012 10:32 AM
> *To:* Madhavi Tikhe
> *Cc:* kepler-dev
> *Subject:* Re: [kepler-dev] Getting TerminateProcessException when
> sending token from input port to output port
>
> Do you have a small model that illustrates the problem?
>
> _Christopher
>
> On 8/24/12 10:00 PM, Madhavi Tikhe wrote:
>
> Hi,
>
> I am trying to send the token to output port on some conditions
> related to my application.
>
> I am using PN director for my workflow and using port.send
> (0,token) to send the token to next input port.
>
> I am experiencing the following exception and is blocked on it.
>
> ptolemy.actor.process.TerminateProcessException: Process terminated.
>
> at
> ptolemy.domains.pn.kernel.PNQueueReceiver.put(PNQueueReceiver.java:450)
>
> at
> ptolemy.actor.AbstractReceiver.putToAll(AbstractReceiver.java:347)
>
> at ptolemy.actor.IOPort.send(IOPort.java:2733)
>
> at ptolemy.actor.TypedIOPort.send(TypedIOPort.java:484)
>
> Have you experienced this problem before? Do you have any
> suggestions for this?
>
> Thanks in advance for the help.
>
> Madhavi
>
> DISCLAIMER ========== This e-mail may contain privileged and
> confidential information which is the property of Persistent
> Systems Ltd. It is intended only for the use of the individual or
> entity to which it is addressed. If you are not the intended
> recipient, you are not authorized to read, retain, copy, print,
> distribute or use this message. If you have received this
> communication in error, please notify the sender and delete all
> copies of this message. Persistent Systems Ltd. does not accept
> any liability for virus infected mails.
>
>
>
>
> _______________________________________________
>
> Kepler-dev mailing list
>
> Kepler-dev at kepler-project.org <mailto:Kepler-dev at kepler-project.org>
>
> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev
>
>
>
> --
> Christopher Brooks, PMP University of California
> CHESS Executive Director US Mail: 337 Cory Hall
> Programmer/Analyst CHESS/Ptolemy/Trust Berkeley, CA 94720-1774
> ph: 510.643.9841 (Office: 545Q Cory)
> home: (F-Tu) 707.665.0131 cell: 707.332.0670
>
> DISCLAIMER ========== This e-mail may contain privileged and
> confidential information which is the property of Persistent Systems
> Ltd. It is intended only for the use of the individual or entity to
> which it is addressed. If you are not the intended recipient, you are
> not authorized to read, retain, copy, print, distribute or use this
> message. If you have received this communication in error, please
> notify the sender and delete all copies of this message. Persistent
> Systems Ltd. does not accept any liability for virus infected mails.
>
--
Christopher Brooks, PMP University of California
CHESS Executive Director US Mail: 337 Cory Hall
Programmer/Analyst CHESS/Ptolemy/Trust Berkeley, CA 94720-1774
ph: 510.643.9841 (Office: 545Q Cory)
home: (F-Tu) 707.665.0131 cell: 707.332.0670
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.nceas.ucsb.edu/kepler/pipermail/kepler-dev/attachments/20120825/f0cdb8fb/attachment-0001.html>
More information about the Kepler-dev
mailing list