You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by db...@apache.org on 2016/05/02 18:12:03 UTC

[24/60] incubator-trafodion git commit: TRAFODION-1933 JDBC TYpe4 driver build scripts migrated to use maven instead of ant

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/72e17019/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4CallableStatement.java
----------------------------------------------------------------------
diff --git a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4CallableStatement.java b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4CallableStatement.java
new file mode 100644
index 0000000..2a3675e
--- /dev/null
+++ b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4CallableStatement.java
@@ -0,0 +1,2462 @@
+// @@@ START COPYRIGHT @@@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+// @@@ END COPYRIGHT @@@
+
+package org.trafodion.jdbc.t4;
+
+import java.io.InputStream;
+import java.io.Reader;
+import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import java.net.URL;
+import java.nio.charset.CharacterCodingException;
+import java.nio.charset.UnsupportedCharsetException;
+import java.sql.Array;
+import java.sql.Blob;
+import java.sql.Clob;
+import java.sql.DatabaseMetaData;
+import java.sql.Date;
+import java.sql.NClob;
+import java.sql.Ref;
+import java.sql.ResultSet;
+import java.sql.RowId;
+import java.sql.SQLException;
+import java.sql.SQLXML;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.sql.Types;
+import java.util.Calendar;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+
+public class TrafT4CallableStatement extends TrafT4PreparedStatement implements java.sql.CallableStatement {
+	public Array getArray(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getArray", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getArray");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		clearWarnings();
+		HPT4Messages.throwUnsupportedFeatureException(connection_.props_, connection_.getLocale(), "getArray()");
+		return null;
+	}
+
+	public Array getArray(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getArray", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getArray");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getArray(parameterIndex);
+	}
+
+	public BigDecimal getBigDecimal(int parameterIndex) throws SQLException {
+		BigDecimal retValue;
+		String data;
+
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getBigDecimal", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getBigDecimal");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		validateGetInvocation(parameterIndex);
+		inputDesc_[parameterIndex - 1].checkValidNumericConversion(connection_.getLocale());
+		// String returned may not be numeric in case of SQL_CHAR, SQL_VARCHAR
+		// and SQL_LONGVARCHAR
+		// fields. Hoping that java might throw invalid value exception
+		// For LOB Support - SB
+		// data = inputDesc_[parameterIndex-1].paramValue_;
+		data = getString(parameterIndex);
+		if (data == null) {
+			wasNull_ = true;
+			return null;
+		} else {
+			wasNull_ = false;
+			try {
+				retValue = new BigDecimal(data);
+			} catch (NumberFormatException e) {
+				throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(),
+						"invalid_cast_specification", null);
+			}
+			return retValue;
+		}
+	}
+
+	public BigDecimal getBigDecimal(int parameterIndex, int scale) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, scale);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getBigDecimal", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, scale);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getBigDecimal");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		BigDecimal retValue;
+
+		retValue = getBigDecimal(parameterIndex);
+		if (retValue != null) {
+			return retValue.setScale(scale);
+		} else {
+			return null;
+		}
+	}
+
+	public BigDecimal getBigDecimal(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getBigDecimal", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getBigDecimal");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getBigDecimal(parameterIndex);
+	}
+
+	public BigDecimal getBigDecimal(String parameterName, int scale) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, scale);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getBigDecimal", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, scale);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getBigDecimal");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getBigDecimal(parameterIndex, scale);
+	}
+
+
+	public boolean getBoolean(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getBoolean", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getBoolean");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		String data;
+
+		validateGetInvocation(parameterIndex);
+		inputDesc_[parameterIndex - 1].checkValidNumericConversion(connection_.getLocale());
+		// For LOB Support - SB
+		// data = inputDesc_[parameterIndex-1].paramValue_;
+		data = getString(parameterIndex);
+
+		if (data != null) {
+			wasNull_ = false;
+			return (!data.equals("0"));
+		} else {
+			wasNull_ = true;
+			return false;
+		}
+	}
+
+	public boolean getBoolean(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getBoolean", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getBoolean");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getBoolean(parameterIndex);
+	}
+
+	public byte getByte(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getByte", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getByte");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		String data;
+
+		validateGetInvocation(parameterIndex);
+		inputDesc_[parameterIndex - 1].checkValidNumericConversion(connection_.getLocale());
+		// For LOB Support - SB
+		// data = inputDesc_[parameterIndex-1].paramValue_;
+		data = getString(parameterIndex);
+
+		if (data != null) {
+			wasNull_ = false;
+			return Byte.parseByte(data);
+		} else {
+			wasNull_ = true;
+			return 0;
+		}
+	}
+
+	public byte getByte(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getByte", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getByte");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getByte(parameterIndex);
+	}
+
+	public byte[] getBytes(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getBytes", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getBytes");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int dataType;
+
+		validateGetInvocation(parameterIndex);
+		dataType = inputDesc_[parameterIndex - 1].dataType_;
+		if (dataType != Types.BINARY && dataType != Types.VARBINARY && dataType != Types.LONGVARBINARY) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(), "restricted_data_type",
+					null);
+		}
+		// BINARY, VARBINARY, LONGVARBINARY not supported
+		throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(), "datatype_not_supported",
+				null);
+	}
+
+	public byte[] getBytes(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getBytes", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getBytes");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getBytes(parameterIndex);
+	}
+
+	public Date getDate(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getDate", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getDate");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int dataType;
+		String dateStr;
+		Date retValue;
+
+		validateGetInvocation(parameterIndex);
+		dataType = inputDesc_[parameterIndex - 1].dataType_;
+		if (dataType != Types.CHAR && dataType != Types.VARCHAR && dataType != Types.LONGVARCHAR
+				&& dataType != Types.DATE && dataType != Types.TIMESTAMP) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(), "restricted_data_type",
+					null);
+		}
+		// For LOB Support - SB
+		// dateStr = inputDesc_[parameterIndex-1].paramValue_;
+		dateStr = getString(parameterIndex);
+
+		if (dateStr != null) {
+			wasNull_ = false;
+			try {
+				boolean convertDate = connection_.getDateConversion();
+
+				if (convertDate) {
+					String dt = TrafT4ResultSet.convertDateFormat(dateStr);
+					retValue = TrafT4ResultSet.valueOf(dt);
+				} else {
+					retValue = Date.valueOf(dateStr);
+				}
+			} catch (IllegalArgumentException e) {
+				throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(),
+						"invalid_cast_specification", null);
+			}
+			return retValue;
+		} else {
+			wasNull_ = true;
+			return null;
+		}
+	}
+
+	public Date getDate(int parameterIndex, Calendar cal) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, cal);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getDate", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, cal);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getDate");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		Date sqlDate;
+		java.util.Date d;
+
+		sqlDate = getDate(parameterIndex);
+		if (sqlDate != null) {
+			if (cal != null) {
+				cal.setTime(sqlDate);
+				d = cal.getTime();
+				sqlDate = new Date(d.getTime());
+			}
+			return sqlDate;
+		} else {
+			return (sqlDate);
+		}
+	}
+
+	public Date getDate(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getDate", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getDate");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getDate(parameterIndex);
+	}
+
+	public Date getDate(String parameterName, Calendar cal) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, cal);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getDate", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, cal);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getDate");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getDate(parameterIndex, cal);
+	}
+
+	public double getDouble(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getDouble", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getDouble");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		String data;
+
+		validateGetInvocation(parameterIndex);
+		inputDesc_[parameterIndex - 1].checkValidNumericConversion(connection_.getLocale());
+		// For LOB Support - SB
+		// data = inputDesc_[parameterIndex-1].paramValue_;
+		data = getString(parameterIndex);
+		if (data != null) {
+			wasNull_ = false;
+			return Double.parseDouble(data);
+		} else {
+			wasNull_ = true;
+			return 0;
+		}
+	}
+
+	public double getDouble(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getDouble", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getDouble");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getDouble(parameterIndex);
+	}
+
+	public float getFloat(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getFloat", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getFloat");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		String data;
+
+		validateGetInvocation(parameterIndex);
+		inputDesc_[parameterIndex - 1].checkValidNumericConversion(connection_.getLocale());
+		// For LOB Support - SB
+		// data = inputDesc_[parameterIndex-1].paramValue_;
+		data = getString(parameterIndex);
+
+		if (data != null) {
+			wasNull_ = false;
+			return Float.parseFloat(data);
+		} else {
+			wasNull_ = true;
+			return 0;
+		}
+	}
+
+	public float getFloat(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getFloat", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getFloat");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getFloat(parameterIndex);
+	}
+
+	public int getInt(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getInt", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getInt");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		String data;
+
+		validateGetInvocation(parameterIndex);
+		inputDesc_[parameterIndex - 1].checkValidNumericConversion(connection_.getLocale());
+		// For LOB Support - SB
+		// data = inputDesc_[parameterIndex-1].paramValue_;
+		data = getString(parameterIndex);
+		if (data != null) {
+			wasNull_ = false;
+			return Integer.parseInt(data);
+		} else {
+			wasNull_ = true;
+			return 0;
+		}
+	}
+
+	public int getInt(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getInt", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getInt");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getInt(parameterIndex);
+	}
+
+	public long getLong(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getLong", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getLong");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		String data;
+
+		validateGetInvocation(parameterIndex);
+		inputDesc_[parameterIndex - 1].checkValidNumericConversion(connection_.getLocale());
+		// For LOB Support - SB
+		// data = inputDesc_[parameterIndex-1].paramValue_;
+		data = getString(parameterIndex);
+		if (data != null) {
+			wasNull_ = false;
+			return Long.parseLong(data);
+		} else {
+			wasNull_ = true;
+			return 0;
+		}
+	}
+
+	public long getLong(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getLong", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getLong");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getLong(parameterIndex);
+	}
+
+	public Object getObject(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getObject", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getObject");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int dataType;
+		byte byteValue;
+		short shortValue;
+		int intValue;
+		long longValue;
+		float floatValue;
+		double doubleValue;
+		boolean booleanValue;
+
+		validateGetInvocation(parameterIndex);
+		dataType = inputDesc_[parameterIndex - 1].dataType_;
+		switch (dataType) {
+		case Types.TINYINT:
+			byteValue = getByte(parameterIndex);
+			if (wasNull_) {
+				return null;
+			} else {
+				return new Byte(byteValue);
+			}
+		case Types.SMALLINT:
+			intValue = getShort(parameterIndex);
+			if (wasNull_) {
+				return null;
+			} else {
+				return new Integer(intValue);
+			}
+		case Types.INTEGER:
+			intValue = getInt(parameterIndex);
+			if (wasNull_) {
+				return null;
+			} else {
+				return new Integer(intValue);
+			}
+		case Types.BIGINT:
+			longValue = getLong(parameterIndex);
+			if (wasNull_) {
+				return null;
+			} else {
+				return new Long(longValue);
+			}
+		case Types.REAL:
+			floatValue = getFloat(parameterIndex);
+			if (wasNull_) {
+				return null;
+			} else {
+				return new Float(floatValue);
+			}
+		case Types.FLOAT:
+		case Types.DOUBLE:
+			doubleValue = getDouble(parameterIndex);
+			if (wasNull_) {
+				return null;
+			} else {
+				return new Double(doubleValue);
+			}
+		case Types.DECIMAL:
+		case Types.NUMERIC:
+			return getBigDecimal(parameterIndex);
+		case Types.BIT:
+			booleanValue = getBoolean(parameterIndex);
+			if (wasNull_) {
+				return null;
+			} else {
+				return new Boolean(booleanValue);
+			}
+		case Types.CHAR:
+		case Types.VARCHAR:
+		case Types.LONGVARCHAR:
+			return getString(parameterIndex);
+		case Types.BINARY:
+		case Types.VARBINARY:
+		case Types.LONGVARBINARY:
+			return getBytes(parameterIndex);
+		case Types.DATE:
+			return getDate(parameterIndex);
+		case Types.TIME:
+			return getTime(parameterIndex);
+		case Types.TIMESTAMP:
+			return getTimestamp(parameterIndex);
+		default:
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(), "restricted_data_type",
+					null);
+		}
+	}
+
+	public Object getObject(int parameterIndex, Map map) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, map);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getObject", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, map);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getObject");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		HPT4Messages.throwUnsupportedFeatureException(connection_.props_, connection_.getLocale(), "getObject()");
+		return null;
+	}
+
+	public Object getObject(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getOjbect", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getOjbect");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getObject(parameterIndex);
+	}
+
+	public Object getObject(String parameterName, Map map) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, map);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getObject", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, map);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getObject");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getObject(parameterIndex, map);
+	}
+
+	public Ref getRef(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getRef", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getRef");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		HPT4Messages.throwUnsupportedFeatureException(connection_.props_, connection_.getLocale(), "getRef()");
+		return null;
+	}
+
+	public Ref getRef(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getRef", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getRef");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getRef(parameterIndex);
+	}
+
+	public short getShort(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getShort", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getShort");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		String data;
+
+		validateGetInvocation(parameterIndex);
+		inputDesc_[parameterIndex - 1].checkValidNumericConversion(connection_.getLocale());
+		// For LOB Support - SB
+		// data = inputDesc_[parameterIndex-1].paramValue_;
+		data = getString(parameterIndex);
+		if (data != null) {
+			wasNull_ = false;
+			return Short.parseShort(data);
+		} else {
+			wasNull_ = true;
+			return 0;
+		}
+	}
+
+	public short getShort(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getShort", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getShort");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getShort(parameterIndex);
+	}
+
+	public String getString(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getString", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getString");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		String data;
+		// For LOB Support - SB 10/8/2004
+		Object x;
+		int targetSqlType;
+		int sqlCharset;
+
+		validateGetInvocation(parameterIndex);
+
+		targetSqlType = inputDesc_[parameterIndex - 1].dataType_;
+		sqlCharset = inputDesc_[parameterIndex - 1].sqlCharset_;
+		x = inputDesc_[parameterIndex - 1].paramValue_;
+
+		if (x == null) {
+			wasNull_ = true;
+			data = null;
+		} else {
+			if (x instanceof byte[]) {
+				try {
+					if (this.ist_.ic_.getISOMapping() == InterfaceUtilities.SQLCHARSETCODE_ISO88591
+							&& !this.ist_.ic_.getEnforceISO()
+							&& sqlCharset == InterfaceUtilities.SQLCHARSETCODE_ISO88591)
+						data = new String((byte[]) x, ist_.ic_.t4props_.getISO88591());
+					else
+						data = this.ist_.ic_.decodeBytes((byte[]) x, sqlCharset);
+
+					wasNull_ = false;
+				} catch (CharacterCodingException e) {
+					SQLException se = HPT4Messages.createSQLException(this.connection_.ic_.t4props_, this.connection_
+							.getLocale(), "translation_of_parameter_failed", "getLocalString", e.getMessage());
+					se.initCause(e);
+					throw se;
+				} catch (UnsupportedCharsetException e) {
+					SQLException se = HPT4Messages.createSQLException(this.connection_.ic_.t4props_, this.connection_
+							.getLocale(), "unsupported_encoding", e.getCharsetName());
+					se.initCause(e);
+					throw se;
+				} catch (UnsupportedEncodingException e) {
+					SQLException se = HPT4Messages.createSQLException(this.connection_.ic_.t4props_, this.connection_
+							.getLocale(), "unsupported_encoding", e.getMessage());
+					se.initCause(e);
+					throw se;
+				}
+			} else {
+				data = x.toString();
+				wasNull_ = false;
+			}
+		}
+		return data;
+	}
+
+	public String getString(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getString", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getString");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getString(parameterIndex);
+	}
+
+	public Time getTime(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getTime", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getTime");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int dataType;
+		String timeStr;
+		Time retValue;
+
+		validateGetInvocation(parameterIndex);
+		dataType = inputDesc_[parameterIndex - 1].dataType_;
+		if (dataType != Types.CHAR && dataType != Types.VARCHAR && dataType != Types.LONGVARCHAR
+				&& dataType != Types.TIME && dataType != Types.TIMESTAMP) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(), "restricted_data_type",
+					null);
+		}
+
+		// For LOB Support - SB 10/8/2004
+		// timeStr = inputDesc_[parameterIndex-1].paramValue_;
+		timeStr = getString(parameterIndex);
+		if (timeStr != null) {
+			try {
+				wasNull_ = false;
+				retValue = Time.valueOf(timeStr);
+			} catch (IllegalArgumentException e) {
+				throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(),
+						"invalid_cast_specification", null);
+			}
+			return retValue;
+		} else {
+			wasNull_ = true;
+			return null;
+		}
+	}
+
+	public Time getTime(int parameterIndex, Calendar cal) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, cal);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getTime", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, cal);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getTime");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		Time sqlTime;
+		java.util.Date d;
+
+		sqlTime = getTime(parameterIndex);
+		if (sqlTime != null) {
+			if (cal != null) {
+				cal.setTime(sqlTime);
+				d = cal.getTime();
+				sqlTime = new Time(d.getTime());
+			}
+			return sqlTime;
+		} else {
+			return (sqlTime);
+		}
+	}
+
+	public Time getTime(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getTime", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getTime");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getTime(parameterIndex);
+	}
+
+	public Time getTime(String parameterName, Calendar cal) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, cal);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getTime", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, cal);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getTime");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getTime(parameterIndex, cal);
+	}
+
+	public Timestamp getTimestamp(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getTimestamp", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getTimestamp");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int dataType;
+		String timestampStr;
+		Timestamp retValue;
+
+		validateGetInvocation(parameterIndex);
+		dataType = inputDesc_[parameterIndex - 1].dataType_;
+		if (dataType != Types.CHAR && dataType != Types.VARCHAR && dataType != Types.LONGVARCHAR
+				&& dataType != Types.DATE && dataType != Types.TIMESTAMP) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(), "restricted_data_type",
+					null);
+		}
+
+		// For LOB Support - SB 10/8/2004
+		// timestampStr = inputDesc_[parameterIndex - 1].paramValue_;
+		timestampStr = getString(parameterIndex);
+		if (timestampStr != null) {
+			try {
+				wasNull_ = false;
+				retValue = Timestamp.valueOf(timestampStr);
+			} catch (IllegalArgumentException e) {
+				throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(),
+						"invalid_cast_specification", null);
+			}
+			return retValue;
+		} else {
+			wasNull_ = true;
+			return null;
+		}
+	}
+
+	public Timestamp getTimestamp(int parameterIndex, Calendar cal) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, cal);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getTimestamp", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, cal);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getTimestamp");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		Timestamp sqlTimestamp;
+		java.util.Date d;
+		int nanos;
+
+		sqlTimestamp = getTimestamp(parameterIndex);
+		if (sqlTimestamp != null) {
+			if (cal != null) {
+				nanos = sqlTimestamp.getNanos();
+				cal.setTime(sqlTimestamp);
+				d = cal.getTime();
+				sqlTimestamp = new Timestamp(d.getTime());
+				sqlTimestamp.setNanos(nanos);
+			}
+			return sqlTimestamp;
+		} else {
+			return (sqlTimestamp);
+		}
+	}
+
+	public Timestamp getTimestamp(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getTimestamp", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getTimestamp");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getTimestamp(parameterIndex);
+	}
+
+	public Timestamp getTimestamp(String parameterName, Calendar cal) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, cal);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getTimestamp", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, cal);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getTimestamp");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getTimestamp(parameterIndex, cal);
+	}
+
+	public URL getURL(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getURL", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getURL");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		clearWarnings();
+		HPT4Messages.throwUnsupportedFeatureException(connection_.props_, connection_.getLocale(), "getURL()");
+		return null;
+	}
+
+	public URL getURL(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "getURL", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("getURL");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		return getURL(parameterName);
+	}
+
+	public void registerOutParameter(int parameterIndex, int sqlType) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, sqlType);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "registerOutParameter", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, sqlType);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("registerOutParameter");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		// Ignoring sqlType and scale
+		validateGetInvocation(parameterIndex);
+		if (inputDesc_[parameterIndex - 1].paramMode_ == DatabaseMetaData.procedureColumnOut) {
+			inputDesc_[parameterIndex - 1].isValueSet_ = true;
+		}
+	}
+
+	public void registerOutParameter(int parameterIndex, int sqlType, int scale) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, sqlType, scale);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "registerOutParameter", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, sqlType, scale);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("registerOutParameter");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		// Ignoring sqlType and scale
+		validateGetInvocation(parameterIndex);
+		if (inputDesc_[parameterIndex - 1].paramMode_ == DatabaseMetaData.procedureColumnOut) {
+			inputDesc_[parameterIndex - 1].isValueSet_ = true;
+		}
+	}
+
+	public void registerOutParameter(int parameterIndex, int sqlType, String typeName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, sqlType, typeName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "registerOutParameter", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, sqlType, typeName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("registerOutParameter");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		// Ignoring sqlType and typeName
+		validateGetInvocation(parameterIndex);
+		if (inputDesc_[parameterIndex - 1].paramMode_ == DatabaseMetaData.procedureColumnOut) {
+			inputDesc_[parameterIndex - 1].isValueSet_ = true;
+		}
+	}
+
+	public void registerOutParameter(String parameterName, int sqlType) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, sqlType);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "registerOutParameter", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, sqlType);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("registerOutParameter");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		registerOutParameter(parameterIndex, sqlType);
+	}
+
+	public void registerOutParameter(String parameterName, int sqlType, int scale) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, sqlType, scale);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "registerOutParameter", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, sqlType, scale);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("registerOutParameter");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		registerOutParameter(parameterIndex, sqlType, scale);
+	}
+
+	public void registerOutParameter(String parameterName, int sqlType, String typeName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, sqlType, typeName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "registerOutParameter", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, sqlType, typeName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("registerOutParameter");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateGetInvocation(parameterName);
+		registerOutParameter(parameterIndex, sqlType, typeName);
+	}
+
+	public void setAsciiStream(String parameterName, InputStream x, int length) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, length);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setAsciiStream", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, length);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setAsciiStream");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setAsciiStream(parameterIndex, x, length);
+	}
+
+	public void setBigDecimal(String parameterName, BigDecimal x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setBigDecimal", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setBigDecimal");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setBigDecimal(parameterIndex, x);
+	}
+
+	public void setBinaryStream(String parameterName, InputStream x, int length) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, length);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setBinaryStream", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, length);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setBinaryStream");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setBinaryStream(parameterIndex, x, length);
+	}
+
+	public void setBoolean(String parameterName, boolean x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setBoolean", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setBoolean");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setBoolean(parameterIndex, x);
+	}
+
+	public void setByte(String parameterName, byte x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setByte", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setByte");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setByte(parameterIndex, x);
+	}
+
+	public void setBytes(String parameterName, byte[] x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setBytes", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setBytes");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setBytes(parameterIndex, x);
+	}
+
+	public void setCharacterStream(String parameterName, Reader reader, int length) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, reader, length);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setCharacterStream", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, reader, length);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setCharacterStream");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setCharacterStream(parameterIndex, reader, length);
+	}
+
+	public void setDate(String parameterName, Date x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setDate", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setDate");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setDate(parameterIndex, x);
+	}
+
+	public void setDate(String parameterName, Date x, Calendar cal) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, cal);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setDate", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, cal);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setDate");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setDate(parameterIndex, x, cal);
+	}
+
+	public void setDouble(String parameterName, double x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setDouble", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setDouble");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setDouble(parameterIndex, x);
+	}
+
+	public void setFloat(String parameterName, float x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setFloat", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setFloat");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setFloat(parameterIndex, x);
+	}
+
+	public void setInt(String parameterName, int x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setInt", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setInt");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setInt(parameterIndex, x);
+	}
+
+	public void setLong(String parameterName, long x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setLong", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setLong");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setLong(parameterIndex, x);
+	}
+
+	public void setNull(String parameterName, int sqlType) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, sqlType);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setNull", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, sqlType);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setNull");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setNull(parameterIndex, sqlType);
+	}
+
+	public void setNull(String parameterName, int sqlType, String typeName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, sqlType, typeName);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setNull", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, sqlType, typeName);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setNull");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setNull(parameterIndex, sqlType, typeName);
+	}
+
+	public void setObject(String parameterName, Object x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setObject", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setObject");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setObject(parameterIndex, x);
+	}
+
+	public void setObject(String parameterName, Object x, int targetSqlType) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, targetSqlType);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setObject", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, targetSqlType);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setObject");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setObject(parameterIndex, x, targetSqlType);
+	}
+
+	public void setObject(String parameterName, Object x, int targetSqlType, int scale) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, targetSqlType, scale);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setObject", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, targetSqlType, scale);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setObject");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setObject(parameterIndex, x, targetSqlType, scale);
+	}
+
+	public void setShort(String parameterName, short x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setShort", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setShort");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setShort(parameterIndex, x);
+	}
+
+	public void setString(String parameterName, String x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setString", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setString");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setString(parameterIndex, x);
+	}
+
+	public void setTime(String parameterName, Time x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setTime", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setTime");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setTime(parameterIndex, x);
+	}
+
+	public void setTime(String parameterName, Time x, Calendar cal) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, cal);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setTime", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, cal);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setTime");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setTime(parameterIndex, x, cal);
+	}
+
+	public void setTimestamp(String parameterName, Timestamp x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setTimestamp", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setTimestamp");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setTimestamp(parameterIndex, x);
+	}
+
+	public void setTimestamp(String parameterName, Timestamp x, Calendar cal) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, cal);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setTimestamp", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, cal);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setTimestamp");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setTimestamp(parameterIndex, x, cal);
+	}
+
+	public void setUnicodeStream(String parameterName, InputStream x, int length) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, length);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setUnicodeStream", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x, length);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setUnicodeStream");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setUnicodeStream(parameterIndex, x, length);
+	}
+
+	public void setURL(String parameterName, URL x) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "setURL", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName, x);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("setURL");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		int parameterIndex = validateSetInvocation(parameterName);
+		setURL(parameterIndex, x);
+	}
+
+	public boolean wasNull() throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "wasNull", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("wasNull");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		return wasNull_;
+	}
+
+	public boolean execute() throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "execute", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("execute");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		Object[] valueArray = null;
+		int inDescLength = 0;
+		if (inputDesc_ != null) {
+			valueArray = getValueArray();
+			inDescLength = inputDesc_.length;
+		}
+
+		validateExecuteInvocation();
+
+		valueArray = getValueArray();
+		ist_.execute(TRANSPORT.SRVR_API_SQLEXECUTE2, paramRowCount_, inDescLength, valueArray, queryTimeout_, null,
+				this);
+
+		// SPJ: 5-18-2007
+		// if (resultSet_[result_set_offset] != null)
+		if (resultSet_[result_set_offset] != null && resultSet_[result_set_offset].spj_rs_) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	public int[] executeBatch() throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "executeBatch", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("executeBatch");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		if ((batchCommands_ == null) || (paramRowCount_ < 1)) {
+			return new int[] {};
+		}
+
+		if (batchCommands_.isEmpty()) {
+			return new int[] {};
+		}
+
+		clearWarnings();
+		HPT4Messages.throwUnsupportedFeatureException(connection_.props_, connection_.getLocale(), "executeBatch()");
+		return null;
+	}
+
+	public ResultSet executeQuery() throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "executeQuery", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("executeQuery");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		Object[] valueArray = null;
+		int inDescLength = 0;
+		if (inputDesc_ != null) {
+			valueArray = getValueArray();
+			inDescLength = inputDesc_.length;
+		}
+
+		validateExecuteInvocation();
+
+		ist_.execute(TRANSPORT.SRVR_API_SQLEXECUTE2, paramRowCount_, inDescLength, valueArray, queryTimeout_, null,
+				this);
+
+		return resultSet_[result_set_offset];
+	}
+
+	public int executeUpdate() throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
+			connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4CallableStatement", "executeUpdate", "", p);
+		}
+		if (connection_.props_.getLogWriter() != null) {
+			LogRecord lr = new LogRecord(Level.FINE, "");
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
+			lr.setParameters(p);
+			lr.setSourceClassName("TrafT4CallableStatement");
+			lr.setSourceMethodName("executeUpdate");
+			T4LogFormatter lf = new T4LogFormatter();
+			String temp = lf.format(lr);
+			connection_.props_.getLogWriter().println(temp);
+		}
+		Object[] valueArray = null;
+		int inDescLength = 0;
+		if (inputDesc_ != null) {
+			valueArray = getValueArray();
+			inDescLength = inputDesc_.length;
+		}
+
+		validateExecuteInvocation();
+		valueArray = getValueArray();
+		ist_.execute(TRANSPORT.SRVR_API_SQLEXECUTE2, paramRowCount_, inDescLength, valueArray, queryTimeout_, null,
+				this);
+
+		return (1);
+	}
+
+	// Other methods
+	protected void validateGetInvocation(int parameterIndex) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINER) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex);
+			connection_.props_.t4Logger_.logp(Level.FINER, "TrafT4CallableStatement", "validateGetInvocation", "", p);
+		}
+		clearWarnings();
+		// connection_.getServerHandle().isConnectionOpen();
+		connection_.isConnectionOpen();
+		if (isClosed_) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(), "invalid_statement",
+					null);
+		}
+		if (inputDesc_ == null) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(),
+					"not_a_output_parameter", null);
+		}
+		if (parameterIndex < 1 || parameterIndex > inputDesc_.length) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(),
+					"invalid_parameter_index", null);
+		}
+		if (inputDesc_[parameterIndex - 1].paramMode_ != DatabaseMetaData.procedureColumnInOut
+				&& inputDesc_[parameterIndex - 1].paramMode_ != DatabaseMetaData.procedureColumnOut) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(),
+					"not_a_output_parameter", null);
+		}
+	}
+
+	protected int validateGetInvocation(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINER) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINER, "TrafT4CallableStatement", "validateGetInvocation", "", p);
+		}
+		int i;
+
+		if (isClosed_) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(), "invalid_statement",
+					null);
+		}
+		if (inputDesc_ == null) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(),
+					"not_a_output_parameter", null);
+		}
+		for (i = 0; i < inputDesc_.length; i++) {
+			if (parameterName.equalsIgnoreCase(inputDesc_[i].name_)) {
+				return i + 1;
+			}
+		}
+		throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(), "invalid_parameter_name",
+				null);
+	}
+
+	private int validateSetInvocation(String parameterName) throws SQLException {
+		if (connection_.props_.t4Logger_.isLoggable(Level.FINER) == true) {
+			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterName);
+			connection_.props_.t4Logger_.logp(Level.FINER, "TrafT4CallableStatement", "validateSetInvocation", "", p);
+		}
+		int i;
+
+		if (isClosed_) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(), "stmt_closed", null);
+		}
+		if (inputDesc_ == null) {
+			throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(),
+					"invalid_parameter_index", null);
+		}
+		for (i = 0; i < inputDesc_.length; i++) {
+			if (parameterName.equalsIgnoreCase(inputDesc_[i].name_)) {
+				return i + 1;
+			}
+		}
+		throw HPT4Messages.createSQLException(connection_.props_, connection_.getLocale(), "invalid_parameter_name",
+				null);
+	}
+
+	void setExecuteCallOutputs(Object[] outputValues

<TRUNCATED>