Pipeline 1.6 Notifier

202 views
Skip to first unread message

Kate Alpert

unread,
Feb 19, 2013, 12:20:55 PM2/19/13
to Xnat
Hi Mohana,

I am attempting to use the pipeline engine (v1.6.1 from pipeline_1_6dev) separately from XNAT and I am running into trouble with the Demo_Loop.xml Notification step.  I'm running the Demo_Loop.xml pipeline as follows:
<PIPELINE_1_6_HOME>/bin/PipelineRunner -pipeline <PIPELINE_1_6_HOME>/sample_pipelines/Demo_Loop.xml -parameterFile<PIPELINE_1_6_HOME>/sample_pipelines/Parameters.xml  -config <PIPELINE_1_6_HOME>/pipeline.config -notify <EMAIL_ADDR>
I have modified Parameters.xml to use our SMTP host and list my email.  The pipeline.config file also lists this SMTP host.  I haven't changed anything else.  The java error message follows.  
Incidentally, if I use PipelineRunner from pipeline 1.5 as below, everything works fine:
<PIPELINE_1_5_HOME>/bin/PipelineRunner -pipeline <PIPELINE_1_6_HOME>/sample_pipelines/Demo_Loop.xml -parameterFile<PIPELINE_1_6_HOME>/sample_pipelines/Parameters.xml  -config <PIPELINE_1_6_HOME>/pipeline.config -notify <EMAIL_ADDR>
Please advise!
Thanks, Kate

ERROR:
Pipeline Launch Time: 2013-02-19T10:45:31.31
 Current Step Id : 4
 Step Launch Time: 2013-02-19T10:45:31.31
 Step Status: Running
 Next Step:
 Message: Demo Custom Email Notification with attachment
 Percentage Complete: 66.66667%
 Path to Pipeline Descriptor: /projects/p20394/software/niacal_pipeline/sample_pipelines/Demo_Loop

Exception in thread "main" java.lang.NoSuchMethodError: javax.mail.internet.InternetAddress.validate()V
        at org.apache.commons.mail.Email.createInternetAddress(Email.java:601)
        at org.apache.commons.mail.Email.setFrom(Email.java:668)
        at org.apache.commons.mail.Email.setFrom(Email.java:651)
        at org.apache.commons.mail.Email.setFrom(Email.java:631)
        at org.nrg.mail.api.MailMessage.asHtmlEmail(MailMessage.java:309)
        at org.nrg.pipeline.utils.MailUtils.send(MailUtils.java:100)
        at org.nrg.pipeline.process.PersonnelNotificationLauncher.launchProcess(PersonnelNotificationLauncher.java:154)
        at org.nrg.pipeline.manager.ExecutionManager.launch(ExecutionManager.java:169)
        at org.nrg.pipeline.manager.ExecutionManager.execute(ExecutionManager.java:89)
        at org.nrg.pipeline.task.StepManager.execute(StepManager.java:166)
        at org.nrg.pipeline.manager.PipelineManager.launchPipeline(PipelineManager.java:213)
        at org.nrg.pipeline.manager.PipelineManager.launchPipeline(PipelineManager.java:203)
        at org.nrg.pipeline.apps.PipelineRunner.launchPipeline(PipelineRunner.java:174)
        at org.nrg.pipeline.apps.PipelineRunner.run(PipelineRunner.java:149)
        at org.nrg.pipeline.apps.PipelineRunner.main(PipelineRunner.java:115)

Mohana Ramaratnam

unread,
Feb 19, 2013, 12:26:21 PM2/19/13
to xnat_di...@googlegroups.com
Hi Kate,

Pipeline 1.6 uses  XNAT 1.6+ version of webapp to send emails. 

In all your custom pipelines, please add the user and password as input values to the notifier step. That is, notifier step should look like:

      <resource name="Notifier" location="notifications">
        <argument id="user">
          <value>^/Pipeline/parameters/parameter[name='user']/values/unique/text()^</value>
        </argument>
        <argument id="password">
          <value>^/Pipeline/parameters/parameter[name='pwd']/values/unique/text()^</value>
        </argument>
OTHER_NOTIFIER_ARGUMENTS_HERE (host, to, from, cc, subject, body)


 



--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To post to this group, send email to xnat_di...@googlegroups.com.
Visit this group at http://groups.google.com/group/xnat_discussion?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Kate Alpert

unread,
Feb 19, 2013, 12:27:34 PM2/19/13
to xnat_di...@googlegroups.com
Hi Mohana,

I was hoping to run the pipeline engine separately from XNAT.  Is this still possible?  

Thanks,
Kate

Mohana Ramaratnam

unread,
Feb 19, 2013, 12:32:02 PM2/19/13
to xnat_di...@googlegroups.com
It should be possible. Pipeline engine will try to attempt to connect to an XNAT host (which means you need a host parameter), if its not able to connect to one, it would attempt to send email via SMTP.

In order to avoid nosuchmethoderror, you may want to add host, user and password arguments (which could be dummy)

Kate Alpert

