Rich:fileUpload só funciona com arquivos com menso de 1,5m, uso Tomcat 6 richfaces 3.3.3

Fala pessoal, sou inciante no fórum, porém tenho um problema que esta me atormentando faz um bom tempo.
Faço upload normal com o rich:fileUpload para imagens até um mega, porém quando tento fazer para arquivos maiores que isso dá a seguite stack:

view plaincopy to clipboardprint?
Jul 13, 2012 12:09:19 AM com.sun.faces.lifecycle.Phase handleBeforePhase  
Advertência: org.ajax4jsf.request.MultipartRequest.parseRequest(MultipartRequest.java:388)  
org.richfaces.component.FileUploadPhaselistener.beforePhase(FileUploadPhaselistener.java:63)  
com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:214)  
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:96)  
com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:104)  
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)  
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)  
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)  
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:367)  
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)  
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)  
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)  
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)  
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)  
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)  
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)  
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)  
java.lang.Thread.run(Unknown Source)  

Já tentei muita coisa mas nada deu certo…

meu código é este

view plaincopy to clipboardprint?
<?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  <display-name>comGayaMapasWebFront</display-name>  
    
  <display-name>JavaServerFaces</display-name>  
    
  <context-param>  
        <param-name>javax.faces.CONFIG_FILES</param-name>  
        <param-value></param-value>  
    </context-param>  
    
    <context-param>   
        <param-name>contextConfigLocation</param-name>   
            <param-value>/WEB-INF/applicationContext.xml</param-value>   
    </context-param>   
      
    <listener>  
        <listener-class>  
            org.springframework.web.context.ContextLoaderListener  
        </listener-class>  
    </listener>  
    <listener>  
         <listener-class>  
            org.springframework.web.context.request.RequestContextListener  
         </listener-class>  
    </listener>   
    
  <context-param>  
  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>  
  <param-value>.xhtml</param-value>  
</context-param>  
  <context-param>  
  <param-name>facelets.REFRESH_PERIOD</param-name>  
  <param-value>0</param-value>   
</context-param>  
<context-param>  
  <param-name>facelets.DEVELOPMENT</param-name>  
  <param-value>true</param-value>  
</context-param>  
<context-param>  
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>  
  <param-value>server</param-value>  
</context-param>  
<context-param>  
  <param-name>org.richfaces.SKIN</param-name>  
  <param-value>blueSky</param-value>  
</context-param>  
  
<filter>  
  <display-name>Ajax4jsf Filter</display-name>  
  <filter-name>ajax4jsf</filter-name>  
  <filter-class>org.ajax4jsf.Filter</filter-class>  
  <init-param>  
  <param-name>createTempFiles</param-name>  
  <param-value>true</param-value>  
  </init-param>  
<init-param>  
      <param-name>maxRequestSize</param-name>  
      <param-value>0</param-value>  
  </init-param>  
  <init-param>      
    <param-name>forceparser</param-name>      
    <param-value>false</param-value>      
  </init-param>    
</filter>  
  
<filter-mapping>  
  <filter-name>ajax4jsf</filter-name>  
  <servlet-name>Faces Servlet</servlet-name>  
  <dispatcher>REQUEST</dispatcher>  
  <dispatcher>FORWARD</dispatcher>  
  <dispatcher>INCLUDE</dispatcher>  
</filter-mapping>  
<servlet>  
  <servlet-name>Faces Servlet</servlet-name>  
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>  
  <load-on-startup>0</load-on-startup>  
</servlet>  
<servlet-mapping>  
  <servlet-name>Faces Servlet</servlet-name>  
  <url-pattern>*.jsf</url-pattern>  
</servlet-mapping>  
<login-config>  
  <auth-method>BASIC</auth-method>  
</login-config>  
  
</web-app>  
package com.gaya.mapas.web.front.ui;  
  
import java.awt.Image;  
import java.awt.image.RenderedImage;  
import java.io.BufferedInputStream;  
import java.io.File;  
import java.io.FileInputStream;  
import java.io.InputStream;  
import java.io.OutputStream;  
  
import javax.imageio.ImageIO;  
import javax.swing.ImageIcon;  
  
import org.richfaces.event.UploadEvent;  
import org.richfaces.model.UploadItem;  
  
import com.gaya.mapas.pojos.Mapas;  
import com.gaya.mapas.web.front.utilits.MediaData;  
  
public class MapasUI extends UserBean {  
    private static final long serialVersionUID = 1L;  
    private Mapas mapas;  
    private byte[] arq;  
    private File file;  
    private String mapasList = "mapasList.xhtml";  
    private String mapasVisualizacao = "mapasVisualizacao.xhtml";  
    private String outPut = mapasList;  
  
