Class utilMain


  • public class utilMain
    extends java.lang.Object
    This class is utilities specific to the two ij Main's. This factoring enables sharing the functionality for single and dual connection ij runs.
    • Constructor Summary

      Constructors 
      Constructor Description
      utilMain​(int numConnections, LocalizedOutput out)
      Set up the test to run with 'numConnections' connections/users.
      utilMain​(int numConnections, LocalizedOutput out, boolean loadSystemProperties)
      Set up the test to run with 'numConnections' connections/users.
      utilMain​(int numConnections, LocalizedOutput out, java.util.Hashtable ignoreErrors)
      Set up the test to run with 'numConnections' connections/users.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) ijResult absolute​(java.sql.ResultSet rs, int row)
      Position on the specified row of the specified ResultSet.
      (package private) ijResult afterLast​(java.sql.ResultSet rs)
      Position after the last row of the specified ResultSet and return NULL to the user.
      (package private) ijResult beforeFirst​(java.sql.ResultSet rs)
      Position before the first row of the specified ResultSet and return NULL to the user.
      private void checkScrollableCursor​(java.sql.ResultSet rs, java.lang.String operation)
      Check that the cursor is scrollable.
      private void cleanupGo​(LocalizedInput[] in)
      Perform cleanup after a script has been run.
      private void displayResult​(LocalizedOutput out, ijResult result, java.sql.Connection conn)  
      private boolean doCatch​(java.lang.String command)
      catch processing on failed commands.
      (package private) static void doPrompt​(boolean newStatement, LocalizedOutput out, java.lang.String tag)
      REMIND: eventually this might be part of StatementFinder, used at each carriage return to show that it is still "live" when it is reading multi-line input.
      private void doTrace​(java.lang.Throwable t)
      stack trace dumper
      (package private) ijResult first​(java.sql.ResultSet rs)
      Position on the first row of the specified ResultSet and return that row to the user.
      (package private) int getCurrentRowNumber​(java.sql.ResultSet rs)
      Get the current row number
      void go​(LocalizedInput[] in, LocalizedOutput out)
      run ij over the specified input, sending output to the specified output.
      int goScript​(java.sql.Connection conn, LocalizedInput in)
      Support to run a script.
      private void handleSQLException​(LocalizedOutput out, java.sql.SQLException e)
      This routine displays SQL exceptions and decides whether they are fatal or not, based on the ignoreErrors field.
      void initFromEnvironment()
      Initialize the connections from the environment.
      (package private) ijResult last​(java.sql.ResultSet rs)
      Position on the last row of the specified ResultSet and return that row to the user.
      (package private) void newInput​(java.lang.String fileName)  
      (package private) void newResourceInput​(java.lang.String resourceName)  
      (package private) ijResult previous​(java.sql.ResultSet rs)
      Position on the previous row of the specified ResultSet and return that row to the user.
      (package private) ijResult relative​(java.sql.ResultSet rs, int row)
      Move the cursor position by the specified amount.
      private int runScriptGuts()
      Run the guts of the script.
      (package private) void setMtUse​(boolean b)  
      private void supportIJProperties​(ConnectionEnv env)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ijTokMgr

        org.apache.derby.impl.tools.ij.ijTokenManager ijTokMgr
      • ijParser

        org.apache.derby.impl.tools.ij.ij ijParser
      • currCE

        private int currCE
      • numConnections

        private final int numConnections
      • fileInput

        private boolean fileInput
      • initialFileInput

        private boolean initialFileInput
      • mtUse

        private boolean mtUse
      • firstRun

        private boolean firstRun
      • ignoreErrors

        private java.util.Hashtable ignoreErrors
      • showErrorCode

        private final boolean showErrorCode
        True if to display the error code when displaying a SQLException.
      • ijExceptionTrace

        private final java.lang.String ijExceptionTrace
        Value of the system property ij.execptionTrace
    • Constructor Detail

      • utilMain

        utilMain​(int numConnections,
                 LocalizedOutput out)
          throws ijFatalException
        Set up the test to run with 'numConnections' connections/users.
        Parameters:
        numConnections - The number of connections/users to test.
        Throws:
        ijFatalException
      • utilMain

        utilMain​(int numConnections,
                 LocalizedOutput out,
                 boolean loadSystemProperties)
          throws ijFatalException
        Set up the test to run with 'numConnections' connections/users. This overload allows the choice of whether the system properties will be used or not.
        Parameters:
        numConnections - The number of connections/users to test.
        Throws:
        ijFatalException
      • utilMain

        public utilMain​(int numConnections,
                        LocalizedOutput out,
                        java.util.Hashtable ignoreErrors)
                 throws ijFatalException
        Set up the test to run with 'numConnections' connections/users.
        Parameters:
        numConnections - The number of connections/users to test.
        ignoreErrors - A list of errors to ignore. If null, all errors are printed out and nothing is fatal. If non-null, if an error is hit and it is in this list, it is silently ignore. Otherwise, an ijFatalException is thrown. ignoreErrors is used for stress tests.
        Throws:
        ijFatalException
    • Method Detail

      • initFromEnvironment

        public void initFromEnvironment()
        Initialize the connections from the environment.
      • goScript

        public int goScript​(java.sql.Connection conn,
                            LocalizedInput in)
        Support to run a script. Performs minimal setup to set the passed in connection into the existing ij setup, ConnectionEnv.
        Parameters:
        conn -
        in -
      • supportIJProperties

        private void supportIJProperties​(ConnectionEnv env)
      • runScriptGuts

        private int runScriptGuts()
        Run the guts of the script. Split out to allow calling from the full ij and the minimal goScript.
        Returns:
        The number of errors seen in the script.
      • cleanupGo

        private void cleanupGo​(LocalizedInput[] in)
        Perform cleanup after a script has been run. Close the input streams if required and shutdown derby on an exit.
        Parameters:
        in -
      • displayResult

        private void displayResult​(LocalizedOutput out,
                                   ijResult result,
                                   java.sql.Connection conn)
                            throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • doCatch

        private boolean doCatch​(java.lang.String command)
        catch processing on failed commands. This really ought to be in ij somehow, but it was easier to catch in Main.
      • handleSQLException

        private void handleSQLException​(LocalizedOutput out,
                                        java.sql.SQLException e)
                                 throws ijFatalException
        This routine displays SQL exceptions and decides whether they are fatal or not, based on the ignoreErrors field. If they are fatal, an ijFatalException is thrown. Lifted from ij/util.java:ShowSQLException
        Throws:
        ijFatalException
      • doTrace

        private void doTrace​(java.lang.Throwable t)
        stack trace dumper
      • newInput

        void newInput​(java.lang.String fileName)
      • newResourceInput

        void newResourceInput​(java.lang.String resourceName)
      • doPrompt

        static void doPrompt​(boolean newStatement,
                             LocalizedOutput out,
                             java.lang.String tag)
        REMIND: eventually this might be part of StatementFinder, used at each carriage return to show that it is still "live" when it is reading multi-line input.
      • setMtUse

        void setMtUse​(boolean b)
      • checkScrollableCursor

        private void checkScrollableCursor​(java.sql.ResultSet rs,
                                           java.lang.String operation)
                                    throws ijException,
                                           java.sql.SQLException
        Check that the cursor is scrollable.
        Parameters:
        rs - the ResultSet to check
        operation - which operation this is checked for
        Throws:
        ijException - if the cursor isn't scrollable
        java.sql.SQLException - if a database error occurs
      • absolute

        ijResult absolute​(java.sql.ResultSet rs,
                          int row)
                   throws java.sql.SQLException
        Position on the specified row of the specified ResultSet.
        Parameters:
        rs - The specified ResultSet.
        row - The row # to move to. (Negative means from the end of the result set.)
        Returns:
        NULL.
        Throws:
        java.sql.SQLException - thrown on error. (absolute() not supported pre-JDBC2.0)
      • relative

        ijResult relative​(java.sql.ResultSet rs,
                          int row)
                   throws java.sql.SQLException
        Move the cursor position by the specified amount.
        Parameters:
        rs - The specified ResultSet.
        row - The # of rows to move. (Negative means toward the beginning of the result set.)
        Returns:
        NULL.
        Throws:
        java.sql.SQLException - thrown on error. (relative() not supported pre-JDBC2.0)
      • beforeFirst

        ijResult beforeFirst​(java.sql.ResultSet rs)
                      throws java.sql.SQLException
        Position before the first row of the specified ResultSet and return NULL to the user.
        Parameters:
        rs - The specified ResultSet.
        Returns:
        NULL.
        Throws:
        java.sql.SQLException - thrown on error. (beforeFirst() not supported pre-JDBC2.0)
      • first

        ijResult first​(java.sql.ResultSet rs)
                throws java.sql.SQLException
        Position on the first row of the specified ResultSet and return that row to the user.
        Parameters:
        rs - The specified ResultSet.
        Returns:
        The first row of the ResultSet.
        Throws:
        java.sql.SQLException - thrown on error. (first() not supported pre-JDBC2.0)
      • afterLast

        ijResult afterLast​(java.sql.ResultSet rs)
                    throws java.sql.SQLException
        Position after the last row of the specified ResultSet and return NULL to the user.
        Parameters:
        rs - The specified ResultSet.
        Returns:
        NULL.
        Throws:
        java.sql.SQLException - thrown on error. (afterLast() not supported pre-JDBC2.0)
      • last

        ijResult last​(java.sql.ResultSet rs)
               throws java.sql.SQLException
        Position on the last row of the specified ResultSet and return that row to the user.
        Parameters:
        rs - The specified ResultSet.
        Returns:
        The last row of the ResultSet.
        Throws:
        java.sql.SQLException - thrown on error. (last() not supported pre-JDBC2.0)
      • previous

        ijResult previous​(java.sql.ResultSet rs)
                   throws java.sql.SQLException
        Position on the previous row of the specified ResultSet and return that row to the user.
        Parameters:
        rs - The specified ResultSet.
        Returns:
        The previous row of the ResultSet.
        Throws:
        java.sql.SQLException - thrown on error. (previous() not supported pre-JDBC2.0)
      • getCurrentRowNumber

        int getCurrentRowNumber​(java.sql.ResultSet rs)
                         throws java.sql.SQLException
        Get the current row number
        Parameters:
        rs - The specified ResultSet.
        Returns:
        The current row number
        Throws:
        java.sql.SQLException - thrown on error. (getRow() not supported pre-JDBC2.0)