My guess is that similar to filesystem if you only shutdown Derby without JVM 
exit database is still there. Similar to filesystem where you need to remove 
database from filesystem.

Peter

> On 9 Oct 2013, at 14:26, "pelle.ullberg" <pelle.ullb...@gmail.com> wrote:
> 
> Hi, 
> 
> Could someone please explain whats wrong with this little unit test that I
> mocked up? I'm using derby version 10.10.1.1
> 
> Basically I create an in-memory derby database, shut it down and then
> expected it to not exist anymore. But if the unit test is right, I can
> actually reconnect to it.
> 
> Best regards
> /Pelle
> 
> Code is below!
> 
> 
> package com.klarna.derby;
> 
> import org.apache.derby.jdbc.EmbeddedDriver;
> import org.junit.Assert;
> import org.junit.Test;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
> 
> import java.sql.Connection;
> import java.sql.DriverManager;
> import java.sql.SQLException;
> import java.util.UUID;
> 
> public class DerbyUtilsTest {
> 
>    private static final Logger LOGGER =
> LoggerFactory.getLogger(DerbyUtilsTest.class);
> 
>    @Test(expected = SQLException.class)
>    public void verifyDerbyShutdown() throws SQLException {
>        String url = "jdbc:derby:memory:" + UUID.randomUUID().toString();
> 
>        Connection connection = DriverManager.getConnection(url +
> ";create=true");
> 
>        // Ping derby just to make sure we got it up and running
>        connection.prepareCall("select * from
> SYS.SYSTABLES").executeQuery();
> 
>        try {
>            DriverManager.getConnection("jdbc:derby:;shutdown=true");
>        } catch (SQLException e) {
>            // This exception is expected:
> http://db.apache.org/derby/docs/10.3/devguide/tdevdvlp20349.html
>            Assert.assertEquals("Derby system shutdown.", e.getMessage());
>        } finally {
>            // Make sure old driver is collected
>            System.gc();
>            try {
>                // Re-rgeister driver so that new derby jdbc instances may
> be spawned.
>                DriverManager.registerDriver(new EmbeddedDriver());
>            } catch (SQLException e) {
>                LOGGER.error("Failed to re-register Derby embedded driver: "
> + e.getMessage(), e);
>            }
>        }
> 
>        // Expected this to throw something like 'java.sql.SQLException:
> Database 'memory:d77d6863-7624-4990-86fb-2e40a5a1e04d' not found'
>        DriverManager.getConnection(url);
> 
>    }
> 
> }
> 
> 
> 
> 
> --
> View this message in context: 
> http://apache-database.10148.n7.nabble.com/Able-to-reconnect-previously-shutdown-in-memory-derby-database-tp134573.html
> Sent from the Apache Derby Users mailing list archive at Nabble.com.

Reply via email to