unread,
Feb 19, 2013, 12:38:29 PM2/19/13
to xnat_di...@googlegroups.com
The notification step in Demo_Loop.xml has user, password, and host arguments.  I set them all to "dummy", but I get the same NoSuchMethodError.

Kate Alpert

unread,
Feb 27, 2013, 10:28:46 AM2/27/13
to xnat_di...@googlegroups.com
Any thoughts?
I've tried setting just user and password to "dummy" and using mailhost for the host in addition to setting all 3 to "dummy"

Torsten Rohlfing

unread,
Feb 28, 2013, 12:30:34 PM2/28/13
to xnat_di...@googlegroups.com
For what it's worth - I am seeing the exact same error with the AutoRun pipeline on our 1.6.1 server:


Exception in thread "main" java.lang.NoSuchMethodError: javax.mail.internet.InternetAddress.validate()V
        at org.apache.commons.mail.Email.createInternetAddress(Email.java:601)
        at org.apache.commons.mail.Email.setFrom(Email.java:668)
        at org.apache.commons.mail.Email.setFrom(Email.java:651)
        at org.apache.commons.mail.Email.setFrom(Email.java:631)
        at org.nrg.mail.api.MailMessage.asHtmlEmail(MailMessage.java:309)
        at org.nrg.pipeline.utils.MailUtils.send(MailUtils.java:100)
        at org.nrg.pipeline.process.PersonnelNotificationLauncher.launchProcess(PersonnelNotificationLauncher.java:154)
        at org.nrg.pipeline.manager.ExecutionManager.launch(ExecutionManager.java:169)
        at org.nrg.pipeline.manager.ExecutionManager.execute(ExecutionManager.java:89)
        at org.nrg.pipeline.task.StepManager.execute(StepManager.java:166)
        at org.nrg.pipeline.manager.PipelineManager.launchPipeline(PipelineManager.java:213)
        at org.nrg.pipeline.manager.PipelineManager.launchPipeline(PipelineManager.java:193)
        at org.nrg.pipeline.client.XNATPipelineLauncher.launch(XNATPipelineLauncher.java:65)
        at org.nrg.pipeline.client.XNATPipelineLauncher.run(XNATPipelineLauncher.java:231)
        at org.nrg.pipeline.client.XNATPipelineLauncher.main(XNATPipelineLauncher.java:221)

Could this be a problem due to wrong JDK version? Also, I am using OpenJDK (1.7.0.9) - might this be the root of the problem?

Torsten

Mohana Ramaratnam

unread,
Feb 28, 2013, 12:48:47 PM2/28/13
to xnat_di...@googlegroups.com
This bug has been fixed. A jar was needed.


Mohana


Torsten Rohlfing

unread,
Mar 4, 2013, 5:16:14 PM3/4/13
to xnat_di...@googlegroups.com
Hi Mohana:

I followed the instructions in the other thread, but now I am getting a new error when I run the AutoRun pipeline:

