HTTP 500 - somente no internet explore

Bom estou com um problema em um aplicação JSP-SERVLET, mas o erro ocorre somente no internet explore, oque me deixa mais desesperado, pois como pode rodar blza no firefox e nada no iE. Tenho uma jsp que submete um Post para um servlet, esse conecta ao banco de dados MySQL e me retorna um grafico, JfreeChart. Contudo no IE quando submeto o Post o servlet retorna o erro Http 500, listado abaixo:

[code]HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.StringIndexOutOfBoundsException: String index out of range: 46
java.lang.String.charAt(String.java:558)
org.jfree.text.TextUtilities.createTextBlock(TextUtilities.java:197)
org.jfree.text.TextUtilities.createTextBlock(TextUtilities.java:155)
org.jfree.chart.title.TextTitle.arrangeRR(TextTitle.java:421)
org.jfree.chart.title.TextTitle.arrange(TextTitle.java:395)
org.jfree.chart.JFreeChart.drawTitle(JFreeChart.java:1143)
org.jfree.chart.JFreeChart.draw(JFreeChart.java:1027)
org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1244)
org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1223)
org.jfree.chart.ChartUtilities.writeChartAsPNG(ChartUtilities.java:173)
org.jfree.chart.ChartUtilities.writeChartAsPNG(ChartUtilities.java:119)
C_DiarioPizza.doPost(C_DiarioPizza.java:60)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.5 logs.


Apache Tomcat/5.5.5[/code]
Pelo erro parece que o problema está ligado ao bufferImage do JfreeChart, alguém saberia a solução para isso?
Maldito Bill Gates…
Obrigado

poderia colcoar o codigo q gera o chart e retorna o seu BufferedImage pra gente dar uma olhada aki.

Abaixo segue o código do servlet:

[code]import javax.servlet.;
import javax.servlet.http.
;
import java.io.;
import java.util.
;
import java.sql.;
import org.jfree.chart.
;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

