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