Erro: java.lang.StringIndexOutOfBoundsException: String index out of range: 0

Bom, o erro acontece quando tento logar com meu usuário.

O xhtml Login

<?xml version="1.0" encoding="UTF-8" ?>
<!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:h="http://java.sun.com/jsf/html" 
      xmlns:p="http://primefaces.org/ui" 
      xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</h:head>
<h:body>
  <p:breadCrumb>
    <p:menuitem value="categories" url="principal.xhtml" />
    <p:menuitem value="Drama" url="drama.xhtml" />
    <p:menuitem value="Romance" url="romance.xhtml"/>
    <p:menuitem value="Ficção" url="ficcao.xhtml" />
    <p:menuitem value="Terror" url="terror.xhtml" />
    <p:menuitem value="Suspense" url="suspense.xhtml" />
    <p:menuitem value="Logar-se" url="login.xhtml" />
  </p:breadCrumb>
  <center>
     <h:panelGrid>
     <p:messages />
     <h:form id="form">
     <p:panel closeable="false" header="Logar-se na locadora" style="width:350PX">
     <h:panelGrid columns="2">
     <h:outputLabel value="Usuario:" />
     <h:inputText id="login" required="true" value="#{usuarioManagedBean.usuario.login}" requiredMessage="Campo [Usuario] obrigatorio" />
     <h:outputLabel value="Senha:" />
     <h:inputSecret redisplay="false" value="#{usuarioManagedBean.usuario.senha}" requiredMessage="Campo [Senha] obrigatorio" />
     <h:commandButton value="Logar-se" action="#{usuarioManagedBean.logar}" />
     </h:panelGrid>
     </p:panel>
     </h:form> 
    </h:panelGrid>
  </center>   
</h:body>
</html>

O MangedBean

package pojo;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import pojo.Usuario;
import javax.faces.application.FacesMessage;

@ManagedBean
@SessionScoped

public class UsuarioManagedBean {
	
	private Usuario usuario;
	private String login,senha;
	private Validador validador;

	public UsuarioManagedBean(){
		usuario=new Usuario();
	}
	
	public Usuario getUsuario(){
		return usuario;
	}
	
	
	public void setUsuario(Usuario usuario){
		this.usuario=usuario;
	}

	public String logar(){
		validador=new Validador();
		if(validador.validar(usuario.getLogin(),usuario.getSenha())){
			return "OK";
		}
		FacesMessage msg=new FacesMessage("Usuario/senha invalidos");
		FacesContext.getCurrentInstance().addMessage("form", msg);
		return "";
	}

	public String deslogar(){
		FacesContext context=FacesContext.getCurrentInstance();
		context.getExternalContext().getSessionMap().remove(usuario.getLogin());
		context.getExternalContext().getSessionMap().remove(usuario.getSenha());
		return "logout";
	}

  
}

A classe usuario

package pojo;

public class Usuario {

	private String login,senha;
	
	public String getLogin(){
		return login;
	}
	
	public void setLogin(String login){
		this.login=login;
	}
	
	public String getSenha(){
		return senha;
	}
	
	public void setSenha(String senha){
		this.senha=senha;
	}
}

O validador

package pojo;
import java.sql.*;
import java.sql.SQLException;

public class Validador {


	private String senha;
	
	public boolean validar(String usuario,String pass) {
		BD bd=new BD();
		Boolean resultado=false;
		if(bd.getConnection()){
			try {
				String sql="select user,pwd from usuarios where user=?";
				PreparedStatement statement=bd.connection.prepareStatement(sql);
				statement.setString(1,usuario);
				ResultSet resultSet=statement.executeQuery();
				if(resultSet.next()){
					senha=resultSet.getString("pwd");
					if(pass.equals(senha)){
						System.out.println("login e usuario valido");
						resultado=true;
					}
				}
				System.out.println("Nao encontrado");
				bd.close();
			}
			catch(SQLException erro){
				System.out.println("Erro: "+erro);
			}
		}
		return resultado;
	}
}

e finalmente a classe responsavel por connectar no mysql

package pojo;

import java.sql.*;
public class BD {
    public Connection connection = null;
    private final String DRIVER = "com.mysql.jdbc.Driver";
    private final String DBNAME = "locadora";
    private final String URL = "jdbc:mysql://localhost:3306/" + DBNAME;
    private final String LOGIN = "root";
    private final String SENHA = "teste";

    /**
     * metodo que faz conexao com o banco de dados
     * retorna true se houve sucesso, ou false em caso negativo
     */
    public boolean getConnection() {
        try {
            Class.forName(DRIVER);
            connection = DriverManager.getConnection(URL, LOGIN, SENHA);
            System.out.println("Conectou");
            return true;
        } catch (ClassNotFoundException erro) {
            System.out.println("Driver nao encontrado " + erro.toString());
            return false;
        } catch (SQLException erro) {
            System.out.println("Falha ao conectar " + erro.toString());
            return false;
        }
    }

    public void close() {
        try {
            connection.close();
            System.out.println("Desconectou");
        } catch (SQLException erro) {}
    }
}

o erro completo

java.lang.StringIndexOutOfBoundsException: String index out of range: 0
	at java.lang.String.charAt(String.java:694)
	at com.sun.faces.application.view.MultiViewHandler.getResourceURL(Unknown Source)
	at org.primefaces.renderkit.CoreRenderer.getResourceURL(CoreRenderer.java:72)
	at org.primefaces.component.menu.BaseMenuRenderer.encodeMenuItem(BaseMenuRenderer.java:75)
	at org.primefaces.component.breadcrumb.BreadCrumbRenderer.encodeMarkup(BreadCrumbRenderer.java:77)
	at org.primefaces.component.breadcrumb.BreadCrumbRenderer.encodeEnd(BreadCrumbRenderer.java:38)
	at javax.faces.component.UIComponentBase.encodeEnd(Unknown Source)
	at javax.faces.component.UIComponent.encodeAll(Unknown Source)
	at javax.faces.component.UIComponent.encodeAll(Unknown Source)
	at javax.faces.component.UIComponent.encodeAll(Unknown Source)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(Unknown Source)
	at com.sun.faces.application.view.MultiViewHandler.renderView(Unknown Source)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(Unknown Source)
	at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)
	at com.sun.faces.lifecycle.LifecycleImpl.render(Unknown Source)
	at javax.faces.webapp.FacesServlet.service(Unknown Source)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:636)

Valeu

Uma nova descoberta, olhando no eclipse, fui investigar se o erro estava em outro lugar, no caso no faces-config.xml que esta assim:

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

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"
    version="2.1">

    <navigation-rule>
      <from-view-id>login.xhtml</from-view-id>
      <navigation-case>
        <from-outcome>OK</from-outcome>
        <to-view-id>principal2.xhtml</to-view-id>
      </navigation-case>

    </navigation-rule>

</faces-config>

E olhando na aba do eclipse de navigation rule, um erro aparece, "The outcome ‘OK’ is not defined in previous page ‘login.xhtml’ "

Estranhamente o eclipse tb aponta um erro no faces-config, diz que o xhtml do principal 2 nao foi digitado corretamente. Obrigado