home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Event;
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.FilterInputStream;
- import java.io.OutputStream;
- import java.io.PipedInputStream;
- import java.io.PipedOutputStream;
- import java.io.StringBufferInputStream;
- import java.net.InetAddress;
- import java.net.Socket;
- import java.net.URL;
- import java.net.URLConnection;
- import java.net.URLEncoder;
- import java.util.Date;
- import java.util.Hashtable;
- import java.util.Properties;
- import java.util.StringTokenizer;
- import java.util.Vector;
-
- public class JDPJagg implements Runnable {
- static final boolean JAGG_REL_TRIAL = true;
- static final boolean JAGG_REL_INTERNAL = false;
- static final boolean JAGG_REL_EXTERNAL = false;
- static boolean activated;
- public static boolean useJaggServer = true;
- public boolean useJdbcDirect;
- static boolean useLocalJaggServer;
- private static String VERSION = new String("JAGG-1.0-01MAR96");
- static String version = "";
- private static boolean DEBUG;
- private static boolean LSQLflag = true;
- private String SERV;
- private String JaggSERV;
- private String prevJaggSERV;
- private InetAddress thisInetAddress;
- static JaggServer jaggServer;
- static String jaggServerPath;
- private int serverPort = 4899;
- private static int defaultPort = 4899;
- private Socket server;
- private BufferedOutputStream serverRequest;
- private BufferedInputStream serverResponse;
- private PipedOutputStream serverOut;
- private boolean keepConnectionOpenAlways;
- private boolean keepConnectionOpen;
- private boolean requestInProgress;
- private boolean dropConnectionThreadReady;
- private int dropAfterSeconds;
- private Thread thisThread;
- // $FF: renamed from: NL java.lang.String
- static String field_0 = "\u0002";
- static String EOT = "\u0001";
- private int rowCount;
- private int columnCount;
- private String lastError;
- private long sqlCounter;
- static final String MSSQLSERVER = new String("MICROSOFT SQL SERVER");
- static final String SYBASE = new String("SYBASE");
- static final String SYBASE10 = new String("SQL SERVER");
- static final String ACCESS = new String("ACCESS");
- static final String FOXPRO = new String("FOXPRO");
- static final String VFOXPRO = new String("VISUAL FOXPRO");
- static final String ORACLE = new String("ORACLE");
- static final String POLITE = new String("POLITE");
- static final String INFORMIX = new String("INFORMIX");
- static final String LOTUS = new String("LOTUS");
- static final String ANYWHERE = new String("ANYWHERE");
- static final String DB2 = new String("DB2");
- static final String SOLIDSERVER = new String("SOLID SERVER");
- static final String INGRES = new String("INGRES");
- static final String RDB = new String("RDB");
- static final String ADABAS = new String("ADABAS");
- static final String POSTGRES = new String("POSTGRES");
- static final String CLOUDSCAPE = new String("CLOUDSCAPE");
- private String FCTN = "";
- private String FCTNP = "";
- private String DSN = "";
- private String CSTR = "";
- private String OUT = "zero1";
- private String SEP = "\u0003";
- private String MRW = "";
- private String UID = "";
- private String PWD = "";
- // $FF: renamed from: DB java.lang.String
- private String field_1 = "";
- private String WSID = "";
- private String SQL = "";
- // $FF: renamed from: K java.lang.String
- private String field_2;
- private String LSQL = "";
- private String TOUT = "";
- private String DLOG = "";
- private String NULL = "space";
- private String jdbcDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
- private String jdbcPrefix = "jdbc:odbc:";
- private String jdbcSuffix = "";
- int[] insertType;
- Vector insertData;
- private String pFCTN;
- private String pFCTNP;
- private String pDSN;
- private String pCSTR;
- private String pOUT;
- private String pSEP;
- private String pMRW;
- private String pUID;
- private String pPWD;
- private String pDB;
- private String pWSID;
- private String pSQL;
- // $FF: renamed from: pK java.lang.String
- private String field_3;
- private String pLSQL;
- private String pTOUT;
- private String pDLOG;
- private String pNULL;
- private URLEncoder URLEnc;
- private char[] lineBuffer;
- JDPStatusMessage mainmsg;
- static String suserid = "-1";
- static String jdpsystem = "";
- JDPJdbcDirect jdbcDirect;
- static String[] DSdatasource;
- static String[] DSjdbcdriver;
- static String[] DSjdbcprefix;
- static String[] DSjdbcsuffix;
- static String[] DSconnectstring;
- static String[] DSsourcetype;
- static String[] DSjdbcdirect;
- private int[] columnType;
-
- public void setFCTN(String var1) {
- if (var1.equals("checkVersion")) {
- this.FCTN = "OK";
- } else if (var1.equals("activated")) {
- activated = true;
- } else if (var1.equals("version")) {
- version = this.FCTNP;
- } else {
- this.pFCTN = URLEncoder.encode(this.FCTN = var1);
- }
- }
-
- public String getFCTN() {
- return this.FCTN;
- }
-
- public void loadJdbcSettings(String var1) {
- if (DSdatasource != null) {
- if (DSjdbcdriver == null) {
- this.loadJdbcDataSources();
- }
-
- for(int var2 = 0; var2 < DSdatasource.length; ++var2) {
- if (DSdatasource[var2].equals(var1)) {
- this.setJdbcDriver(DSjdbcdriver[var2]);
- this.setJdbcPrefix(DSjdbcprefix[var2]);
- this.setJdbcSuffix(DSjdbcsuffix[var2]);
- this.setCSTR(DSconnectstring[var2]);
- this.setJdbcDirect(DSjdbcdirect[var2].equals("Yes"));
- }
- }
-
- }
- }
-
- private String formatRequest() {
- StringBuffer var1 = new StringBuffer(8192);
- var1.setLength(0);
- var1.append("SERV=" + this.JaggSERV + field_0);
- if (this.DSN.length() > 0) {
- var1.append("DSN=" + this.DSN + field_0);
- }
-
- if (this.CSTR.length() > 0) {
- var1.append("CSTR=" + this.CSTR + field_0);
- }
-
- if (this.OUT.length() > 0) {
- var1.append("OUT=" + this.OUT + field_0);
- }
-
- if (this.MRW.length() > 0) {
- var1.append("MRW=" + this.MRW + field_0);
- }
-
- if (this.FCTN.length() > 0) {
- var1.append("FCTN=" + this.FCTN + field_0);
- }
-
- if (this.FCTNP.length() > 0) {
- var1.append("FCTNP=" + this.FCTNP + field_0);
- }
-
- if (this.field_2.length() > 0) {
- var1.append("K=" + this.field_2 + field_0);
- }
-
- if (this.SEP.length() > 0) {
- var1.append("SEP=" + this.SEP + field_0);
- }
-
- if (this.UID.length() > 0) {
- var1.append("UID=" + this.UID + field_0);
- }
-
- if (this.PWD.length() > 0) {
- var1.append("PWD=" + this.PWD + field_0);
- }
-
- if (this.field_1.length() > 0) {
- var1.append("DB=" + this.field_1 + field_0);
- }
-
- if (this.WSID.length() > 0) {
- var1.append("WSID=" + this.WSID + field_0);
- }
-
- if (this.LSQL.length() > 0 && LSQLflag) {
- var1.append("LSQL=" + this.LSQL + field_0);
- }
-
- if (this.TOUT.length() > 0) {
- var1.append("TOUT=" + this.TOUT + field_0);
- }
-
- if (this.DLOG.length() > 0) {
- var1.append("DLOG=" + this.DLOG + field_0);
- }
-
- if (this.NULL.length() > 0) {
- var1.append("NULL=" + this.NULL + field_0);
- }
-
- var1.append("USER=" + suserid + field_0);
- var1.append("SYS=" + jdpsystem + field_0);
- if (this.jdbcDriver.length() > 0) {
- var1.append("jdbcDriver=" + this.jdbcDriver + field_0);
- }
-
- if (this.jdbcPrefix.length() > 0) {
- var1.append("jdbcPrefix=" + this.jdbcPrefix + field_0);
- }
-
- if (this.jdbcSuffix.length() > 0) {
- var1.append("jdbcSuffix=" + this.jdbcSuffix + field_0);
- }
-
- if (this.SQL.length() > 0) {
- var1.append("SQL=" + this.SQL + field_0);
- }
-
- return var1.toString();
- }
-
- public int closeConnection() {
- this.setFCTN("CloseConnection");
- this.setFCTNP("");
- Vector var1 = new Vector();
- int var2 = this.execSQL("", var1);
- this.setFCTN("");
- this.setFCTNP("");
- return var2;
- }
-
- private void setSQL(String var1) {
- this.SQL = var1;
- if (!useJaggServer) {
- this.pSQL = URLEncoder.encode(var1);
- }
-
- }
-
- private String getSQL() {
- return this.SQL;
- }
-
- private void setOUT(String var1) {
- this.pOUT = URLEncoder.encode(this.OUT = var1);
- }
-
- private String getOUT() {
- return this.OUT;
- }
-
- public void setCSTR(String var1) {
- if (var1 != null) {
- this.pCSTR = URLEncoder.encode(this.CSTR = var1);
- }
-
- }
-
- public String getCSTR() {
- return this.CSTR;
- }
-
- public synchronized void setRequestStatus(boolean var1) {
- this.requestInProgress = var1;
- }
-
- public void setJdbcDriver(String var1) {
- if (var1 != null) {
- this.jdbcDriver = var1.trim();
- } else {
- this.jdbcDriver = "";
- }
- }
-
- public String getJdbcDriver() {
- return this.jdbcDriver;
- }
-
- public void setUID(String var1) {
- if (var1 != null) {
- this.pUID = URLEncoder.encode(this.UID = var1);
- }
- }
-
- public String getUID() {
- return this.UID;
- }
-
- public static int getDefaultPort() {
- return defaultPort;
- }
-
- public void setPort(int var1) {
- this.serverPort = var1;
- }
-
- public int getPort() {
- return this.serverPort;
- }
-
- public static void setDefaultPort(int var0) {
- defaultPort = var0;
- }
-
- public void setMRW(String var1) {
- this.pMRW = URLEncoder.encode(this.MRW = var1);
- }
-
- Object invoke(String var1, String var2) {
- String[] var3 = new String[0];
- String[] var4 = new String[0];
- return this.invoke(var1, var2, var3, var4);
- }
-
- Object invoke(String var1, String var2, String[] var3, String[] var4) {
- return this.invoke(var1, var2, var3, var4, (String)null, 0);
- }
-
- Object invoke(String var1, String var2, String[] var3, String[] var4, String var5, int var6) {
- Properties var7 = new Properties();
- if (var1 != null) {
- ((Hashtable)var7).put("objectName", var1);
- }
-
- if (var5 != null) {
- ((Hashtable)var7).put("jobName", var5);
- }
-
- if (var6 != 0) {
- ((Hashtable)var7).put("jobNumber", Integer.toString(var6));
- }
-
- ((Hashtable)var7).put("methodName", var2);
- ((Hashtable)var7).put("parametersSize", Integer.toString(var4.length));
-
- for(int var8 = 0; var8 < var4.length; ++var8) {
- ((Hashtable)var7).put("paramTypes" + Integer.toString(var8), var3[var8]);
- if (var4[var8] != null) {
- ((Hashtable)var7).put("parameters" + Integer.toString(var8), var4[var8]);
- }
- }
-
- ByteArrayOutputStream var17 = new ByteArrayOutputStream();
- var7.save((OutputStream)var17, "parameters");
- String var9 = var17.toString();
- Vector var10 = new Vector();
- this.setFCTN("Invoke");
- this.setFCTNP("");
- int var11 = this.execSQL(var9, var10);
- if (var11 < 0) {
- System.out.println(this.getError());
- }
-
- this.setFCTN("");
- var7 = new Properties();
- if (var10.size() > 0) {
- StringBufferInputStream var12 = new StringBufferInputStream((String)var10.elementAt(0));
-
- try {
- var7.load(var12);
- } catch (Exception var15) {
- ((Throwable)var15).printStackTrace();
- }
-
- return JDPUtils.createObject(JDPUtils.getClass((String)((Hashtable)var7).get("returnType")), (String)((Hashtable)var7).get("returnVal"));
- } else {
- return null;
- }
- }
-
- private String readData(BufferedInputStream var1, BufferedInputStream var2) throws Exception {
- char[] var3 = this.lineBuffer;
- if (var3 == null) {
- var3 = this.lineBuffer = new char[128];
- }
-
- int var4 = var3.length;
- int var5 = 0;
- if (!this.FCTN.equals("ReadFromFile") && !this.FCTN.equals("GetStockData")) {
- while(true) {
- int var12;
- if (useJaggServer) {
- var12 = var2.read();
- } else {
- var12 = var1.read();
- }
-
- switch (var12) {
- case -1:
- case 2:
- if (var12 == -1 && var5 == 0) {
- return null;
- }
-
- if (var5 == 0) {
- return "";
- }
-
- return String.copyValueOf(var3, 0, var5);
- case 0:
- default:
- --var4;
- if (var4 < 0) {
- var3 = new char[var5 + 128];
- var4 = var3.length - var5 - 1;
- System.arraycopy(this.lineBuffer, 0, var3, 0, var5);
- this.lineBuffer = var3;
- }
-
- var3[var5++] = (char)var12;
- case 1:
- }
- }
- } else {
- var3 = new char[20000];
- var4 = var3.length;
- byte var7 = 0;
- int var6;
- if (useJaggServer) {
- var7 = 7;
- var6 = var2.read();
- } else {
- if (this.FCTN.equals("GetStockData")) {
- var7 = 7;
- }
-
- var6 = var1.read();
- }
-
- String var8 = "";
-
- while(var6 != -1 && !var8.equals("JAGGEOF")) {
- --var4;
- if (var4 < 0) {
- this.lineBuffer = var3;
- var3 = new char[var5 + 20000];
- var4 = var3.length - var5 - 1;
- System.arraycopy(this.lineBuffer, 0, var3, 0, var5);
- this.lineBuffer = null;
- }
-
- var3[var5++] = (char)var6;
- if (useJaggServer) {
- if (var5 >= 7) {
- var8 = String.copyValueOf(var3, var5 - var7, var7);
- }
-
- if (!var8.equals("JAGGEOF")) {
- var6 = var2.read();
- }
- } else {
- if (var5 >= 7) {
- var8 = String.copyValueOf(var3, var5 - var7, var7);
- }
-
- if (!var8.equals("JAGGEOF")) {
- var6 = var1.read();
- }
- }
- }
-
- if (var5 == var7) {
- return null;
- } else {
- if (var5 < 100) {
- String var9 = String.copyValueOf(var3, 0, var5 - var7);
- if (var9.indexOf("FILE_READ_FAILED") >= 0) {
- return null;
- }
- }
-
- return String.copyValueOf(var3, 0, var5 - var7);
- }
- }
- }
-
- public String getMRW() {
- return this.MRW;
- }
-
- public void setDB(String var1) {
- this.pDB = URLEncoder.encode(this.field_1 = var1);
- }
-
- public String getDB() {
- return this.field_1;
- }
-
- private void setK(String var1) {
- this.field_3 = URLEncoder.encode(this.field_2 = var1);
- }
-
- private String getK() {
- return this.field_2;
- }
-
- public void setJdbcPrefix(String var1) {
- if (var1 != null) {
- this.jdbcPrefix = var1.trim();
- } else {
- this.jdbcPrefix = "";
- }
- }
-
- public String getJdbcPrefix() {
- return this.jdbcPrefix;
- }
-
- public int getColumnType(int var1) {
- return this.columnType != null && var1 < this.columnType.length ? this.columnType[var1] : -1;
- }
-
- public JDPJagg(String var1) {
- this.setServer(var1);
- this.setPort(defaultPort);
- this.setFCTN(this.FCTN);
- this.setFCTNP(this.FCTNP);
- this.setDSN(this.DSN);
- this.setCSTR(this.CSTR);
- this.setOUT(this.OUT);
- this.setSEP(this.SEP);
- this.setMRW(this.MRW);
- this.setUID(this.UID);
- this.setPWD(this.PWD);
- this.setDB(this.field_1);
- this.setWSID(this.WSID);
- this.field_2 = "JDP09betaERW9Q";
- String var10001 = this.field_2;
- this.field_2 = var10001 + version;
- this.setK(this.field_2);
- this.setRowCount(0);
- this.setColumnCount(0);
- this.setError("");
- this.setLSQL(this.LSQL);
- this.setTOUT(this.TOUT);
- this.setDLOG(this.DLOG);
- this.setNULL(this.NULL);
- if (useJaggServer) {
- this.setDropConnectionAfter(30);
- }
-
- }
-
- void startJaggServerCxn(BufferedOutputStream var1, BufferedInputStream var2) {
- new JaggServerCxn(jaggServer, var1, var2, 0L);
- }
-
- public void setDropConnectionAfter(int var1) {
- this.dropAfterSeconds = var1;
- this.dropConnectionThreadReady = true;
- this.keepConnectionOpen = true;
- }
-
- int processDirectConnection(Vector var1) {
- int var2 = 0;
- if (this.jdbcDirect == null) {
- this.jdbcDirect = new JDPJdbcDirect();
- if (this.jdbcDriver.equals("")) {
- this.jdbcDirect.setJdbcDriver("sun.jdbc.odbc.JdbcOdbcDriver");
- } else {
- this.jdbcDirect.setJdbcDriver(this.jdbcDriver);
- }
-
- if (this.jdbcPrefix.equals("")) {
- this.jdbcDirect.setJdbcPrefix("jdbc:odbc:");
- } else {
- this.jdbcDirect.setJdbcPrefix(this.jdbcPrefix);
- }
-
- if (this.jdbcSuffix.equals("")) {
- this.jdbcDirect.setJdbcSuffix(this.DSN);
- } else {
- this.jdbcDirect.setJdbcSuffix(this.jdbcSuffix);
- }
-
- this.jdbcDirect.setUID(this.UID);
- this.jdbcDirect.setPWD(this.PWD);
- this.jdbcDirect.setCSTR(this.CSTR);
- }
-
- if (!this.getMRW().equals("")) {
- this.jdbcDirect.setMaxRows(Integer.parseInt(this.getMRW()));
- }
-
- if (!this.getTOUT().equals("")) {
- this.jdbcDirect.setTimeOut(Integer.parseInt(this.getTOUT()));
- }
-
- var2 = this.jdbcDirect.execSQL(this.SQL.toString(), var1);
- this.setColumnCount(this.jdbcDirect.getColumnCount());
- this.setRowCount(this.jdbcDirect.getRowCount());
- return var2;
- }
-
- public void setJdbcDirect(boolean var1) {
- this.useJdbcDirect = var1;
- }
-
- public void run() {
- this.dropConnectionThreadReady = false;
-
- try {
- Thread.sleep((long)(this.dropAfterSeconds * 1000));
- } catch (Exception var1) {
- }
-
- if (!this.keepConnectionOpenAlways && !this.dropConnectionThreadReady) {
- this.keepConnectionOpen = false;
- if (!this.requestInProgress) {
- this.closeConnections((BufferedInputStream)null);
- }
- }
-
- this.thisThread = null;
- }
-
- public boolean sendEventToClient(String var1, String var2, Event var3) {
- String var4 = this.getServer();
- int var5 = this.getPort();
- if (var1 == null) {
- return false;
- } else {
- this.setServer(var1);
- this.setPort(4900);
- this.setKeepConnectionOpen(false);
- Properties var6 = new Properties();
- ((Hashtable)var6).put("requestName", var2);
- ((Hashtable)var6).put("requestEventId", Integer.toString(var3.id));
- if (var3.arg instanceof String) {
- ((Hashtable)var6).put("requestArg", var3.arg);
- }
-
- ByteArrayOutputStream var7 = new ByteArrayOutputStream();
- var6.save((OutputStream)var7, "parameters");
- String var8 = var7.toString();
- Vector var9 = new Vector();
- this.setFCTN("sendEventToClient");
- int var10 = this.execSQL(var8, var9);
- this.setFCTN("");
- this.setServer(var4);
- this.setPort(var5);
- return var10 >= 0;
- }
- }
-
- private void setError(String var1) {
- if (var1.startsWith("JAGG_ERROR:")) {
- this.lastError = var1.substring(11);
- } else {
- this.lastError = var1;
- }
- }
-
- public String getError() {
- return this.lastError;
- }
-
- void loadSettings(Object var1) {
- this.setJdbcDriver("");
- this.setJdbcPrefix("");
- this.setJdbcSuffix("");
- this.setJdbcDirect(false);
- this.setUID("");
- this.setPWD("");
- if (var1 instanceof JDPUser) {
- JDPUser var2 = (JDPUser)var1;
- if (useJaggServer) {
- this.setJdbcDriver(var2.jdbcDriver);
- this.setJdbcPrefix(var2.jdbcPrefix);
- this.setJdbcSuffix(var2.jdbcSuffix);
- if (var2.jdbcDirect != null) {
- this.setJdbcDirect(var2.jdbcDirect.equals("Yes"));
- }
- }
-
- this.setUID(var2.jdbcUserid);
- this.setPWD(var2.jdbcPassword);
- this.setDSN(var2.jaggDSN);
- this.setCSTR(var2.jaggCSTR);
- } else {
- this.checkSelectDSN(var1);
- }
- }
-
- public void setServer(String var1) {
- this.SERV = var1;
- int var2 = var1.indexOf("http://");
- if (var2 >= 0) {
- int var6 = var1.substring(var2 + 7).indexOf("/");
- this.JaggSERV = var1.substring(var2 + 7, var2 + 7 + var6);
- } else {
- var2 = var1.indexOf("https://");
- if (var2 >= 0) {
- int var5 = var1.substring(var2 + 8).indexOf("/");
- this.JaggSERV = var1.substring(var2 + 8, var2 + 8 + var5);
- } else {
- int var3 = var1.indexOf("/");
- if (var3 > 0) {
- this.JaggSERV = var1.substring(0, var3);
- } else {
- this.JaggSERV = var1;
- }
- }
- }
- }
-
- public String getServer() {
- return this.SERV;
- }
-
- public void setFCTNP(String var1) {
- this.pFCTNP = URLEncoder.encode(this.FCTNP = var1);
- }
-
- public String getFCTNP() {
- return this.FCTNP;
- }
-
- public void setPWD(String var1) {
- if (var1 != null) {
- this.pPWD = URLEncoder.encode(this.PWD = var1);
- }
- }
-
- public String getPWD() {
- return this.PWD;
- }
-
- void setSystem(String var1) {
- jdpsystem = var1;
- }
-
- private String toURL() {
- if (this.pDSN.equals("")) {
- this.setDSN(this.jdbcSuffix);
- }
-
- this.CSTR = "DSN=" + this.DSN + ";UID=" + this.UID + ";PWD=" + this.PWD + ";";
- this.setCSTR(this.CSTR);
- String var1 = this.SERV + "?DSN=" + this.pDSN + "&CSTR=" + this.pCSTR + "&OUT=" + this.pOUT + "&MRW=" + this.pMRW;
- if (this.pFCTN.compareTo("") != 0) {
- var1 = var1 + "&FCTN=" + this.pFCTN;
- }
-
- if (this.pFCTNP.compareTo("") != 0) {
- var1 = var1 + "&FCTNP=" + this.pFCTNP;
- }
-
- if (this.field_3.compareTo("") != 0) {
- var1 = var1 + "&K=" + this.field_3;
- }
-
- if (this.pSEP.compareTo("") != 0) {
- var1 = var1 + "&SEP=" + this.pSEP;
- }
-
- if (this.pUID.compareTo("") != 0) {
- var1 = var1 + "&UID=" + this.pUID;
- }
-
- if (this.pPWD.compareTo("") != 0) {
- var1 = var1 + "&PWD=" + this.pPWD;
- }
-
- if (this.pDB.compareTo("") != 0) {
- var1 = var1 + "&DB=" + this.pDB;
- }
-
- if (this.pWSID.compareTo("") != 0) {
- var1 = var1 + "&WSID=" + this.pWSID;
- }
-
- if (this.pLSQL.compareTo("") != 0 && LSQLflag) {
- var1 = var1 + "&LSQL=" + this.pLSQL;
- }
-
- if (this.pTOUT.compareTo("") != 0) {
- var1 = var1 + "&TOUT=" + this.pTOUT;
- }
-
- if (this.pDLOG.compareTo("") != 0) {
- var1 = var1 + "&DLOG=" + this.pDLOG;
- }
-
- if (this.pNULL.compareTo("") != 0) {
- var1 = var1 + "&NULL=" + this.pNULL;
- }
-
- this.sqlCounter = (new Date()).getTime();
- var1 = var1 + "&SCNTR=" + Long.toString((long)(this.sqlCounter++));
- var1 = var1 + "&SQL=" + this.pSQL;
- return var1;
- }
-
- private synchronized void closeConnections(BufferedInputStream var1) {
- this.requestInProgress = false;
-
- try {
- if (var1 != null) {
- ((FilterInputStream)var1).close();
- }
-
- if (useJaggServer && this.serverRequest != null && !this.keepConnectionOpen) {
- String var2 = "5 ";
- char[] var3 = new char[10];
- var2.getChars(0, 10, var3, 0);
- int var4 = 0;
-
- do {
- this.serverRequest.write(var3[var4]);
- ++var4;
- } while(var4 < 10);
-
- this.serverRequest.flush();
- String var8 = "Close";
- var3 = new char[5];
- var8.getChars(0, 5, var3, 0);
- int var5 = 0;
-
- do {
- this.serverRequest.write(var3[var5]);
- ++var5;
- } while(var5 < 5);
-
- this.serverRequest.flush();
- if (this.server != null) {
- this.server.close();
- }
-
- this.serverRequest = null;
- this.serverResponse = null;
- this.server = null;
- return;
- }
- } catch (Exception var6) {
- this.server = null;
- this.serverRequest = null;
- }
-
- }
-
- void loadJdbcDataSources() {
- if (!this.getDSN().equals("")) {
- String var1 = "SELECT * FROM JDPDataSrc";
- Vector var2 = new Vector();
- int var3 = this.execSQL(var1, var2);
- if (var3 >= 0) {
- var3 = var2.size();
- DSdatasource = new String[var3];
- DSjdbcdriver = new String[var3];
- DSjdbcprefix = new String[var3];
- DSjdbcsuffix = new String[var3];
- DSconnectstring = new String[var3];
- DSsourcetype = new String[var3];
- DSjdbcdirect = new String[var3];
-
- for(int var4 = 0; var4 < var2.size(); ++var4) {
- StringTokenizer var5 = new StringTokenizer((String)var2.elementAt(var4), this.getSEP());
- DSdatasource[var4] = var5.nextToken().trim();
- if (var5.countTokens() > 2) {
- DSjdbcdriver[var4] = var5.nextToken().trim();
- DSjdbcprefix[var4] = var5.nextToken().trim();
- DSjdbcsuffix[var4] = var5.nextToken().trim();
- DSconnectstring[var4] = var5.nextToken().trim();
- DSsourcetype[var4] = var5.nextToken().trim();
- DSjdbcdirect[var4] = var5.nextToken().trim();
- } else {
- DSjdbcdriver[var4] = "";
- DSjdbcprefix[var4] = "";
- DSjdbcsuffix[var4] = "";
- DSconnectstring[var4] = "";
- DSsourcetype[var4] = "";
- DSjdbcdirect[var4] = "";
- }
- }
-
- }
- }
- }
-
- void remoteJob(String var1, JDPStatusMessage var2, Object var3) {
- this.execSQL(var1, (Vector)null);
-
- try {
- for(String var4 = this.readData((BufferedInputStream)null, this.serverResponse); var4 != null; var4 = this.readData((BufferedInputStream)null, this.serverResponse)) {
- StringTokenizer var6 = new StringTokenizer(var4, "\u0003");
-
- while(var6.hasMoreTokens()) {
- String var5 = var6.nextToken().trim();
-
- try {
- int var7 = Integer.parseInt(var5);
- var2.setStatusMsg(var6.nextToken().trim(), var7);
- } catch (Exception var9) {
- if (var6.hasMoreTokens() && var3 != null && var3 instanceof JDPClassLayout) {
- ((JDPClassLayout)var3).parameters.put(var5, var6.nextToken().trim());
- ((JDPClassLayout)var3).refresh();
- }
- }
- }
- }
-
- } catch (Exception var10) {
- ((Throwable)var10).printStackTrace();
- }
- }
-
- public void setWSID(String var1) {
- this.pWSID = URLEncoder.encode(this.WSID = var1);
- }
-
- public String getWSID() {
- return this.WSID;
- }
-
- void sendData(BufferedOutputStream var1) throws Exception {
- for(int var4 = 0; var4 < this.insertType.length; ++var4) {
- String var2 = Integer.toString(this.insertType[var4]);
-
- for(int var5 = 0; var5 < var2.length(); ++var5) {
- var1.write(var2.charAt(var5));
- }
-
- var1.write(4);
- }
-
- var1.write(3);
-
- for(int var8 = 0; var8 < this.insertData.size(); ++var8) {
- String[] var3 = (String[])this.insertData.elementAt(var8);
-
- for(int var9 = 0; var9 < var3.length; ++var9) {
- String var7 = var3[var9];
-
- for(int var6 = 0; var6 < var7.length(); ++var6) {
- var1.write(var7.charAt(var6));
- }
-
- var1.write(4);
- }
-
- var1.write(3);
- }
-
- }
-
- public static void cleanUp() {
- }
-
- public void setSEP(String var1) {
- this.pSEP = URLEncoder.encode(this.SEP = var1);
- }
-
- public String getSEP() {
- return this.SEP;
- }
-
- public void setDLOG(String var1) {
- this.pDLOG = URLEncoder.encode(this.DLOG = var1);
- }
-
- public String getDLOG() {
- return this.DLOG;
- }
-
- public synchronized void setKeepConnectionOpen(boolean var1) {
- this.keepConnectionOpenAlways = var1;
- if (!this.keepConnectionOpenAlways) {
- this.keepConnectionOpen = false;
- if (this.thisThread != null) {
- this.thisThread.stop();
- }
-
- if (!this.requestInProgress) {
- this.closeConnections((BufferedInputStream)null);
- }
- }
-
- }
-
- public boolean getKeepConnectionOpen() {
- return this.keepConnectionOpenAlways;
- }
-
- public int execSQL(String var1, Vector var2) {
- this.setRequestStatus(true);
- this.setRowCount(0);
- this.setColumnCount(0);
- this.columnType = null;
- this.setError("");
- if (this.dropConnectionThreadReady) {
- this.thisThread = new Thread(this);
- this.thisThread.start();
- }
-
- Object var3 = null;
- Object var4 = null;
- BufferedInputStream var5 = null;
- int var6 = 0;
- if (!activated) {
- this.setRowCount(-1);
- this.setColumnCount(-1);
- this.setError("Software Violation - this class may only be used in conjunction with JDesignerPro.");
- System.out.println("Software Violation - this class may only be used in conjunction with JDesignerPro.");
- return -1;
- } else {
- this.setSQL(var1);
- if (this.useJdbcDirect && this.FCTN.equals("")) {
- var6 = this.processDirectConnection(var2);
- return var6;
- } else {
- try {
- if (!useJaggServer) {
- URL var21 = new URL(this.toURL());
- URLConnection var23 = var21.openConnection();
- var5 = new BufferedInputStream(var23.getInputStream());
- } else {
- if (this.prevJaggSERV == null || !this.JaggSERV.equals(this.prevJaggSERV)) {
- try {
- this.thisInetAddress = InetAddress.getByName(this.JaggSERV);
- this.prevJaggSERV = this.JaggSERV;
- } catch (Exception var17) {
- }
- }
-
- if (this.server != null) {
- while(this.serverResponse.available() > 0) {
- this.serverResponse.read();
- }
- } else if (jaggServer == null || this.serverPort == 4900 || jaggServerPath != null && !jaggServerPath.equals(this.JaggSERV)) {
- try {
- this.server = new Socket(this.thisInetAddress, this.serverPort);
- this.serverResponse = new BufferedInputStream(this.server.getInputStream());
- this.serverRequest = new BufferedOutputStream(this.server.getOutputStream());
- } catch (Exception var18) {
- if (this.SERV.indexOf("JDPJagg.exe") <= 0 || JDesignerPro.executable) {
- throw var18;
- }
-
- try {
- useJaggServer = false;
- this.setSQL(var1);
- URL var20 = new URL(this.toURL());
- URLConnection var22 = var20.openConnection();
- var5 = new BufferedInputStream(var22.getInputStream());
- } catch (Exception var16) {
- }
- }
- } else {
- if (jaggServerPath == null) {
- jaggServerPath = this.JaggSERV;
- }
-
- PipedOutputStream var7 = new PipedOutputStream();
- PipedInputStream var8 = new PipedInputStream();
- PipedInputStream var9 = new PipedInputStream(var7);
- this.serverOut = new PipedOutputStream(var8);
- this.serverResponse = new BufferedInputStream(var8);
- this.serverRequest = new BufferedOutputStream(var7);
- this.startJaggServerCxn(new BufferedOutputStream(this.serverOut), new BufferedInputStream(var9));
- this.keepConnectionOpen = false;
- }
-
- if (useJaggServer) {
- String var26 = this.formatRequest();
- int var28 = var26.length();
- String var32 = Integer.toString(var28) + " ";
- var32 = var32.substring(0, 10);
- char[] var10 = new char[10];
- var32.getChars(0, 10, var10, 0);
- int var11 = 0;
-
- do {
- this.serverRequest.write(var10[var11]);
- ++var11;
- } while(var11 < 10);
-
- this.serverRequest.flush();
- var10 = new char[var28];
- var26.getChars(0, var28, var10, 0);
- if (this.mainmsg == null) {
- for(int var36 = 0; var36 < var28; ++var36) {
- this.serverRequest.write(var10[var36]);
- }
- } else {
- var11 = var28 / 20;
- int var12 = var11;
- int var13 = 0;
-
- for(int var14 = 0; var14 < var28; this.serverRequest.flush()) {
- for(var13 = var14; var13 < var11; ++var13) {
- this.serverRequest.write(var10[var13]);
- }
-
- var14 = var13;
- var11 += var12;
- if (var11 > var28) {
- var11 = var28;
- }
- }
- }
-
- this.serverRequest.flush();
- if (this.FCTN.equals("BINS")) {
- this.sendData(this.serverRequest);
- this.serverRequest.write(1);
- this.serverRequest.flush();
- }
- }
- }
-
- if (DEBUG) {
- System.out.println("DEBUG: " + this.toURL());
- }
-
- if (var2 == null) {
- return 0;
- }
-
- String var27 = this.readData(var5, this.serverResponse);
- if (DEBUG) {
- System.out.println("DEBUG: " + var27);
- }
-
- if (var27 != null && var27.startsWith("JAGG_ERROR")) {
- this.setRowCount(-1);
- this.setColumnCount(-1);
- this.setError(var27);
- System.out.println(this.getError());
- this.keepConnectionOpen = false;
- this.closeConnections(var5);
- return -1;
- }
-
- if (var27 == null && !this.FCTN.equals("ReadFromFile") && !this.FCTN.equals("GetStockData")) {
- this.setRowCount(-1);
- this.setColumnCount(-1);
- System.out.println("JAGG returned null - contact BulletProof");
- this.keepConnectionOpen = false;
- this.closeConnections(var5);
- return -1;
- }
-
- if (var27 == null && (this.FCTN.equals("ReadFromFile") || this.FCTN.equals("GetStockData"))) {
- this.setRowCount(-1);
- this.setColumnCount(-1);
- System.out.println("File empty or does not exist: " + this.FCTNP);
- this.keepConnectionOpen = false;
- this.closeConnections(var5);
- return -1;
- }
-
- if (useJaggServer && var27 != null && this.FCTN.equals("ReadFromFile") || var27 != null && this.FCTN.equals("GetStockData")) {
- this.setRowCount(1);
- this.setColumnCount(1);
- if (var27.length() > 0) {
- ++this.rowCount;
- var2.addElement(var27);
- }
-
- this.closeConnections(var5);
- return 1;
- }
-
- this.rowCount = 0;
- if (var27 != null && !var27.startsWith("JAGG_RESULT_ROWS:") && !var27.startsWith("JAGG_EMPTY_RESULT")) {
- if (var27.length() > 0 && var27.startsWith("JAGG_COLUMN_DEFS:")) {
- StringTokenizer var29 = new StringTokenizer(var27, this.getSEP());
- var29.nextToken();
- this.columnType = new int[var29.countTokens()];
-
- for(int var34 = 0; var29.hasMoreTokens(); this.columnType[var34++] = Integer.parseInt(var29.nextToken())) {
- }
-
- var27 = this.readData(var5, this.serverResponse);
- }
-
- StringTokenizer var30 = new StringTokenizer(var27, this.getSEP());
- this.setColumnCount(var30.countTokens());
-
- for(; var27 != null && !var27.startsWith("JAGG_RESULT_ROWS:"); var27 = this.readData(var5, this.serverResponse)) {
- if (var27.length() > 0) {
- ++this.rowCount;
- var2.addElement(var27);
- }
- }
- }
-
- if (var27 != null && var27.startsWith("JAGG_RESULT_ROWS:")) {
- String var31 = var27.substring(17);
- if (var31.indexOf(field_0) >= 0) {
- var31 = var31.substring(0, var31.indexOf(field_0));
- }
-
- var6 = Integer.parseInt(var31);
- } else {
- var6 = 0;
- }
-
- this.closeConnections(var5);
- } catch (Exception var19) {
- if (this.FCTN.equals("sendEventToClient")) {
- return -1;
- }
-
- if (useJaggServer) {
- this.keepConnectionOpen = false;
- this.setError("Could not connect to JaggServer");
- System.out.println("Could not connect to JaggServer. Check that JaggServer is running");
- } else {
- this.setError(((Throwable)var19).toString());
- System.out.println("Could not connect to JDPJagg.exe. Check that JDPJagg.exe is in CGI directory and webserver is running.");
- }
-
- this.setRowCount(-1);
- this.setColumnCount(0);
- this.closeConnections(var5);
- return -1;
- }
-
- if (DEBUG) {
- System.out.println("DEBUG: actualrowCount=" + var6 + ", rowCount=" + this.getRowCount() + ", columnCount=" + this.getColumnCount());
- }
-
- this.SQL = null;
- return var6;
- }
- }
- }
-
- void setMainMsg(JDPStatusMessage var1) {
- this.mainmsg = var1;
- }
-
- private void setRowCount(int var1) {
- this.rowCount = var1;
- }
-
- public int getRowCount() {
- return this.rowCount;
- }
-
- public void setLSQL(String var1) {
- this.pLSQL = URLEncoder.encode(this.LSQL = var1);
- }
-
- public String getLSQL() {
- return this.LSQL;
- }
-
- public void setTOUT(String var1) {
- this.pTOUT = URLEncoder.encode(this.TOUT = var1);
- }
-
- private void setColumnCount(int var1) {
- this.columnCount = var1;
- }
-
- public int getColumnCount() {
- return this.columnCount;
- }
-
- public String getTOUT() {
- return this.TOUT;
- }
-
- public void setNULL(String var1) {
- this.pNULL = URLEncoder.encode(this.NULL = var1);
- }
-
- public String getNULL() {
- return this.NULL;
- }
-
- public static void setUseJaggServer(boolean var0) {
- useJaggServer = var0;
- }
-
- void setUserid(String var1) {
- suserid = var1;
- }
-
- void checkSelectDSN(Object var1) {
- if (var1 instanceof JDPSelectDSN) {
- JDPSelectDSN var2 = (JDPSelectDSN)var1;
- if (useJaggServer) {
- this.setJdbcDriver(var2.jdbcdriver.getText());
- this.setJdbcPrefix(var2.jdbcprefix.getText());
- this.setJdbcSuffix(var2.jdbcsuffix.getText());
- if (var2.jdbcdirect != null) {
- this.setJdbcDirect(var2.jdbcdirect.getSelectedItem().equals("Yes"));
- }
- }
-
- this.setUID(var2.userid.getText());
- this.setPWD(var2.password.getText());
- this.setDSN(var2.datasource.getText());
- this.setCSTR(var2.connectstring.getText());
- }
-
- }
-
- public void setDSN(String var1) {
- if (var1 != null) {
- var1 = var1.trim();
- }
-
- if (var1 != null) {
- this.pDSN = URLEncoder.encode(this.DSN = var1);
- }
-
- if (!useJaggServer && (this.DSN == null || this.DSN.equals(""))) {
- this.pDSN = URLEncoder.encode(this.DSN = this.jdbcSuffix);
- }
-
- this.loadJdbcSettings(var1);
- }
-
- public String getDSN() {
- return this.DSN;
- }
-
- public void setJdbcSuffix(String var1) {
- if (var1 != null) {
- this.jdbcSuffix = var1.trim();
- } else {
- this.jdbcSuffix = "";
- }
-
- if (!useJaggServer && !this.jdbcSuffix.trim().equals("") && !this.jdbcSuffix.trim().equals(this.DSN)) {
- this.setDSN(this.jdbcSuffix.trim());
- }
-
- }
-
- public String getJdbcSuffix() {
- return this.jdbcSuffix;
- }
-
- public JDPJagg getInstance() {
- return this;
- }
- }
-