i'm unhappy about the impact of this resolution for direct users of this method
- robert On Sun, Dec 7, 2008 at 3:26 PM, <[EMAIL PROTECTED]> wrote: > Author: olegk > Date: Sun Dec 7 07:26:00 2008 > New Revision: 724142 > > URL: http://svn.apache.org/viewvc?rev=724142&view=rev > Log: > MIME4J-90: Consistent parsing of header field names > Contributed by Markus Wiederkehr <markus.wiederkehr at gmail.com> > > Modified: > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/field/Field.java > > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Header.java > > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/SimpleContentHandler.java > > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/parser/AbstractEntity.java > > james/mime4j/trunk/src/test/java/org/apache/james/mime4j/field/FieldTest.java > > Modified: > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/field/Field.java > URL: > http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/field/Field.java?rev=724142&r1=724141&r2=724142&view=diff > ============================================================================== > --- james/mime4j/trunk/src/main/java/org/apache/james/mime4j/field/Field.java > (original) > +++ james/mime4j/trunk/src/main/java/org/apache/james/mime4j/field/Field.java > Sun Dec 7 07:26:00 2008 > @@ -22,8 +22,6 @@ > import java.util.regex.Matcher; > import java.util.regex.Pattern; > > -import org.apache.james.mime4j.MimeException; > - > /** > * The base class of all field classes. > * > @@ -52,7 +50,7 @@ > "Content-Transfer-Encoding"; > > private static final String FIELD_NAME_PATTERN = > - "^([\\x21-\\x39\\x3b-\\x7e]+)[ \t]*:"; > + "^([\\x21-\\x39\\x3b-\\x7e]+):"; > private static final Pattern fieldNamePattern = > Pattern.compile(FIELD_NAME_PATTERN); > > @@ -82,9 +80,9 @@ > * > * @param raw the string to parse. > * @return a <code>Field</code> instance. > - * @throws MimeException on parse errors. > + * @throws IllegalArgumentException on parse errors. > */ > - public static Field parse(final String raw) throws MimeException { > + public static Field parse(final String raw) { > > /* > * Unfold the field. > @@ -96,7 +94,11 @@ > */ > final Matcher fieldMatcher = fieldNamePattern.matcher(unfolded); > if (!fieldMatcher.find()) { > - throw new MimeException("Invalid field in string"); > + // We don't have to throw a MimeException because this error can > + // never happen when Field.parse() is called by a ContentHandler. > + // org.apache.james.mime4j.parser.AbstractEntity drops header > + // lines that do not start with a valid field name. > + throw new IllegalArgumentException("Invalid field in string"); > } > final String name = fieldMatcher.group(1); > > > Modified: > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Header.java > URL: > http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Header.java?rev=724142&r1=724141&r2=724142&view=diff > ============================================================================== > --- > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Header.java > (original) > +++ > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Header.java > Sun Dec 7 07:26:00 2008 > @@ -76,7 +76,7 @@ > parser.stop(); > } > @Override > - public void field(String fieldData) throws MimeException { > + public void field(String fieldData) { > addField(Field.parse(fieldData)); > } > }); > > Modified: > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/SimpleContentHandler.java > URL: > http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/SimpleContentHandler.java?rev=724142&r1=724141&r2=724142&view=diff > ============================================================================== > --- > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/SimpleContentHandler.java > (original) > +++ > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/SimpleContentHandler.java > Sun Dec 7 07:26:00 2008 > @@ -19,7 +19,6 @@ > > package org.apache.james.mime4j.message; > > -import org.apache.james.mime4j.MimeException; > import org.apache.james.mime4j.decoder.Base64InputStream; > import org.apache.james.mime4j.decoder.QuotedPrintableInputStream; > import org.apache.james.mime4j.descriptor.BodyDescriptor; > @@ -75,7 +74,7 @@ > * @see > org.apache.james.mime4j.parser.AbstractContentHandler#field(java.lang.String) > */ > @Override > - public final void field(String fieldData) throws MimeException { > + public final void field(String fieldData) { > currHeader.addField(Field.parse(fieldData)); > } > > > Modified: > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/parser/AbstractEntity.java > URL: > http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/parser/AbstractEntity.java?rev=724142&r1=724141&r2=724142&view=diff > ============================================================================== > --- > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/parser/AbstractEntity.java > (original) > +++ > james/mime4j/trunk/src/main/java/org/apache/james/mime4j/parser/AbstractEntity.java > Sun Dec 7 07:26:00 2008 > @@ -193,7 +193,7 @@ > boolean valid = true; > field = fieldbuf.toString(); > int pos = fieldbuf.indexOf(':'); > - if (pos == -1) { > + if (pos <= 0) { > monitor(Event.INALID_HEADER); > valid = false; > } else { > > Modified: > james/mime4j/trunk/src/test/java/org/apache/james/mime4j/field/FieldTest.java > URL: > http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/java/org/apache/james/mime4j/field/FieldTest.java?rev=724142&r1=724141&r2=724142&view=diff > ============================================================================== > --- > james/mime4j/trunk/src/test/java/org/apache/james/mime4j/field/FieldTest.java > (original) > +++ > james/mime4j/trunk/src/test/java/org/apache/james/mime4j/field/FieldTest.java > Sun Dec 7 07:26:00 2008 > @@ -19,7 +19,6 @@ > > package org.apache.james.mime4j.field; > > -import org.apache.james.mime4j.MimeException; > import org.apache.james.mime4j.field.ContentTransferEncodingField; > import org.apache.james.mime4j.field.ContentTypeField; > import org.apache.james.mime4j.field.Field; > @@ -46,9 +45,9 @@ > > try { > f = Field.parse("Yada yada yada"); > - fail("MimeException not thrown when using an invalid " > + fail("IllegalArgumentException not thrown when using an invalid " > + "field"); > - } catch (MimeException e) { > + } catch (IllegalArgumentException e) { > } > } > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
