ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eddie Bernard <ebern...@digitalthink.com>
Subject RE: Setting up the BuildMonitor listener
Date Fri, 27 Apr 2001 07:31:20 GMT
Thanks!!!  I can finally sleep better tonight!!
 
However, now I'm having another problem.....
 
I'm getting another exception thrown which I've narrowed down to the
buildFinished method.  I've added some very crude trace statement and it
appears that it's barfing on instantiating the 'message' object.  Here's the
code snipet (including my trace statements):
 
    public void buildFinished(BuildEvent e) {
        Throwable th = e.getException();
        String status = (th != null) ? "failed" : "succeeded";
 
        try {
            if (props.getProperty("build." + status +
".notify").equalsIgnoreCase("false")) {
                    return;
            }
            System.out.println(props);

            Session session = Session.getDefaultInstance(props, null);
            System.out.println(session);
 
            System.out.println("Before creating message object");
            MimeMessage message = new MimeMessage(session);
            System.out.println("Created the message object");
            System.out.println(message);
            message.addRecipients(Message.RecipientType.TO, parseAddresses(
                props.getProperty("build." + status + ".email.to")));
            message.setSubject(props.getProperty("build." + status +
".email.subject"));
            System.out.println("Trying to print message object");
            System.out.println(message);
 
            BufferedReader br = new BufferedReader(new FileReader(
                props.getProperty("build.log")));
            System.out.println(br);
 
            StringWriter sw = new StringWriter();
 
            String line = br.readLine();
            while (line != null) {
                sw.write(line);
                sw.write("\n");
                line = br.readLine();
            }
            br.close();
 
            message.setText(sw.toString(), "UTF-8");
            sw.close();
 
            Transport transport = session.getTransport();
            transport.connect();
            transport.send(message);
            transport.close();
        } catch (Exception ex) {
            System.out.println("BuildMonitor failed to send email!");
            ex.printStackTrace();
        }
    }

Here's the snipet including the stack trace from the logged output when I
invoke Ant:
 
Total time: 6 seconds
{build.failed.email.to=***@***.com
<mailto:{build.failed.email.to=***@***.com> ,
build.failed.email.subject=Nightly build failed!, mail.from=***@***.com
<mailto:mail.from=***@***.com> , build.succeeded.email.subject=Nightly build
succeeded!, mail.smtp.host=***.***.com, mail.transport.protocol=smtp,
build.log=build.log, build.succeeded.notify=true,
build.succeeded.email.to=***@***.com,build.failed.notify=true
<mailto:build.succeeded.email.to=***@***.com,build.failed.notify=true> }
javax.mail.Session@621187b0 <mailto:javax.mail.Session@621187b0> 
Before creating message object
BuildMonitor failed to send email!
java.lang.NullPointerException
        at BuildMonitor.buildFinished(BuildMonitor.java, Compiled Code)
        at org.apache.tools.ant.Project.fireBuildFinished(Project.java,
Compiled
 Code)
        at org.apache.tools.ant.Main.runBuild(Main.java, Compiled Code)
        at org.apache.tools.ant.Main.main(Main.java:149)
 
Again, my trace after the Message message = ... statement does not output,
so I'm assuming that the constructor invocation is thowing an exception.
 
BTW- I'm using Sun JavaMail 1.2.
 
 
 
-----Original Message-----
From: Aarti Chandnani [mailto:Aarti.Chandnani@XUMA.com]
Sent: Thursday, April 26, 2001 1:28 PM
To: 'ant-user@jakarta.apache.org'
Subject: RE: Setting up the BuildMonitor listener



Place the monitor.properties in the build dir? 
Im not sure of that. actually i thought the class looks fr the
monitor.properties file in the same dir as the class is. Try putting the
file in the same place as your jar file.

Actually when i had tried this, I had put the class in the same dir as my
build file (alongwith the properties file) and set the classpath to include
the build dir.

Maybe this should help. 


-----Original Message----- 
From: Eddie Bernard [ mailto:ebernard@digitalthink.com
<mailto:ebernard@digitalthink.com> ] 
Sent: Thursday, April 26, 2001 12:52 PM 
To: ant-user@jakarta.apache.org 
Subject: Setting up the BuildMonitor listener 


Please excuse the newbie question, but this has been driving me bonkers for 
the last couple of days.... 

I'm attempting to configure the BuildMonitor listener provided by Will 
Glozer.  Here are the steps I performed: 

1.  Compile the BuildMonitor.java code 

2.  Create a jar with the BuildMonitor.class and place it in my Ant lib 
directory.  Here are the contents 
          0 Thu Apr 19 13:36:16 PDT 2001 META-INF/ 
    71 Thu Apr 19 13:36:16 PDT 2001 META-INF/MANIFEST.MF 
   3515 Wed Apr 25 17:53:40 PDT 2001 ./BuildMonitor.class 

3.  Create the monitor.properties file in the same directory as my build 
file 

Now, when I execute the following command: 

ant -logfile build.log -listener BuildMonitor 

I get the following error in the log file: 
Buildfile: build.xml 

BUILD FAILED 

Unable to instantiate listener BuildMonitor 
--- Nested Exception --- 
java.lang.NullPointerException 
        at java.io.Reader.<init>(Reader.java:66) 
        at java.io.InputStreamReader.<init>(InputStreamReader.java:85) 
        at java.io.InputStreamReader.<init>(InputStreamReader.java:74) 
        at java.util.Properties.load(Properties.java:176) 
        at BuildMonitor.<init>(BuildMonitor.java:27) 
        at java.lang.Class.newInstance0(Native Method) 
        at java.lang.Class.newInstance(Class.java:241) 
        at org.apache.tools.ant.Main.addBuildListeners(Main.java, Compiled 
Code) 

        at org.apache.tools.ant.Main.runBuild(Main.java, Compiled Code) 
        at org.apache.tools.ant.Main.main(Main.java:149) 

Total time: 0 seconds 

To me, it appears that it's not finding the monitor.properties.  If so, then

my question is where should this property file be located w.r.t to the 
invocation of Ant? 

Any ideas? 


Mime
View raw message