// Decompiled by Jad v1.5.7f. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) braces deadcode fieldsfirst 
// Source File Name:   DBAccess.java
// Class Version:      45.3

package oracle.jdbc.dbaccess;

import java.io.IOException;
import java.sql.SQLException;
import oracle.jdbc.OracleConnection;

// Referenced classes of package oracle.jdbc.dbaccess:
//            DBAccess, semaphore, timeOutThread

// flag ACC_SUPER is set
class pingDatabaseThread extends Thread
{
    // Constants:          66
    // Interfaces:         0
    // Fields:             2
    // Methods:            2
    // Class Attributes:   1


    semaphore my_s;
    DBAccess my_dbaccess;

    // Decompiling method: <init>  Signature: (Loracle/jdbc/dbaccess/semaphore;Loracle/jdbc/dbaccess/DBAccess;)V
    // Max stack: 2, #locals: 3, #params: 3
    // Code length: 25 bytes, Code offset: 942
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/pingDatabaseThread; At 0 25 Range 0 24 Init 0 fixed
    // Parameter  1 added: Name semaphore1 Type Loracle/jdbc/dbaccess/semaphore; At 0 25 Range 0 24 Init 0
    // Parameter  2 added: Name dbaccess Type Loracle/jdbc/dbaccess/DBAccess; At 0 25 Range 0 24 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 25 Range 0 24 Init 0 fixed
    public pingDatabaseThread(semaphore semaphore1, DBAccess dbaccess)
    {
        super();
        my_s = null;
        my_dbaccess = null;
        my_s = semaphore1;
        my_dbaccess = dbaccess;
        return;
    }

    // Decompiling method: run  Signature: ()V
    // Max stack: 2, #locals: 5, #params: 1
    // Code length: 132 bytes, Code offset: 1025
    // Exception table: 5 entries
    //           start  4 end 12 handler 15 type Exception
    //           start  19 end 28 handler 31 type SQLException
    //           start  19 end 28 handler 60 type IOException
    //           start  71 end 104 handler 109 type any
    //           start  116 end 124 handler 127 type Exception
    // Line Number Table found: 30 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/pingDatabaseThread; At 0 132 Range 0 131 Init 0 fixed
    // RetValue   5 added: Name <returnValue> Type V At 0 132 Range 0 131 Init 0 fixed
    // LocalVar   1 added: Name flag Type Z At 1 85 Range 1 85 Init 1
    // LocalVar   2 added: Name obj Type A At 3 118 Range 3 120 Init 3
    // LocalVar   2 chged: Name dbstatement Oname obj Type Loracle/jdbc/dbaccess/DBStatement; At 11 110 Range 3 120 Init 3
    // LocalVar   3 added: Name semaphore1 Type Loracle/jdbc/dbaccess/semaphore; At 68 42 Range 68 109 Init 68
    // LocalVar   1 chged: Name i Oname flag Type I At 85 1 Range 1 85 Init 1
    // LocalVar   3 added: Name sqlexception Type Ljava/sql/SQLException; At 31 2 Range 31 32 Init 31
    // LocalVar   4 added: Name j Type I At 36 12 Range 36 47 Init 36
    public void run()
    {
        int i = 0;
        DBStatement dbstatement = null;
        try
        {
            dbstatement = my_dbaccess.open();
        }
        catch(Exception _ex)
        {
            i = -2;
        }
        try
        {
            my_dbaccess.describe(dbstatement);
        }
        catch(SQLException sqlexception)
        {
            int j = sqlexception.getErrorCode();
            if(j != 24338 && j != 1003)
            {
                i = -2;
            }
        }
        catch(IOException _ex)
        {
            i = -2;
        }
        synchronized(my_s)
        {
            if(!my_s.posted)
            {
                my_s.returnValue = i;
                my_s.posted = true;
                my_s.notify();
            }
        }
        if(dbstatement != null)
        {
            try
            {
                my_dbaccess.close(dbstatement);
            }
            catch(Exception _ex) { }
        }
        return;
    }
}
