DropDownList dinâmico e exception

Eu estou precisando criar dropDown dinâmicos para um form numa aplicação!
O caso é o seguinte! qnd seleciono o tipo de documento ele deve me retornar as localizações fisicas disponiveis para o tipo
e isso ele faz sem problemas, mas no momento de executar
a action de post, ele da a exception a seguir:
obs: ja tentei usar arraylist e tb nao deu certo!
a exception só acontece qnd eu seleciono un index maior ou igual a 1 no selectonemenu de localizacoes.

Agradeço pela ajuda!!

Exception:

[code]
type Exception report

message

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

exception

javax.servlet.ServletException
javax.faces.webapp.FacesServlet.service(FacesServlet.java:209)
org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)

root cause

java.lang.IllegalArgumentException
javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:149)
javax.faces.component.UISelectOne.matchValue(UISelectOne.java:141)
javax.faces.component.UISelectOne.validateValue(UISelectOne.java:114)
javax.faces.component.UIInput.validate(UIInput.java:645)
javax.faces.component.UIInput.executeValidate(UIInput.java:849)
javax.faces.component.UIInput.processValidators(UIInput.java:412)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
javax.faces.component.UIForm.processValidators(UIForm.java:170)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:342)
com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:78)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.[/code]

ManagedBean:

[code]public Map getLocalizacoesMap()
{
Map maplocalizacoes;
mapLocalizacoes = new HashMap();
mapLocalizacoes.put(0,new ArrayList());

    for(int i = 0; i < tiposDocumentoBanco.size(); i++)
    {
    	List li =  tiposDocumentoBanco.get(i).getArmazenamentosFísicos();
    	List localizacoes = new ArrayList();
    	localizacoes.add("");
    	for (int j = 0; j < li.size(); j++)
        {
            Localizacao localizacao = ((TipoDocumentoLocalizacao)li.get(j)).getLocalizacao();
            localizacoes.add(localizacao.getReferencia());
        }   
    	mapLocalizacoes.put(i + 1,localizacoes);
    }
    return mapLocalizacoes;    	
}[/code]

JSP:

<h:selectOneMenu id="tipoDocumento" value="#{documento.tipoDocumentoSelecionado}" style="width : 339px; height : 23px;">
  <f:selectItem  itemLabel="" itemValue=""/>
  <f:selectItems  value="#{documento.listaTiposDocumento}"/>
  <t:jsValueChangeListener for="indexTipo" property="value" expressionValue="$srcElem.selectedIndex"/>
  <t:jsValueSet name="localizacoesTipo" value="#{documento.localizacoesMap}" />
  <t:jsValueChangeListener for="localizacao" expressionValue="n=$srcElem.selectedIndex; l=localizacoesTipo[n]; $destElem.options.length=0; for(i=0;i<l.length;i++) { $destElem.options[i]=new Option(l[i],l[i]); }" />
</h:selectOneMenu>

<h:selectOneMenu id="localizacao" value="#{documento.localizacaoSelecionada}" style="width : 339px; height : 23px;">
  <f:selectItem  itemLabel="" itemValue=""/>
  <t:jsValueChangeListener for="indexLocalizacao" property="value" expressionValue="$srcElem.selectedIndex"/>
</h:selectOneMenu>

ja resolvi o problema!! o selectOneMenu que vai receber os dados do map, no caso o de localizacoes, tem q iniciar desabilitado na pagina!

<h:selectOneMenu id="tipoDocumento" value="#{documento.tipoDocumentoSelecionado}" style="width : 339px; height : 23px;">
   <f:selectItem  itemLabel="" itemValue=""/>
   <f:selectItems  value="#{documento.listaTiposDocumento}"/>
   <t:jsValueChangeListener for="indexTipo" property="value" expressionValue="$srcElem.selectedIndex"/>
   <t:jsValueSet name="localizacoesTipo" value="#{documento.localizacoesMap}" />
   <t:jsValueChangeListener for="localizacao" expressionValue="n=$srcElem.selectedIndex; l=localizacoesTipo[n]; $destElem.options.length=0; for(i=0;i<l.length;i++) { $destElem.options[i]=new Option(l[i],l[i]); }" />
 </h:selectOneMenu>
 
 <h:selectOneMenu id="localizacao" value="#{documento.localizacaoSelecionada}" style="width : 339px; height : 23px;" disabled="true">
   <f:selectItem  itemLabel="" itemValue=""/>
   <t:jsValueChangeListener for="indexLocalizacao" property="value" expressionValue="$srcElem.selectedIndex"/>
 </h:selectOneMenu>