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:

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

[code]

<?xml version="1.0" encoding="UTF-8"?> comGayaMapasWebFront

JavaServerFaces

javax.faces.CONFIG_FILES
<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> 
javax.faces.DEFAULT_SUFFIX .xhtml facelets.REFRESH_PERIOD 0 facelets.DEVELOPMENT true javax.faces.STATE_SAVING_METHOD server org.richfaces.SKIN blueSky Ajax4jsf Filter ajax4jsf org.ajax4jsf.Filter createTempFiles true maxRequestSize 0 forceparser false ajax4jsf Faces Servlet REQUEST FORWARD INCLUDE Faces Servlet javax.faces.webapp.FacesServlet 0 Faces Servlet *.jsf BASIC

[/code]

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 :oops:

UP!
Alguém me ajuda?