public class C_DiarioLinha extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html");
            PrintWriter out1 = response.getWriter();
            out1.println("<HTML>");
            out1.println("<HEAD>");
            out1.println("<TITLE>Corrente Diaria</TITLE>");
            out1.println("</HEAD>");
            out1.println("<BODY>");
            out1.println("<CENTER>");
            out1.println("<BR>");
            out1.println("<H2>Corrente Diaria</H2>");
            out1.println("<BR>");
            out1.println("<FORM METHOD=POST>");
            out1.println("<Data : >");
            out1.println("<INPUT TYPE=TEXT NAME=DataInicio>");;
            out1.println("<BR>");
            out1.println("<Carga : >");
            out1.println("<INPUT TYPE=TEXT NAME=Carga>");
            out1.println("<BR>");
            out1.println("<Local : >");
            out1.println("<INPUT TYPE=TEXT NAME=Local>");
            out1.println("<BR>");
            out1.println("<INPUT TYPE=SUBMIT VALUE=Consulta>");
            out1.println("</FORM>");
            out1.println("</CENTER>");
            out1.println("</BODY>");
            out1.println("</HTML>");
}//fim do get
public void doPost(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException {
    OutputStream out = response.getOutputStream();
    //capturando as strings de entrada
    String DataInicio = request.getParameter("DataInicio");
    String Carga = request.getParameter("Carga");
    String Local = request.getParameter("Local");
    HttpSession session = request.getSession(true);
    String nomeGrafico = "C_DiarioLinha";
    session.setAttribute("nomeGrafico1",nomeGrafico);
    session.setAttribute("C_DiarioLinha_DataInicio", DataInicio);
    session.setAttribute("C_DiarioLinha_Carga", Carga);
    //pegando dados
    try {
        //pegando dados
        DefaultCategoryDataset ds = Consulta(DataInicio, Carga, Local);
    String Titulo = "Acumulo de carga em "+DataInicio+" em "+Carga;
    JFreeChart grafico = ChartFactory.createLineChart(Titulo, "Hora", "Corrente(A)", ds, PlotOrientation.VERTICAL, true, false, false);
    response.setContentType("image/png");
            ChartUtilities.writeChartAsPNG(out, grafico, 610, 330);
           
    } catch (ClassNotFoundException ex) {
        ex.printStackTrace();
    }
}//fim do post
private DefaultCategoryDataset Consulta(String DataInicio, String Carga, String Local) throws ClassNotFoundException{
    String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    String DATABASE_URL = "jdbc:mysql://ENDEREÇO_IP/BANCO";
    DefaultCategoryDataset ds = new DefaultCategoryDataset();
    
    
    try
    {
        Class.forName(JDBC_DRIVER);
        Connection conn = DriverManager.getConnection(DATABASE_URL,"USUARIO","SENHA");
        Statement stm = conn.createStatement();
        //prepara a pesquisa

           PreparedStatement consultaDiarioA = conn.prepareStatement("select ("+Local+".valor*calibracao.constante) AS valor, HOUR("+Local+".hora) AS hora FROM "+Local+", carga, calibracao" +
                                                                     " WHERE carga.autocod="+Local+".carga AND calibracao.carga="+Local+".carga AND carga.fase='A' AND "+Local+".data=?" +
                                                                     " AND carga.nome=? AND "+Local+".hora BETWEEN '00:00:00' AND '23:59:59' GROUP BY HOUR("+Local+".hora)");
           PreparedStatement consultaDiarioB = conn.prepareStatement ("select ("+Local+".valor*calibracao.constante) AS valor, HOUR("+Local+".hora) AS hora FROM "+Local+", carga, calibracao" +
                                                                     " WHERE carga.autocod="+Local+".carga AND calibracao.carga="+Local+".carga AND carga.fase='B' AND "+Local+".data=?" +
                                                                     " AND carga.nome=? AND "+Local+".hora BETWEEN '00:00:00' AND '23:59:59' GROUP BY HOUR("+Local+".hora)");
           PreparedStatement consultaDiarioC = conn.prepareStatement ("select ("+Local+".valor*calibracao.constante) AS valor, HOUR("+Local+".hora) AS hora FROM "+Local+", carga, calibracao" +
                                                                     " WHERE carga.autocod="+Local+".carga AND calibracao.carga="+Local+".carga AND carga.fase='C' AND "+Local+".data=?" +
                                                                     " AND carga.nome=? AND "+Local+".hora BETWEEN '00:00:00' AND '23:59:59' GROUP BY HOUR("+Local+".hora)");
           //Enviando as Strings
           consultaDiarioA.setString(1, DataInicio);
           consultaDiarioA.setString(2, Carga);
           consultaDiarioB.setString(1, DataInicio);
           consultaDiarioB.setString(2, Carga);
           consultaDiarioC.setString(1, DataInicio);
           consultaDiarioC.setString(2, Carga);
           
           //executando a pesquisa e setando ao ResultSet
           ResultSet rsA = consultaDiarioA.executeQuery();
           ResultSet rsB = consultaDiarioB.executeQuery();
           ResultSet rsC = consultaDiarioC.executeQuery();
           while((rsA.next())&&(rsB.next())&&(rsC.next())){
                    ds.setValue(rsA.getDouble("valor"), "Corrente Fase A", rsA.getString("hora"));
                    ds.setValue(rsB.getDouble("valor"), "Corrente Fase B", rsA.getString("hora"));
                    ds.setValue(rsC.getDouble("valor"), "Corrente Fase C", rsA.getString("hora"));
           }
           
           return ds;
    }//fim do try
    catch (SQLException e) {
            e.printStackTrace();
		
	}//fim do catch
    return ds;
}//fim do Consulta

}[/code]

Kra, uma dica… crie um método que retornara um BufferedImage pra ti, ou seja o método que cria o chart e retorna pra vc uma imagem, fica bem mais facil tu colocar ela na sua pagina.

Implementei a sua dica de criar um metodo BufferedImage, e novamente no Firefox rodou beleza. Contudo no IE nada de funcionar deu o mesmo erro…