Project: javamail
Repository: mercurial
Revision: 322
Author: shannon
Date: 2010-11-20 06:07:10 UTC
Link:
Log Message:
------------
Disambiguate Part to allow compiling with Java EE 6 / Servlet 3.0.
Fix javadoc error.
It's not "Java 2" anymore...
Make ant build work again. Kenai issue #3444.
Be sure to close SharedInputStream when done with it. Kenai issue #3566.
Revisions:
----------
318
319
320
321
322
Modified Paths:
---------------
servlet/src/main/java/JavaMailServlet.java
mail/src/main/java/com/sun/mail/util/TraceInputStream.java
mail/src/main/java/com/sun/mail/util/logging/package.html
build.properties
build.xml
doc/release/CHANGES.txt
mail/src/main/java/javax/mail/internet/MimeMultipart.java
Diffs:
------
diff -r bde75bc9eedb -r 1638b477bf2c servlet/src/main/java/JavaMailServlet.java
--- a/servlet/src/main/java/JavaMailServlet.java Sun Nov 14 22:36:36 2010 -0800
+++ b/servlet/src/main/java/JavaMailServlet.java Fri Nov 19 20:32:49 2010 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 1999-2010 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998-2010 Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -36,6 +36,7 @@
import javax.servlet.*;
import javax.servlet.http.*;
import javax.mail.*;
+import javax.mail.Part;
import javax.mail.internet.*;
import javax.activation.*;
diff -r 1638b477bf2c -r 942b5122dccd mail/src/main/java/com/sun/mail/util/TraceInputStream.java
--- a/mail/src/main/java/com/sun/mail/util/TraceInputStream.java Fri Nov 19 20:32:49 2010 -0800
+++ b/mail/src/main/java/com/sun/mail/util/TraceInputStream.java Fri Nov 19 21:03:20 2010 -0800
@@ -61,7 +61,7 @@
* input stream.
*
* @param in the underlying input stream.
- * @param out the trace stream
+ * @param traceOut the trace stream
*/
public TraceInputStream(InputStream in, OutputStream traceOut) {
super(in);
diff -r 942b5122dccd -r 17ce245a3854 mail/src/main/java/com/sun/mail/util/logging/package.html
--- a/mail/src/main/java/com/sun/mail/util/logging/package.html Fri Nov 19 21:03:20 2010 -0800
+++ b/mail/src/main/java/com/sun/mail/util/logging/package.html Fri Nov 19 21:38:21 2010 -0800
@@ -49,7 +49,7 @@
</head>
<body>
Contains JavaMail<sup><font size="-2">TM</font></sup> extensions for
- Java<SUP><FONT SIZE="-2">TM</FONT></SUP> 2 platform's core logging
+ the Java<SUP><FONT SIZE="-2">TM</FONT></SUP> platform's core logging
facilities. This package contains classes used to export log messages
as a formatted email message. Classes in this package typically use
LogManager properties to set default values; see the specific
diff -r 17ce245a3854 -r 8c3ce0c9bcd0 build.properties
--- a/build.properties Fri Nov 19 21:38:21 2010 -0800
+++ b/build.properties Fri Nov 19 22:03:50 2010 -0800
@@ -79,21 +79,24 @@
src.logging.dir=logging/src/main/java
component.classes.logging.dir=logging/target/classes
# legal
-resources.legal.dir=legal/src/main/resources
+resources.legal.dir=mail/src/main/resources
#
maven.netbeans.exec.build=target/classes
-# XXX - following only works within Sun
+# XXX - following only works within Oracle
spec.dir=/net/anybodys.sfbay/export6/javamail/spec
# needed to build everything on JDK 1.5
activation.jar=activation.jar
# needed to build servlet and webapp demo programs
javaee.jar=javaee.jar
+# external URL references for javadocs
+javase.url=
http://java.sun.com/j2se/1.4.2/docs/api/
+jaf.url=
http://java.sun.com/javase/technologies/desktop/javabeans/glasgow/javadocs/
### Additonal Component Properties for standalone release ###
release.dir=target/release
release.specversion=1.4
-release.version=1.4.2ea
+release.version=1.4.4ea
release.mail.jar=${release.dir}/mail.jar
release.mailapi.jar=${release.dir}/lib/mailapi.jar
release.imap.jar=${release.dir}/lib/imap.jar
diff -r 17ce245a3854 -r 8c3ce0c9bcd0 build.xml
--- a/build.xml Fri Nov 19 21:38:21 2010 -0800
+++ b/build.xml Fri Nov 19 22:03:50 2010 -0800
@@ -82,11 +82,10 @@
<target name="compile" depends="init"
description="Compile JavaMail sources">
- <!-- XXX - following filtering doesn't currently work -->
<copy file="${resources.dir}/javax/mail/Version.java"
toFile="${src.dir}/javax/mail/Version.java">
- <filterset>
- <filter token="VERSION" value="${release.version}"/>
+ <filterset begintoken="$${" endtoken="}">
+ <filter token="mail.version" value="${release.version}"/>
</filterset>
</copy>
<javac srcdir="${src.dir}"
@@ -429,7 +428,6 @@
</jar>
</target>
-
<!-- javadocs -->
<target name="docs" depends="init, jar, jar">
<copy todir="${release.dir}">
@@ -441,47 +439,75 @@
<fileset dir="${spec.dir}"
includes="JavaMail-1.4.pdf,Providers.pdf" />
</copy>
+ <!--
+ To allow us to generate javadocs that only include some
+ classes in certain packages, we need to copy the sources
+ to another location and run javadoc against that subset
+ of the sources.
+ -->
+ <copy todir="${release.dir}/javadoc">
+ <fileset dir="${src.dir}">
+ <include name="**/*.html"/>
+ <include name="javax/mail/**"/>
+ </fileset>
+ <fileset dir="${src.dir}"
+ includes="
+ com/sun/mail/imap/IMAPFolder.java,
+ com/sun/mail/imap/IMAPMessage.java,
+ com/sun/mail/imap/IMAPStore.java,
+ com/sun/mail/imap/IMAPSSLStore.java
+ com/sun/mail/imap/ACL.java,
+ com/sun/mail/imap/Rights.java,
+ com/sun/mail/imap/Quota.java,
+ com/sun/mail/imap/SortTerm.java,
+ com/sun/mail/pop3/POP3Store.java,
+ com/sun/mail/pop3/POP3SSLStore.java,
+ com/sun/mail/pop3/POP3Folder.java,
+ com/sun/mail/pop3/POP3Message.java,
+ com/sun/mail/smtp/SMTPMessage.java,
+ com/sun/mail/smtp/SMTPAddressFailedException.java,
+ com/sun/mail/smtp/SMTPAddressSucceededException.java,
+ com/sun/mail/smtp/SMTPSendFailedException.java,
+ com/sun/mail/smtp/SMTPSenderFailedException.java,
+ com/sun/mail/smtp/SMTPTransport.java,
+ com/sun/mail/smtp/SMTPSSLTransport.java,
+ com/sun/mail/util/MailSSLSocketFactory.java,
+ com/sun/mail/util/logging/MailHandler.java
+ "/>
+ <fileset dir="${src.dsn.dir}"
+ includes="
+ com/sun/mail/dsn/package.html,
+ com/sun/mail/dsn/DeliveryStatus.java,
+ com/sun/mail/dsn/DispositionNotification.java,
+ com/sun/mail/dsn/MessageHeaders.java,
+ com/sun/mail/dsn/MultipartReport.java,
+ com/sun/mail/dsn/Report.java
+ "/>
+ </copy>
<mkdir dir="${release.javadocs.dir}"/>
- <javadoc packagenames="javax.mail, javax.mail, javax.mail.internet,
+ <javadoc packagenames="javax.mail, javax.mail.internet,
javax.mail.search, javax.mail.event,
javax.mail.util,
com.sun.mail.imap,
com.sun.mail.pop3,
com.sun.mail.smtp,
+ com.sun.mail.util, com.sun.mail.util.logging,
com.sun.mail.dsn"
destdir="${release.javadocs.dir}"
+ sourcepath="${release.dir}/javadoc"
classpath="${activation.jar}:${release.mail.jar}:${release.dsn.jar}"
author="false"
version="false"
use="true"
- overview="${src.dir}/overview.html"
+ overview="${release.dir}/javadoc/overview.html"
windowtitle="JavaMail API documentation"
doctitle="JavaMail API documentation">
<group title="JavaMail API Packages" packages="javax.*"/>
<group title="Sun-specific Packages" packages="com.sun.*"/>
- <fileset dir="${src.dir}">
- <include name="javax/mail/**/*.java"/>
- <include name="com/sun/mail/imap/IMAPMessage.java" />
- <include name="com/sun/mail/imap/IMAPFolder.java" />
- <include name="com/sun/mail/imap/IMAPStore.java" />
- <include name="com/sun/mail/imap/IMAPSSLStore.java" />
- <include name="com/sun/mail/imap/ACL.java" />
- <include name="com/sun/mail/imap/Rights.java" />
- <include name="com/sun/mail/imap/Quota.java" />
- <include name="com/sun/mail/pop3/POP3Store.java" />
- <include name="com/sun/mail/pop3/POP3SSLStore.java" />
- <include name="com/sun/mail/pop3/POP3Folder.java" />
- <include name="com/sun/mail/pop3/POP3Message.java" />
- <include name="com/sun/mail/smtp/SMTPMessage.java" />
- <include name="com/sun/mail/smtp/SMTPAddressFailedException.java" />
- <include name="com/sun/mail/smtp/SMTPAddressSucceededException.java" />
- <include name="com/sun/mail/smtp/SMTPSendFailedException.java" />
- <include name="com/sun/mail/smtp/SMTPTransport.java" />
- <include name="com/sun/mail/smtp/SMTPSSLTransport.java" />
- <include name="com/sun/mail/dsn/DeliveryStatus.java" />
- <include name="com/sun/mail/dsn/MessageHeaders.java" />
- <include name="com/sun/mail/dsn/MultipartReport.java" />
- </fileset>
+ <!-- following can really slow down javadoc generation
+ <link href="${javase.url}"/>
+ <link href="${jaf.url}"/>
+ -->
</javadoc>
</target>
diff -r 8c3ce0c9bcd0 -r 75aae993e34c doc/release/CHANGES.txt
--- a/doc/release/CHANGES.txt Fri Nov 19 22:03:50 2010 -0800
+++ b/doc/release/CHANGES.txt Fri Nov 19 22:07:10 2010 -0800
@@ -27,6 +27,7 @@
G 11069 update the mail.jar manifest to include DynamicImport-Package
K 3442 make sure socket is closed if SMTP connect fails
K 3539 Multiparts do not parse correctly in presence of legacy Mac line endings
+K 3566 InputStreams are not closed in MimeMultipart
<no id> add mail.mime.windowsfilenames System property to handle IE6 breakage
<no id> properly disable TOP if POP3 CAPA response doesn't include it
<no id> add mail.pop3.disablecapa property to disable use of the CAPA command
diff -r 8c3ce0c9bcd0 -r 75aae993e34c mail/src/main/java/javax/mail/internet/MimeMultipart.java
--- a/mail/src/main/java/javax/mail/internet/MimeMultipart.java Fri Nov 19 22:03:50 2010 -0800
+++ b/mail/src/main/java/javax/mail/internet/MimeMultipart.java Fri Nov 19 22:07:10 2010 -0800
@@ -742,7 +742,7 @@
*/
MimeBodyPart part;
if (sin != null)
- part = createMimeBodyPart(sin.newStream(start, end));
+ part = createMimeBodyPartIs(sin.newStream(start, end));
else
part = createMimeBodyPart(headers, buf.toByteArray());
super.addBodyPart(part);
@@ -1088,7 +1088,7 @@
*/
MimeBodyPart part;
if (sin != null) {
- part = createMimeBodyPart(sin.newStream(start, end));
+ part = createMimeBodyPartIs(sin.newStream(start, end));
} else {
// write out data from previous buffer, not including EOL
if (prevSize - eolLen > 0)
@@ -1205,4 +1205,17 @@
throws MessagingException {
return new MimeBodyPart(is);
}
+
+ private MimeBodyPart createMimeBodyPartIs(InputStream is)
+ throws MessagingException {
+ try {
+ return createMimeBodyPart(is);
+ } finally {
+ try {
+ is.close();
+ } catch (IOException ex) {
+ // ignore it
+ }
+ }
+ }
}