    public void uploadArquivoListner(UploadEvent evento) {  
        try {  
            UploadItem item = evento.getUploadItem();  
            //arq = item.getData();  
            file = item.getFile();  
            mapas.setEndereco(item.getFileName());  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
  
    }  
  
    public String getOutPut() {  
        return outPut;  
    }  
  
    public void setOutPut(String outPut) {  
        this.outPut = outPut;  
    }  
  
    public Mapas getMapas() {  
        return mapas;  
    };  
  
    public void setMapas(Mapas mapas) {  
        this.mapas = mapas;  
    };  
  
    public Integer getId() {  
        return mapas.getId();  
    }  
  
    public void setId(Integer id) {  
        mapas.setId(id);  
    }  
  
    public Integer getTamanhoHorizontal() {  
        return mapas.getTamanhoHorizontal();  
    }  
  
    public void setTamanhoHorizontal(Integer tamanhoHorizontal) {  
        mapas.setTamanhoHorizontal(tamanhoHorizontal);  
    }  
  
    public Integer getTamanhoVertical() {  
        return mapas.getTamanhoVertical();  
    }  
  
    public void setTamanhoVertical(Integer tamanhoVertical) {  
        mapas.setTamanhoVertical(tamanhoVertical);  
    }  
  
    public String getNome() {  
        return mapas.getNome();  
    }  
  
    public void setNome(String nome) {  
        mapas.setNome(nome);  
    }  
  
    public Integer getEscala() {  
        return mapas.getEscala();  
    }  
  
    public void setEscala(Integer escala) {  
        mapas.setEscala(escala);  
    }  
  
    public String getDescricao() {  
        return mapas.getDescricao();  
    }  
  
    public void setDescricao(String descricao) {  
        mapas.setDescricao(descricao);  
    }  
  
    public String getLatitudeInicial() {  
        return mapas.getLatitudeInicial();  
    }  
  
    public void setLatitudeInicial(String latitudeInicial) {  
        mapas.setLatitudeInicial(latitudeInicial);  
    }  
  
    public String getLongitudeInicial() {  
        return mapas.getLongitudeInicial();  
    }  
  
    public void setLongitudeInicial(String longitudeInicial) {  
        mapas.setLongitudeInicial(longitudeInicial);  
    }  
  
    public String getLatitudeFinal() {  
        return mapas.getLatitudeFinal();  
    }  
  
    public void setLatitudeFinal(String latitudeFinal) {  
        mapas.setLatitudeFinal(latitudeFinal);  
    }  
  
    public String getLongitudeFinal() {  
        return mapas.getLongitudeFinal();  
    }  
  
    public void setLongitudeFinal(String longitudeFinal) {  
        mapas.setLongitudeFinal(longitudeFinal);  
    }  
  
    public Integer getMargemNorte() {  
        return mapas.getMargemNorte();  
    }  
  
    public void setMargemNorte(Integer margemNorte) {  
        mapas.setMargemNorte(margemNorte);  
    }  
  
    public Integer getMargemSul() {  
        return mapas.getMargemSul();  
    }  
  
    public void setMargemSul(Integer margemSul) {  
        mapas.setMargemSul(margemSul);  
    }  
  
    public Integer getMargenLest() {  
        return mapas.getMargenLest();  
    }  
  
    public void setMargenLest(Integer margenLest) {  
        mapas.setMargenLest(margenLest);  
    }  
  
    public Integer getMargemOest() {  
        return mapas.getMargemOest();  
    }  
  
    public void setMargemOest(Integer margemOest) {  
        mapas.setMargemOest(margemOest);  
    }  
  
    public String getEndereco() {  
        return mapas.getEndereco();  
    }  
  
    public void setEndereco(String endereco) {  
        mapas.setEndereco(endereco);  
    }  
  
    public void find() {  
        outPut = mapasList;  
    }  
  
    public void save() {  
    }  
  
    public void delete() {  
  
    }  
  
    public void visualizar() {  
        try {  
            if (file!= null && mapas != null && mapas.getEndereco() != null  
            //if (arq!= null && mapas != null && mapas.getEndereco() != null  
                    && !mapas.getEndereco().equals("")) {  
                outPut = mapasVisualizacao;  
            } else {  
                throw new Exception("Sem mapa inserido!!");  
            }  
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }  
  
    public void paint(OutputStream out, Object data) {  
        try {  
            if (data != null && data instanceof MediaData && mapas != null  
                    && mapas.getEndereco() != null  
                    && !mapas.getEndereco().equals("")) {  
                MediaData paintData = (MediaData) data;  
                  
                  
                InputStream is = new BufferedInputStream(  
                        new FileInputStream(file));  
                Image image = ImageIO.read(is);  
                ImageIcon img = new ImageIcon(image);  
  
                //ImageIcon img = new ImageIcon(arq);  
                  
                  
                paintData.setHeight(img.getIconHeight());  
                paintData.setWidth(img.getIconWidth());  
                  
                String s = mapas.getEndereco().substring(mapas.getEndereco().lastIndexOf(".") + 1, mapas.getEndereco().length());  
                ImageIO.write((RenderedImage) image,s,out);  
            }  
  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
  
    }  
  
}  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:ui="http://java.sun.com/jsf/facelets"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"  
    xmlns:rich="http://richfaces.org/rich"  
    xmlns:a4j="http://richfaces.org/a4j">  
  
<f:view>  
    <f:loadBundle basename="messages" var="msg" />  
    <rich:panel>  
        <f:facet name="header">  
            <h:outputLabel value="#{msg.header_inserir_mapas}" />  
        </f:facet>  
        <h:panelGrid columns="2" columnClasses="upload,busca" width="100%">  
            <h:panelGrid columns="1" width="100%">  
                <h:form id="fomrMapas">  
                    <h:panelGrid width="100%" columns="2" border="1" rules="all"  
                        columnClasses="coluna1,coluna2">  
                        <f:facet name="header">  
                            <h:outputText value="#{msg.header_insira_valores_mapas}" />  
                        </f:facet>  
  
                        <h:outputLabel value="#{msg.label_id}" />  
                        <h:inputText value="#{mapasUI.id}" />  
                        <h:outputLabel value="#{msg.label_tamanho_horizontal}" />  
                        <h:inputText value="#{mapasUI.tamanhoHorizontal}" />  
                        <h:outputLabel value="#{msg.label_tamanho_vertical}" />  
                        <h:inputText value="#{mapasUI.tamanhoVertical}" />  
                        <h:outputLabel value="#{msg.label_nome}" />  
                        <h:inputText value="#{mapasUI.nome}" />  
                        <h:outputLabel value="#{msg.label_escala}" />  
                        <h:inputText value="#{mapasUI.escala}" />  
                        <h:outputLabel value="#{msg.label_descricao}" />  
                        <h:inputText value="#{mapasUI.descricao}" />  
                        <h:outputLabel value="#{msg.label_latitude_inicial}" />  
                        <h:inputText value="#{mapasUI.latitudeInicial}" />  
                        <h:outputLabel value="#{msg.label_longitude_inicial}" />  
                        <h:inputText value="#{mapasUI.longitudeInicial}" />  
                        <h:outputLabel value="#{msg.label_latitude_final}" />  
                        <h:inputText value="#{mapasUI.latitudeFinal}" />  
                        <h:outputLabel value="#{msg.label_longitude_final}" />  
                        <h:inputText value="#{mapasUI.longitudeFinal}" />  
                        <h:outputLabel value="#{msg.label_margem_norte}" />  
                        <h:inputText value="#{mapasUI.margemNorte}" />  
                        <h:outputLabel value="#{msg.label_margem_sul}" />  
                        <h:inputText value="#{mapasUI.margemSul}" />  
                        <h:outputLabel value="#{msg.label_margen_lest}" />  
                        <h:inputText value="#{mapasUI.margenLest}" />  
                        <h:outputLabel value="#{msg.label_margem_oest}" />  
                        <h:inputText value="#{mapasUI.margemOest}" />  
  
                    </h:panelGrid>  
                    <rich:fileUpload  
                        fileUploadListener="#{mapasUI.uploadArquivoListner}"  
                        acceptedTypes="jpeg,jpg,gif,png,bmp" maxFilesQuantity="1"  
                        listHeight="40px" listWidth="100%"  
                        ontyperejected="alert('#{msg.erroArquivo}');" />  
  
                    <h:panelGrid columns="4" width="100%">  
                        <a4j:commandButton value="#{msg.visualizar}"  
                            action="#{mapasUI.visualizar}" reRender="outPut"  
                            ajaxSingle="true" />  
                        <a4j:commandButton value="#{msg.buscar}" action="#{mapasUI.find}"  
                            reRender="outPut" ajaxSingle="true" />  
                        <a4j:commandButton value="#{msg.limpar}" />  
                        <a4j:commandButton value="#{msg.salvar}" />  
                    </h:panelGrid>  
                </h:form>  
            </h:panelGrid>  
  
            <a4j:outputPanel id="painel-conteudo-mapas" width="100%">  
                <a4j:include viewId="#{mapasUI.outPut}" id="outPut" />  
            </a4j:outputPanel>  
  
  
        </h:panelGrid>  
    </rich:panel>  
</f:view>  
</html>  

Estou a muito tempo nisso, por favor me ajudem