Hibernate 5.2.2 possivelmente prendendo recurso

Srs., bom dia.

Estou iniciando os meus estudos de JPA e Hibernate.

Estou usando a versão 5.2.2 do Hibernate com JPA para persistir no meu banco de dados.
Fiz uma classe main para executar um pequeno teste, e a persistência está ocorrendo perfeitamente. Entretanto o programa parece que não para de executar após a finalização das operações.

Esse é o persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="labuonapasta" transaction-type="RESOURCE_LOCAL">
        <properties>
            <property name="javax.persistence.jdbc.url"
                      value="jdbc:mysql://localhost:3306/labuonapasta"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.password" value="teste123"/>

            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        </properties>
    </persistence-unit>
</persistence>

Essa é a minha classe a ser persistida:

package br.com.labuonapasta.web;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Usuario implements Serializable {
    
    @Id
    @Column(name = "cd_usuario")
    private Integer userId;
    
    @Column(name="nm_login")
    private String login;
    
    @Column(name="nm_usuario")
    String nomeCompleto;
    
    @Column(name="ds_senha")
    String senha;
    
    @Column(name="cd_ativo")
    private Boolean ativo;
    
    @Column(name="st_acesso")
    private AcessoEnum tipoAcesso;

    /**
     * Construtor padrao
     */
    public Usuario() {
        this(0, "", "", AcessoEnum.PEDIDO, "", true);
    }

    public Usuario(int userId, String login, String nomeCompleto, AcessoEnum tipoAcesso, 
            String senha, boolean ativo) {
        this.userId = userId;
        this.login = login;
        this.nomeCompleto = nomeCompleto;
        this.tipoAcesso = tipoAcesso;
        this.senha = senha;
        this.ativo = ativo;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getNomeCompleto() {
        return nomeCompleto;
    }

    public void setNomeCompleto(String nomeCompleto) {
        this.nomeCompleto = nomeCompleto;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public Boolean getAtivo() {
        return ativo;
    }

    public void setAtivo(Boolean ativo) {
        this.ativo = ativo;
    }

    public AcessoEnum getTipoAcesso() {
        return tipoAcesso;
    }

    public void setTipoAcesso(AcessoEnum tipoAcesso) {
        this.tipoAcesso = tipoAcesso;
    }

    @Override
    public String toString() {

        return "Usuario " + getNomeCompleto() + " possui o login " + getLogin()
                + ". Esse usuario tem permissao de " + getTipoAcesso().obterDescricao()
                + ". Ele atualmente esta " + (getAtivo() ? "ativo" : "inativo");

    }

    @Override
    public boolean equals(Object o) {
        if (o != null && o.getClass() == this.getClass()) {
            Usuario user = (Usuario) o;
            if (this.getUserId() == user.getUserId()) {
                return true;
            }
        }

        return false;
    }

    @Override
    public int hashCode() {
        return getLogin().hashCode();
    }

}

Essa a classe main para o teste:

package br.com.labuonapasta.web;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class TesteWeb {

    public static void main(String[] args) {

        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory
                ("labuonapasta");

        EntityManager manager = entityManagerFactory.createEntityManager();

        Usuario usuario = new Usuario(0, "testeweb11", "testeweb11", AcessoEnum.CADASTRO, "teste",
                true);

        manager.getTransaction().begin();

        manager.persist(usuario);

        manager.getTransaction().commit();

        manager.close();

        System.out.println("Incluido com sucesso");

    }

}

Esse é o resultado da execução:

"C:\Program Files\Java\jdk1.8.0_74\bin\java" -Didea.launcher.port=7533 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_74\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_74\jre\lib\rt.jar;C:\Users\deivi\Documents\IdeaProjects\pedidos\target\classes;C:\Users\deivi\.IntelliJIdea2016.2\config\javascript\extLibs\http_ajax.googleapis.com_ajax_libs_jquery_1.12.4_jquery.js;C:\Users\deivi\.m2\repository\jstl\jstl\1.2\jstl-1.2.jar;C:\Users\deivi\.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar;C:\Users\deivi\.m2\repository\org\hibernate\hibernate-core\5.2.2.Final\hibernate-core-5.2.2.Final.jar;C:\Users\deivi\.m2\repository\org\jboss\logging\jboss-logging\3.3.0.Final\jboss-logging-3.3.0.Final.jar;C:\Users\deivi\.m2\repository\org\hibernate\javax\persistence\hibernate-jpa-2.1-api\1.0.0.Final\hibernate-jpa-2.1-api-1.0.0.Final.jar;C:\Users\deivi\.m2\repository\org\javassist\javassist\3.20.0-GA\javassist-3.20.0-GA.jar;C:\Users\deivi\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\deivi\.m2\repository\org\apache\geronimo\specs\geronimo-jta_1.1_spec\1.1.1\geronimo-jta_1.1_spec-1.1.1.jar;C:\Users\deivi\.m2\repository\org\jboss\jandex\2.0.0.Final\jandex-2.0.0.Final.jar;C:\Users\deivi\.m2\repository\com\fasterxml\classmate\1.3.0\classmate-1.3.0.jar;C:\Users\deivi\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;C:\Users\deivi\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.1.Final\hibernate-commons-annotations-5.0.1.Final.jar;C:\Users\deivi\.m2\repository\javax\enterprise\cdi-api\1.1\cdi-api-1.1.jar;C:\Users\deivi\.m2\repository\javax\el\el-api\2.2\el-api-2.2.jar;C:\Users\deivi\.m2\repository\org\jboss\spec\javax\interceptor\jboss-interceptors-api_1.1_spec\1.0.0.Beta1\jboss-interceptors-api_1.1_spec-1.0.0.Beta1.jar;C:\Users\deivi\.m2\repository\javax\annotation\jsr250-api\1.0\jsr250-api-1.0.jar;C:\Users\deivi\.m2\repository\javax\inject\javax.inject\1\javax.inject-1.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.2.3\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain br.com.labuonapasta.web.TesteWeb
set 27, 2016 3:06:29 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
	name: labuonapasta
	...]
set 27, 2016 3:06:29 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.2.2.Final}
set 27, 2016 3:06:29 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
set 27, 2016 3:06:29 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
set 27, 2016 3:06:29 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
set 27, 2016 3:06:29 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
set 27, 2016 3:06:29 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/labuonapasta]
set 27, 2016 3:06:29 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=root, password=****}
set 27, 2016 3:06:29 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
set 27, 2016 3:06:29 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Tue Sep 27 15:06:30 BRT 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
set 27, 2016 3:06:30 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
Incluido com sucesso

Note que ele incluiu com sucesso e parece ter terminado, entretanto o programa parece continuar em execução na IDE, como se estivesse prendendo algum recurso: Imagem da IDE

Testei esse código no Intellij, Eclipse e Netbeans, o resultado é o mesmo para todos.

PORÉM, se eu uso uma versão do hibernate abaixo do 5.0, ou se eu uso as classes do Hibernate para fazer a persistencias (Session ao invés de EntityManager) e com isso devo usar o arquivo hibernate.cfg.xml, ele executa sem ficar preso conforme mostrado.

Já se fazem 5 dias que eu estou caçando isso na internet e não encontro nada que me ajude.

Todo e qualquer tutorial está trabalhando com versão anterior a 5.2.2. Tentei encontrar na documentação do Hibernate alguma coisa e não encontrei.

Se alguém tiver alguma idéia, por favor me ajude.

Atc., Deivid.

Defina, parece que continua