You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by GX GLIX <ma...@hotmail.com> on 2007/05/04 09:41:08 UTC
RE: [mime4j] null charset error
Hi allI sincerely apologise for the delay, I have had other priorities and had to put this aside till now, after futher debugging I have come across the cause of the java.io.IOException: Bad file descriptor error.In the file /org/mime4j/message/Header.java the following code is foundpublic void writeTo(OutputStream out) throws IOException { String charString = ((ContentTypeField) getField(Field.CONTENT_TYPE)).getCharset(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, CharsetUtil.getCharset(charString)),8192); writer.write(toString()+ "\r\n"); writer.flush(); writer.close(); }as you can see the output stream is closed here. This is cause of the IOException as the stream is used later again for writing.I tried commenting the writer.close(); call and it worked fine, however I dont know what the implications of this may be.The case I am facing is a multipart message which calls the writeTo method below public void writeTo(OutputStream out) throws IOException { getHeader().writeTo(out); Body body = getBody(); if (body instanceof Multipart) { Multipart mp = (Multipart) body; mp.writeTo(out); } else { body.writeTo(out); } }when getHeader().writeTo(out); is called the stream is closed and when mp.writeTo(out); is called the exception is throw as the stream is closed.Regards GX> From: mailme_gx@hotmail.com> To: server-dev@james.apache.org> Subject: Re: [mime4j] null charset error> Date: Thu, 26 Apr 2007 18:07:11 +0300> > Hi Norman Maurer> > Thanks again your your time and suggestions,> > Although we are using windows 2003 server the JDK is 1.4, and the submitted > bug is for jdk 1.6> As am busy with other things for the moment I only be able to look into this > after the next few days, If I do manage to find anything I will keep you > posted.> > GX> > >From: Norman Maurer <no...@apache.org>> >Reply-To: "James Developers List" <se...@james.apache.org>> >To: James Developers List <se...@james.apache.org>> >Subject: Re: [mime4j] null charset error> >Date: Tue, 24 Apr 2007 15:36:34 +0200> >> >Hi GX,> >> >what JDK and OS you using? I found some intressting stuff:> >> >http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6322678> >http://256.com/gray/docs/misc/java_bad_file_descriptor_close_bug.shtml> >> >bye> >Norman> >> >> >GX GLIX schrieb:> > > Hi All> > >> > > I am getting a "Null charset name" error during parsing, it seems that> > > getCharset(String charsetName) is passed an empty string... I tried> > > the following hack to fix it:> > >> > > ..........> > > public static java.nio.charset.Charset getCharset(String> > > charsetName) {> > > if(charsetName == null)> > > charsetName = "ISO8859-1";> > > java.nio.charset.Charset c => > > java.nio.charset.Charset.forName(charsetName);> > > ............> > >> > > now the result is :> > >> > > java.io.IOException: Bad file descriptor> > > at java.io.FileOutputStream.writeBytes(Native Method)> > > at java.io.FileOutputStream.write(FileOutputStream.java:260)> > > at> > > sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336)> > > at> > > > >sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404)> > >> > > at> > > sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408)> > > at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152)> > > at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)> > > at java.io.BufferedWriter.flush(BufferedWriter.java:230)> > > at org.mime4j.message.Header.writeTo(Header.java:152)> > > at org.mime4j.message.BodyPart.writeTo(BodyPart.java:39)> > > at org.mime4j.message.Multipart.writeTo(Multipart.java:178)> > > at org.mime4j.message.Message.writeTo(Message.java:91)> > > any ideas anyone?> > >> > > _________________________________________________________________> > > FREE pop-up blocking with the new MSN Toolbar - get it now!> > > http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/> > >> > >> > > ---------------------------------------------------------------------> > > To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org> > > For additional commands, e-mail: server-dev-help@james.apache.org> > >> > >> > > !DSPAM:1,462c94fb324321289648189!> > >> > >> >> >> >---------------------------------------------------------------------> >To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org> >For additional commands, e-mail: server-dev-help@james.apache.org> >> > _________________________________________________________________> Express yourself instantly with MSN Messenger! Download today it's FREE! > http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/> > > ---------------------------------------------------------------------> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org> For additional commands, e-mail: server-dev-help@james.apache.org>
_________________________________________________________________
Connect to the next generation of MSN Messenger
http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline
Re: [mime4j] null charset error
Posted by Norman Maurer <no...@apache.org>.
Hi,
thx for looking deeper at it. I will commit the fix soon :-)
bye
Norman
GX GLIX schrieb:
> Hi Stefano
>
> Sorry about that.. I made the mistake of switching to windows live
> (beta) and it screwed thing up..
> hope this is clearer
>
> GX
>
>> From: Stefano Bagnara <ap...@bago.org>
>> Reply-To: "James Developers List" <se...@james.apache.org>
>> To: James Developers List <se...@james.apache.org>
>> Subject: Re: [mime4j] null charset error
>> Date: Fri, 04 May 2007 11:19:36 +0200
>>
>> This message come through totally unformatted.
>> I formatted it and opened a JIRA issue [1] so we can track it.
>>
>> Thank you,
>> Stefano
>>
>> [1] http://issues.apache.org/jira/browse/MIME4J-12
>>
>> GX GLIX ha scritto:
>> >
> Hi all
>
> I sincerely apologise for the delay, I have had other priorities and
> had to put this aside till now, after futher debugging I have come
> across the cause of the java.io.IOException: Bad file descriptor error.
>
> In the file /org/mime4j/message/Header.java the following code is found
>
> public void writeTo(OutputStream out) throws IOException {
> String charString = ((ContentTypeField)
> getField(Field.CONTENT_TYPE)).getCharset();
>
> BufferedWriter writer = new BufferedWriter(new
> OutputStreamWriter(out, CharsetUtil.getCharset(charString)),8192);
> writer.write(toString()+ "\r\n");
> writer.flush();
> writer.close();
> }
>
> as you can see the output stream is closed here. This is cause of the
> IOException as the stream is used later again for writing.
> I tried commenting the writer.close(); call and it worked fine,
> however I dont know what the implications of this may be.
>
> The case I am facing is a multipart message which calls the writeTo
> method below
>
> public void writeTo(OutputStream out) throws IOException {
> getHeader().writeTo(out);
>
> Body body = getBody();
> if (body instanceof Multipart) {
> Multipart mp = (Multipart) body;
> mp.writeTo(out);
> } else {
> body.writeTo(out);
> }
> }
>
> when getHeader().writeTo(out); is called the stream is closed and when
> mp.writeTo(out); is called the exception is throw as the stream is
> closed.
>
> Regards
> GX
>
>
>> >From: Norman Maurer <no...@apache.org>> >Reply-To: "Jam
>> es Developers List" <se...@james.apache.org>> >To: James
>> Developers List <se...@james.apache.org>> >Subject: Re: [mime4j]
>> null charset error> >Date: Tue, 24 Apr 2007 15:36:34 +0200> >> >Hi
>> GX,> >> >what JDK and OS you using? I found some intressting stuff:>
>> >> >http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6322678>
>> >http://256.com/gray/docs/misc/java_bad_file_descriptor_close_bug.shtml>
>> >> >bye> >Norman> >> >> >GX GLIX schrieb:> > > Hi All> > >> > > I am
>> getting a "Null charset name" error during parsing, it seems that> >
>> > getCharset(String charsetName) is passed an empty string... I
>> tried> > > the following hack to fix it:> > >> > > ..........> > >
>> public static java.nio.charset.Charset getCharset(String> > >
>> charsetName) {> > > if(charsetName == null)> > >
>> charsetName = "ISO8859-1";> > > java.nio.charset.Charset c =>
>> > > java.nio.charset.Charset.forName(charsetName);> > > ............>
>> > >> > > now the result is :> > >> > > java.i
>> o.IOException: Bad file descriptor> > > at
>> java.io.FileOutputStream.writeBytes(Native Method)> > > at
>> java.io.FileOutputStream.write(FileOutputStream.java:260)> > >
>> at> > >
>> sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336)>
>> > > at> > > >
>> >sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404)>
>> > >> > > at> > >
>> sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408)>
>> > > at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152)> >
>> > at
>> java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)> >
>> > at java.io.BufferedWriter.flush(BufferedWriter.java:230)> >
>> > at org.mime4j.message.Header.writeTo(Header.java:152)> > >
>> at org.mime4j.message.BodyPart.writeTo(BodyPart.java:39)> > > at
>> org.mime4j.message.Multipart.writeTo(Multipart.java:178)> > > at
>> org.mime4j.message.Message.writeTo(Message.java:91)> > > any ideas
>> anyone?> > >> > > _______________________________________________
>> __________________> > > FREE pop-up blocking with the new MSN Toolbar
>> - get it now!> > >
>> http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/> > >> >
>> >> > >
>> --------------------------------------------------------------------->
>> > > To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org>
>> > > For additional commands, e-mail:
>> server-dev-help@james.apache.org> > >> > >> > > > > >> > >> >> >>
>> >--------------------------------------------------------------------->
>> >To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org>
>> >For additional commands, e-mail: server-dev-help@james.apache.org>
>> >> >
>> _________________________________________________________________>
>> Express yourself instantly with MSN Messenger! Download today it's
>> FREE! >
>> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/> > >
>> --------------------------------------------------------------------->
>> To unsubscribe, e-mail: server-dev-unsubscribe@james.ap
>> ache.org> For additional commands, e-mail:
>> server-dev-help@james.apache.org>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
>> For additional commands, e-mail: server-dev-help@james.apache.org
>>
>
> _________________________________________________________________
> Express yourself instantly with MSN Messenger! Download today it's
> FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
>
>
> !DSPAM:1,463b68b279382020420910!
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: [mime4j] null charset error
Posted by GX GLIX <ma...@hotmail.com>.
Hi Stefano
Sorry about that.. I made the mistake of switching to windows live (beta)
and it screwed thing up..
hope this is clearer
GX
>From: Stefano Bagnara <ap...@bago.org>
>Reply-To: "James Developers List" <se...@james.apache.org>
>To: James Developers List <se...@james.apache.org>
>Subject: Re: [mime4j] null charset error
>Date: Fri, 04 May 2007 11:19:36 +0200
>
>This message come through totally unformatted.
>I formatted it and opened a JIRA issue [1] so we can track it.
>
>Thank you,
>Stefano
>
>[1] http://issues.apache.org/jira/browse/MIME4J-12
>
>GX GLIX ha scritto:
> >
Hi all
I sincerely apologise for the delay, I have had other priorities and had to
put this aside till now, after futher debugging I have come across the cause
of the java.io.IOException: Bad file descriptor error.
In the file /org/mime4j/message/Header.java the following code is found
public void writeTo(OutputStream out) throws IOException {
String charString = ((ContentTypeField)
getField(Field.CONTENT_TYPE)).getCharset();
BufferedWriter writer = new BufferedWriter(new
OutputStreamWriter(out, CharsetUtil.getCharset(charString)),8192);
writer.write(toString()+ "\r\n");
writer.flush();
writer.close();
}
as you can see the output stream is closed here. This is cause of the
IOException as the stream is used later again for writing.
I tried commenting the writer.close(); call and it worked fine, however I
dont know what the implications of this may be.
The case I am facing is a multipart message which calls the writeTo method
below
public void writeTo(OutputStream out) throws IOException {
getHeader().writeTo(out);
Body body = getBody();
if (body instanceof Multipart) {
Multipart mp = (Multipart) body;
mp.writeTo(out);
} else {
body.writeTo(out);
}
}
when getHeader().writeTo(out); is called the stream is closed and when
mp.writeTo(out); is called the exception is throw as the stream is closed.
Regards
GX
> >From: Norman Maurer <no...@apache.org>> >Reply-To: "Jam
>es Developers List" <se...@james.apache.org>> >To: James Developers
>List <se...@james.apache.org>> >Subject: Re: [mime4j] null charset
>error> >Date: Tue, 24 Apr 2007 15:36:34 +0200> >> >Hi GX,> >> >what JDK and
>OS you using? I found some intressting stuff:> >>
> >http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6322678>
> >http://256.com/gray/docs/misc/java_bad_file_descriptor_close_bug.shtml>
> >> >bye> >Norman> >> >> >GX GLIX schrieb:> > > Hi All> > >> > > I am
>getting a "Null charset name" error during parsing, it seems that> > >
>getCharset(String charsetName) is passed an empty string... I tried> > >
>the following hack to fix it:> > >> > > ..........> > > public static
>java.nio.charset.Charset getCharset(String> > > charsetName) {> > >
>if(charsetName == null)> > > charsetName = "ISO8859-1";> > >
> java.nio.charset.Charset c => > >
>java.nio.charset.Charset.forName(charsetName);> > > ............> > >> > >
>now the result is :> > >> > > java.i
>o.IOException: Bad file descriptor> > > at
>java.io.FileOutputStream.writeBytes(Native Method)> > > at
>java.io.FileOutputStream.write(FileOutputStream.java:260)> > > at> > >
>sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336)> > >
> at> > > >
> >sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404)>
> > >> > > at> > >
>sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408)> > >
> at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152)> > > at
>java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)> > > at
>java.io.BufferedWriter.flush(BufferedWriter.java:230)> > > at
>org.mime4j.message.Header.writeTo(Header.java:152)> > > at
>org.mime4j.message.BodyPart.writeTo(BodyPart.java:39)> > > at
>org.mime4j.message.Multipart.writeTo(Multipart.java:178)> > > at
>org.mime4j.message.Message.writeTo(Message.java:91)> > > any ideas anyone?>
> > >> > > _______________________________________________
>__________________> > > FREE pop-up blocking with the new MSN Toolbar - get
>it now!> > > http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/>
> > >> > >> > >
>---------------------------------------------------------------------> > >
>To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org> > > For
>additional commands, e-mail: server-dev-help@james.apache.org> > >> > >> >
> > !DSPAM:1,462c94fb324321289648189!> > >> > >> >> >>
> >--------------------------------------------------------------------->
> >To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org> >For
>additional commands, e-mail: server-dev-help@james.apache.org> >> >
>_________________________________________________________________> Express
>yourself instantly with MSN Messenger! Download today it's FREE! >
>http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/> > >
>---------------------------------------------------------------------> To
>unsubscribe, e-mail: server-dev-unsubscribe@james.ap
>ache.org> For additional commands, e-mail:
>server-dev-help@james.apache.org>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
>For additional commands, e-mail: server-dev-help@james.apache.org
>
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: [mime4j] null charset error
Posted by Stefano Bagnara <ap...@bago.org>.
This message come through totally unformatted.
I formatted it and opened a JIRA issue [1] so we can track it.
Thank you,
Stefano
[1] http://issues.apache.org/jira/browse/MIME4J-12
GX GLIX ha scritto:
> Hi allI sincerely apologise for the delay, I have had other priorities and had to put this aside till now, after futher debugging I have come across the cause of the java.io.IOException: Bad file descriptor error.In the file /org/mime4j/message/Header.java the following code is foundpublic void writeTo(OutputStream out) throws IOException { String charString = ((ContentTypeField) getField(Field.CONTENT_TYPE)).getCharset(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, CharsetUtil.getCharset(charString)),8192); writer.write(toString()+ "\r\n"); writer.flush(); writer.close(); }as you can see the output stream is closed here. This is cause of the IOException as the stream is used later again for writing.I tried commenting the writer.close(); call and it worked fine, however I dont know what the implications of this may be.The case I am facing is a multipart message which calls the writeTo method below
public void writeTo(OutputStream out) throws IOException { getHeader().writeTo(out); Body body = getBody(); if (body instanceof Multipart) { Multipart mp = (Multipart) body; mp.writeTo(out); } else { body.writeTo(out); } }when getHeader().writeTo(out); is called the stream is closed and when mp.writeTo(out); is called the exception is throw as the stream is closed.Regards GX> From: mailme_gx@hotmail.com> To: server-dev@james.apache.org> Subject: Re: [mime4j] null charset error> Date: Thu, 26 Apr 2007 18:07:11 +0300> > Hi Norman Maurer> > Thanks again your your time and suggestions,> > Although we are using windows 2003 server the JDK is 1.4, and the submitted > bug is for jdk 1.6> As am busy with other things for the moment I only be able to look into this > after the next few days, If I do manage to find anything I will keep you > posted.> > GX> > >From: Norman Maurer <no...@apache.org>> >Reply-To: "Jam
es Developers List" <se...@james.apache.org>> >To: James Developers List <se...@james.apache.org>> >Subject: Re: [mime4j] null charset error> >Date: Tue, 24 Apr 2007 15:36:34 +0200> >> >Hi GX,> >> >what JDK and OS you using? I found some intressting stuff:> >> >http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6322678> >http://256.com/gray/docs/misc/java_bad_file_descriptor_close_bug.shtml> >> >bye> >Norman> >> >> >GX GLIX schrieb:> > > Hi All> > >> > > I am getting a "Null charset name" error during parsing, it seems that> > > getCharset(String charsetName) is passed an empty string... I tried> > > the following hack to fix it:> > >> > > ..........> > > public static java.nio.charset.Charset getCharset(String> > > charsetName) {> > > if(charsetName == null)> > > charsetName = "ISO8859-1";> > > java.nio.charset.Charset c => > > java.nio.charset.Charset.forName(charsetName);> > > ............> > >> > > now the result is :> > >> > > java.i
o.IOException: Bad file descriptor> > > at java.io.FileOutputStream.writeBytes(Native Method)> > > at java.io.FileOutputStream.write(FileOutputStream.java:260)> > > at> > > sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336)> > > at> > > > >sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404)> > >> > > at> > > sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408)> > > at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152)> > > at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)> > > at java.io.BufferedWriter.flush(BufferedWriter.java:230)> > > at org.mime4j.message.Header.writeTo(Header.java:152)> > > at org.mime4j.message.BodyPart.writeTo(BodyPart.java:39)> > > at org.mime4j.message.Multipart.writeTo(Multipart.java:178)> > > at org.mime4j.message.Message.writeTo(Message.java:91)> > > any ideas anyone?> > >> > > _______________________________________________
__________________> > > FREE pop-up blocking with the new MSN Toolbar - get it now!> > > http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/> > >> > >> > > ---------------------------------------------------------------------> > > To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org> > > For additional commands, e-mail: server-dev-help@james.apache.org> > >> > >> > > !DSPAM:1,462c94fb324321289648189!> > >> > >> >> >> >---------------------------------------------------------------------> >To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org> >For additional commands, e-mail: server-dev-help@james.apache.org> >> > _________________________________________________________________> Express yourself instantly with MSN Messenger! Download today it's FREE! > http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/> > > ---------------------------------------------------------------------> To unsubscribe, e-mail: server-dev-unsubscribe@james.ap
ache.org> For additional commands, e-mail: server-dev-help@james.apache.org>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org