Exception in thread "main" java.lang.NoClassDefFoundError: org/nrg/xdat/bean/XnatAbstractresourceBean
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
        at java.lang.Class.privateGetPublicMethods(Class.java:2571)
        at java.lang.Class.getMethods(Class.java:1429)
        at net.sf.saxon.functions.JavaExtensionLibrary.bind(JavaExtensionLibrary.java:309)
        at net.sf.saxon.functions.FunctionLibraryList.bind(FunctionLibraryList.java:83)
        at net.sf.saxon.expr.ExpressionParser.parseFunctionCall(ExpressionParser.java:1763

Any ideas?

Thanks!
  Torsten

Mohana Ramaratnam

unread,
Mar 4, 2013, 5:37:28 PM3/4/13
to xnat_di...@googlegroups.com
Hi Torsten,

The beans are in the jar xdat-beans-VERSION_HERE.jar. If you pulled in from hg.xnat.org/pipeline_1_6dev and ran PIPELINE_HOME/setup, the beans jar version is 1.6.2-SNAPSHOT.jar and this jar should be in PIPELINE_HOME/lib. If the XNAT version is 1.6.1, then the version number of the xdat-beans jar would be 1.6.1.

You could make the jar version change in PIPELINE_HOME/image-tools/WebBasedQCImageCreator

Does that work?



  Torsten

--

Torsten Rohlfing

unread,
Mar 4, 2013, 5:51:56 PM3/4/13
to xnat_di...@googlegroups.com
Yes, that worked - except I also had to change

pipeline/bin/XnatPipelineLauncher
pipeline/xnat-tools/XnatDataClient

Thanks!

Torsten

Torsten Rohlfing

unread,
Mar 8, 2013, 1:21:48 PM3/8/13
to xnat_di...@googlegroups.com
Ah, well, sorry ... we're still not getting AutoRun pipeline emails, and now the pipeline terminates altogether with this error (I am replacing confidential stuff with ALL-CAPITAL NAMES):

org.nrg.pipeline.exception.PipelineEngineException:  Execution of /PIPELINEPATH/catalog/notifications/Notifier -user SOMESTUFF -password SOMESTUFF -from ADMINEMAIL -to USEREMAIL -cc ADMINEMAIL -subject NCANDA update: SUBJECTID Archiving complete -body Dear USERNAME, \<br\> \<p\> \<br\> \<p\> The following session was archived in NCANDA:\<br\> \<p\>\<br\> \<p\> Project: PROJECT_ID\<br\> \<p\> Subject: SUBJECTID\<br\> \<p\> Session:SUBJECTID\</p\>\<br\> \<p\>  Additional details for this session are available  \<a href=\"SESSIONURI"\>here.\</a\> \</p\>\<br\>NCANDA Team. -host localhost.localdomain -notifyAdmin \^/Pipeline/parameters/parameter\[name=\'notifyAdmin\'\]/values/unique/text\(\)\^ at Step[id= 7:] was unsuccesfull Personnel notification email could not be sent class java.lang.ArrayStoreExceptionnull null
        at org.nrg.pipeline.manager.ExecutionManager.execute(ExecutionManager.java:121)

        at org.nrg.pipeline.task.StepManager.execute(StepManager.java:166)
        at org.nrg.pipeline.manager.PipelineManager.launchPipeline(PipelineManager.java:213)
        at org.nrg.pipeline.manager.PipelineManager.launchPipeline(PipelineManager.java:193)
        at org.nrg.pipeline.client.XNATPipelineLauncher.launch(XNATPipelineLauncher.java:72)
        at org.nrg.pipeline.client.XNATPipelineLauncher.run(XNATPipelineLauncher.java:282)
        at org.nrg.pipeline.client.XNATPipelineLauncher.main(XNATPipelineLauncher.java:247)

Any ideas?

Thanks!
  Torsten

Haas, Evan

unread,
Mar 8, 2013, 1:26:22 PM3/8/13
to xnat_di...@googlegroups.com

Hi Torsten,

 

I encountered this problem the other day.  For me, the culprit was the value of PIPELINE_REST_MAIL_SVC in PIPELINE_HOME/pipeline.config (specifically, the URL was malformed by a double slash).

 

I’ve pushed a change to the pipeline setup script that fixes this problem.

 

Evan

--

You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To post to this group, send email to xnat_di...@googlegroups.com.
Visit this group at http://groups.google.com/group/xnat_discussion?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 




The material in this message is private and may contain Protected Healthcare Information (PHI). If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail.

Torsten Rohlfing

unread,
Mar 8, 2013, 6:31:39 PM3/8/13
to xnat_di...@googlegroups.com
Hmm.

My entry in that file is

PIPELINE_REST_MAIL_SVC=https://SERVERNAME/xnat/data/services/mail/send

(with our server name cleverly replaced)

That doesn't look unreasonable, does it?

Thanks Evan!
  Torsten

Herrick, Rick

unread,
Mar 10, 2013, 4:22:32 PM3/10/13
to xnat_di...@googlegroups.com
Assuming that your server is indeed https and that XNAT is hosted at /xnat instead of as the root application, then that looks imminently reasonable. It certainly SEEMS as if you're not getting any email addresses added to the email (thus the null array store exception. Can you try copying that command from the log file and just running it directly from the command line? Sometimes this yields extra error information that may show a bit better what's going wrong in there.

Rick Herrick

Sr. Programmer/Analyst

Neuroinformatics Research Group

Washington University School of Medicine

(314) 827-4250


From: xnat_di...@googlegroups.com [xnat_di...@googlegroups.com] on behalf of Torsten Rohlfing [torsten...@gmail.com]
Sent: Friday, March 08, 2013 5:31 PM

To: xnat_di...@googlegroups.com
Subject: Re: [XNAT Discussion] Re: Pipeline 1.6 Notifier
--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To post to this group, send email to xnat_di...@googlegroups.com.
Visit this group at http://groups.google.com/group/xnat_discussion?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Torsten Rohlfing

unread,
Mar 11, 2013, 2:20:36 PM3/11/13
to xnat_di...@googlegroups.com
 Rick:

I got it. This was, once again, due to our SSL certificate coming from a not-so-universally-accepted CA.

When I replace the server name with our usual "aliasHost", then everything works.

Hooray!

(And many thanks!)

Torsten

Herrick, Rick

unread,
Mar 11, 2013, 2:37:12 PM3/11/13
to xnat_di...@googlegroups.com
To paraphrase Churchill, it has been said that SSL is the worst form of transactional security except all the others that have been tried.


Rick Herrick

Sr. Programmer/Analyst

Neuroinformatics Research Group

Washington University School of Medicine

(314) 827-4250

Sent: Monday, March 11, 2013 1:20 PM

To: xnat_di...@googlegroups.com
Subject: Re: [XNAT Discussion] Re: Pipeline 1.6 Notifier
--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To post to this group, send email to xnat_di...@googlegroups.com.
Visit this group at http://groups.google.com/group/xnat_discussion?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Tom Gee

unread,
Aug 30, 2013, 5:47:09 PM8/30/13
to xnat_di...@googlegroups.com
Yes, that worked for me as well.  Is there a field equivalent in "build.properties" that allows the specification of an "aliasHost" equivalent, to set the value for aliasHost and the pipeline email svc (and any other service which accesses a different XNAT url than that announced to the user)?

Tom
---
Reply all
Reply to author
Forward
0 new messages