Example usage for com.liferay.portal.kernel.dao.db DBType HYPERSONIC

List of usage examples for com.liferay.portal.kernel.dao.db DBType HYPERSONIC

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.dao.db DBType HYPERSONIC.

Prototype

DBType HYPERSONIC

To view the source code for com.liferay.portal.kernel.dao.db DBType HYPERSONIC.

Click Source Link

Usage

From source file:com.liferay.message.boards.service.test.MBMessageServiceTest.java

License:Open Source License

@Test
public void testAddMessagesConcurrently() throws Exception {
    DoAsUserThread[] doAsUserThreads = new DoAsUserThread[_userIds.length];

    for (int i = 0; i < doAsUserThreads.length; i++) {
        String subject = "Test Message " + i;

        doAsUserThreads[i] = new AddMessageThread(_userIds[i], subject);
    }// ww  w  .  j a va2s  .  c om

    try (CaptureAppender captureAppender1 = Log4JLoggerTestUtil
            .configureLog4JLogger(BasePersistenceImpl.class.getName(), Level.ERROR);
            CaptureAppender captureAppender2 = Log4JLoggerTestUtil
                    .configureLog4JLogger(DefaultTransactionExecutor.class.getName(), Level.ERROR);
            CaptureAppender captureAppender3 = Log4JLoggerTestUtil
                    .configureLog4JLogger(DoAsUserThread.class.getName(), Level.ERROR);
            CaptureAppender captureAppender4 = Log4JLoggerTestUtil
                    .configureLog4JLogger(JDBCExceptionReporter.class.getName(), Level.ERROR);
            CaptureAppender captureAppender5 = Log4JLoggerTestUtil
                    .configureLog4JLogger(SynchronousDestination.class.getName(), Level.ERROR);) {

        for (DoAsUserThread doAsUserThread : doAsUserThreads) {
            doAsUserThread.start();
        }

        for (DoAsUserThread doAsUserThread : doAsUserThreads) {
            doAsUserThread.join();
        }

        DB db = DBManagerUtil.getDB();

        if (db.getDBType() == DBType.HYPERSONIC) {
            for (LoggingEvent loggingEvent : captureAppender2.getLoggingEvents()) {

                String message = loggingEvent.getRenderedMessage();

                Assert.assertTrue(
                        message.startsWith("Application exception overridden by commit " + "exception"));
            }

            for (LoggingEvent loggingEvent : captureAppender5.getLoggingEvents()) {

                String message = loggingEvent.getRenderedMessage();

                Assert.assertTrue(message.startsWith("Unable to process message"));
            }
        } else if (db.getDBType() == DBType.SYBASE) {
            for (LoggingEvent loggingEvent : captureAppender1.getLoggingEvents()) {

                String message = loggingEvent.getRenderedMessage();

                Assert.assertTrue(message.startsWith("Caught unexpected exception"));
            }

            for (LoggingEvent loggingEvent : captureAppender3.getLoggingEvents()) {

                String message = loggingEvent.getRenderedMessage();

                StringBundler sb = new StringBundler(2);

                sb.append("com.liferay.portal.kernel.exception.");
                sb.append("SystemException:");

                Assert.assertTrue(message.startsWith(sb.toString()));
            }

            for (LoggingEvent loggingEvent : captureAppender4.getLoggingEvents()) {

                String message = loggingEvent.getRenderedMessage();

                Assert.assertTrue(message, message.contains("Your server command"));
                Assert.assertTrue(message,
                        message.contains("encountered a deadlock situation. Please re-run " + "your command."));
            }
        }
    }

    int successCount = 0;

    for (DoAsUserThread doAsUserThread : doAsUserThreads) {
        if (doAsUserThread.isSuccess()) {
            successCount++;
        }
    }

    Assert.assertTrue(
            "Only " + successCount + " out of " + _userIds.length + " threads added messages successfully",
            successCount == _userIds.length);
}