diff options
Diffstat (limited to 'pki/base/common/src/com/netscape/cmscore/util')
12 files changed, 524 insertions, 557 deletions
diff --git a/pki/base/common/src/com/netscape/cmscore/util/Assert.java b/pki/base/common/src/com/netscape/cmscore/util/Assert.java index afc38f49b..246599290 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/Assert.java +++ b/pki/base/common/src/com/netscape/cmscore/util/Assert.java @@ -17,7 +17,6 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - public class Assert { public static final boolean ON = true; diff --git a/pki/base/common/src/com/netscape/cmscore/util/AssertionException.java b/pki/base/common/src/com/netscape/cmscore/util/AssertionException.java index 6a0d8e668..d2f3708d4 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/AssertionException.java +++ b/pki/base/common/src/com/netscape/cmscore/util/AssertionException.java @@ -17,10 +17,9 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - /** - * Assertion exceptions are thrown when assertion code is invoked - * and fails to operate properly. + * Assertion exceptions are thrown when assertion code is invoked and fails to + * operate properly. */ public class AssertionException extends Error { /** diff --git a/pki/base/common/src/com/netscape/cmscore/util/Debug.java b/pki/base/common/src/com/netscape/cmscore/util/Debug.java index 417f3159b..89eecb61b 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/Debug.java +++ b/pki/base/common/src/com/netscape/cmscore/util/Debug.java @@ -17,7 +17,6 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - import java.io.FileOutputStream; import java.io.OutputStream; import java.io.PrintStream; @@ -30,29 +29,27 @@ import com.netscape.certsrv.base.IConfigStore; import com.netscape.certsrv.base.ISubsystem; import com.netscape.cmsutil.util.Utils; - -public class Debug - implements ISubsystem { +public class Debug implements ISubsystem { private static Debug mInstance = new Debug(); private static boolean mShowCaller = false; - - /* This dateformatter is used to put the date on each - debug line. But the DateFormatter is not thread safe, - so I create a thread-local DateFormatter for each thread - */ + /* + * This dateformatter is used to put the date on each debug line. But the + * DateFormatter is not thread safe, so I create a thread-local + * DateFormatter for each thread + */ private static String DATE_PATTERN = "dd/MMM/yyyy:HH:mm:ss"; private static ThreadLocal mFormatObject = new ThreadLocal() { - protected synchronized Object initialValue() { - return new SimpleDateFormat(DATE_PATTERN); - } - }; + protected synchronized Object initialValue() { + return new SimpleDateFormat(DATE_PATTERN); + } + }; - /* the dateformatter should be accessed with this function */ - private static SimpleDateFormat getDateFormatter() { - return ((SimpleDateFormat)(mFormatObject.get())); - } + /* the dateformatter should be accessed with this function */ + private static SimpleDateFormat getDateFormatter() { + return ((SimpleDateFormat) (mFormatObject.get())); + } public static final boolean ON = false; public static final int OBNOXIOUS = 10; @@ -62,10 +59,10 @@ public class Debug // the difference between this and 'ON' is that this is always // guaranteed to log to 'mOut', whereas other parts of the server // may do: - // if (Debug.ON) { - // System.out.println(".."); - // } - // I want to make sure that any Debug.trace() is not logged to + // if (Debug.ON) { + // System.out.println(".."); + // } + // I want to make sure that any Debug.trace() is not logged to // System.out if the server is running under watchdog private static boolean TRACE_ON = false; @@ -73,7 +70,7 @@ public class Debug private static int mDebugLevel = VERBOSE; private static PrintStream mOut = null; - private static Hashtable mHK = null; + private static Hashtable mHK = null; static { if (TRACE_ON == true) { @@ -88,98 +85,112 @@ public class Debug /** * Output a debug message at the output stream sepcified in the init() * method. This method is very lightweight if debugging is turned off, since - * it will return immediately. However, the caller should be aware that - * if the argument to Debug.trace() is an object whose toString() is - * expensive, that this toString() will still be called in any case. - * In such a case, it is wise to wrap the Debug.trace like this: <pre> - * if (Debug.on()) { Debug.trace("obj is: "+obj); } - * </pre> + * it will return immediately. However, the caller should be aware that if + * the argument to Debug.trace() is an object whose toString() is expensive, + * that this toString() will still be called in any case. In such a case, it + * is wise to wrap the Debug.trace like this: + * + * <pre> + * if (Debug.on()) { + * Debug.trace("obj is: " + obj); + * } + * </pre> + * * @param level the message level. If this is >= than the currently set - * level (set with setLevel() ), the message is printed + * level (set with setLevel() ), the message is printed * @param t the message to print - * @param ignoreStack when walking the stack to determine the - * location of the method that called the trace() method, - * ignore any classes with this string in. Can be null - * @param printCaller if true, (and if static mShowCaller is true) - * dump caller information in this format: - * (source-file:line) methodname(): + * @param ignoreStack when walking the stack to determine the location of + * the method that called the trace() method, ignore any classes + * with this string in. Can be null + * @param printCaller if true, (and if static mShowCaller is true) dump + * caller information in this format: (source-file:line) + * methodname(): */ - public static void trace(int level, String t, String ignoreStack, boolean printCaller) { - String callerinfo = ""; - if (!TRACE_ON) return; + public static void trace(int level, String t, String ignoreStack, + boolean printCaller) { + String callerinfo = ""; + if (!TRACE_ON) + return; if (level >= mDebugLevel) { if (mShowCaller && printCaller) { String method = ""; String fileAndLine = ""; try { - Throwable tr = new Throwable(); - StackTraceElement ste[] = tr.getStackTrace(); - int i=0; - while ((i < ste.length) && - (ste[i].getMethodName().toLowerCase().indexOf("debug") >-1) || - (ste[i].getMethodName().toLowerCase().indexOf("hashkey") >-1) || - (ste[i].getClassName().toLowerCase().indexOf("propconfigstore") >-1) || - (ste[i].getClassName().toLowerCase().indexOf("argblock") >-1) || - (ste[i].getClassName().toLowerCase().indexOf("debug") >-1) || - (ste[i].getMethodName().toLowerCase().indexOf("trace") >-1)) i++; - - if (i < ste.length) { - fileAndLine = ste[i].getFileName()+":"+ - ste[i].getLineNumber(); - method = ste[i].getMethodName()+"()"; - } - - callerinfo = fileAndLine +":"+ method + " "; + Throwable tr = new Throwable(); + StackTraceElement ste[] = tr.getStackTrace(); + int i = 0; + while ((i < ste.length) + && (ste[i].getMethodName().toLowerCase() + .indexOf("debug") > -1) + || (ste[i].getMethodName().toLowerCase() + .indexOf("hashkey") > -1) + || (ste[i].getClassName().toLowerCase() + .indexOf("propconfigstore") > -1) + || (ste[i].getClassName().toLowerCase() + .indexOf("argblock") > -1) + || (ste[i].getClassName().toLowerCase() + .indexOf("debug") > -1) + || (ste[i].getMethodName().toLowerCase() + .indexOf("trace") > -1)) + i++; + + if (i < ste.length) { + fileAndLine = ste[i].getFileName() + ":" + + ste[i].getLineNumber(); + method = ste[i].getMethodName() + "()"; + } + + callerinfo = fileAndLine + ":" + method + " "; } catch (Exception f) { } } - - outputTraceMessage(callerinfo + t); + + outputTraceMessage(callerinfo + t); } } - - private static void outputTraceMessage(String t) - { - if (!TRACE_ON) return; - SimpleDateFormat d = getDateFormatter(); + + private static void outputTraceMessage(String t) { + if (!TRACE_ON) + return; + SimpleDateFormat d = getDateFormatter(); if (mOut != null && d != null) { - mOut.println("[" + d.format(new Date()) + "][" + Thread.currentThread().getName() + "]: " + t); + mOut.println("[" + d.format(new Date()) + "][" + + Thread.currentThread().getName() + "]: " + t); mOut.flush(); - } - } + } + } - private static boolean hkdotype(String type) - { - if (mHK!= null && mHK.get(type) != null) { - return true; - } else { - return false; - } - } + private static boolean hkdotype(String type) { + if (mHK != null && mHK.get(type) != null) { + return true; + } else { + return false; + } + } public static void traceHashKey(String type, String key) { - if (hkdotype(type)) { - trace("GET r=" + type+ ",k=" + key); + if (hkdotype(type)) { + trace("GET r=" + type + ",k=" + key); } } public static void traceHashKey(String type, String key, String val) { - if (hkdotype(type)) { - trace("GET r=" + type+ ",k=" + key + ",v=" + val); + if (hkdotype(type)) { + trace("GET r=" + type + ",k=" + key + ",v=" + val); } } - public static void traceHashKey(String type, String key, String val, String def) { - if (hkdotype(type)) { - trace("GET r=" + type+ ",k=" + - key + ",v=" + val +",d="+def); + public static void traceHashKey(String type, String key, String val, + String def) { + if (hkdotype(type)) { + trace("GET r=" + type + ",k=" + key + ",v=" + val + ",d=" + def); } - } + } public static void putHashKey(String type, String key, String value) { - if (hkdotype(type)) { - outputTraceMessage("PUT r=" + type+ ",k=" + key + ",v=" + value); + if (hkdotype(type)) { + outputTraceMessage("PUT r=" + type + ",k=" + key + ",v=" + value); } } @@ -188,7 +199,8 @@ public class Debug } public static void print(int level, String t) { - if (!TRACE_ON) return; + if (!TRACE_ON) + return; if (mOut != null) { if (level >= mDebugLevel) mOut.print(t); @@ -200,24 +212,30 @@ public class Debug } private static void printNybble(byte b) { - if (mOut == null) return; - if (b < 10) mOut.write('0' + b); - else mOut.write('a' + b - 10); + if (mOut == null) + return; + if (b < 10) + mOut.write('0' + b); + else + mOut.write('a' + b - 10); } /** - * If tracing enabled, dump a byte array to debugging printstream - * as hex, colon-seperated bytes, 16 bytes to a line + * If tracing enabled, dump a byte array to debugging printstream as hex, + * colon-seperated bytes, 16 bytes to a line */ public static void print(byte[] b) { - if (!TRACE_ON) return; - if (mOut == null) return; + if (!TRACE_ON) + return; + if (mOut == null) + return; for (int i = 0; i < b.length; i++) { printNybble((byte) ((b[i] & 0xf0) >> 4)); printNybble((byte) (b[i] & 0x0f)); mOut.print(" "); - if (((i % 16) == 15) && i != b.length) mOut.println(""); + if (((i % 16) == 15) && i != b.length) + mOut.println(""); } mOut.println(""); mOut.flush(); @@ -227,29 +245,35 @@ public class Debug * Print the current stack trace to the debug printstream */ public static void printStackTrace() { - if (!TRACE_ON) return; + if (!TRACE_ON) + return; Exception e = new Exception("Debug"); printStackTrace(e); } /** - * Print the stack trace of the named exception - * to the debug printstream + * Print the stack trace of the named exception to the debug printstream */ public static void printStackTrace(Throwable e) { - if (!TRACE_ON) return; - if (mOut == null) return; + if (!TRACE_ON) + return; + if (mOut == null) + return; e.printStackTrace(mOut); } /** - * Set the current debugging level. You can use: <pre> + * Set the current debugging level. You can use: + * + * <pre> * OBNOXIOUS = 10 * VERBOSE = 5 * INFORM = 1 - * </pre> Or another value + * </pre> + * + * Or another value */ public static void setLevel(int level) { @@ -263,15 +287,15 @@ public class Debug /** * Test if debugging is on. Do NOT write to System.out in your debug code */ - public static boolean on() { + public static boolean on() { return TRACE_ON; } - /* ISubsystem methods: */ + /* ISubsystem methods: */ public static String ID = "debug"; private static IConfigStore mConfig = null; - + public String getId() { return ID; } @@ -288,8 +312,10 @@ public class Debug private static final String PROP_APPEND = "append"; /** - * Debug subsystem initialization. This subsystem is usually - * given the following parameters: <pre> + * Debug subsystem initialization. This subsystem is usually given the + * following parameters: + * + * <pre> * debug.enabled : (true|false) default false * debug.filename : can be a pathname, or STDOUT * debug.hashkeytypes: comma-separated list of hashkey types @@ -301,7 +327,7 @@ public class Debug mConfig = config; String filename = null; String hashkeytypes = null; - boolean append=true; + boolean append = true; try { TRACE_ON = mConfig.getBoolean(PROP_ENABLED, false); @@ -318,32 +344,32 @@ public class Debug if (filename.equals("STDOUT")) { mOut = System.out; } else { - if( !Utils.isNT() ) { + if (!Utils.isNT()) { // Always insure that a physical file exists! - Utils.exec( "touch " + filename ); - Utils.exec( "chmod 00640 " + filename ); + Utils.exec("touch " + filename); + Utils.exec("chmod 00640 " + filename); } OutputStream os = new FileOutputStream(filename, append); - mOut = new PrintStream(os, true); /* true == autoflush */ + mOut = new PrintStream(os, true); /* true == autoflush */ } if (hashkeytypes != null) { - StringTokenizer st = new StringTokenizer(hashkeytypes, - ",", false); - mHK = new Hashtable(); - while (st.hasMoreElements()) { - String hkr = st.nextToken(); - mHK.put(hkr, "true"); - } + StringTokenizer st = new StringTokenizer(hashkeytypes, ",", + false); + mHK = new Hashtable(); + while (st.hasMoreElements()) { + String hkr = st.nextToken(); + mHK.put(hkr, "true"); + } } } - outputTraceMessage("============================================"); - outputTraceMessage("===== DEBUG SUBSYSTEM INITIALIZED ======="); - outputTraceMessage("============================================"); + outputTraceMessage("============================================"); + outputTraceMessage("===== DEBUG SUBSYSTEM INITIALIZED ======="); + outputTraceMessage("============================================"); int level = mConfig.getInteger(PROP_LEVEL, VERBOSE); setLevel(level); } catch (Exception e) { // Don't do anything. Logging is not set up yet, and - // we can't write to STDOUT. + // we can't write to STDOUT. } } @@ -364,4 +390,3 @@ public class Debug } } - diff --git a/pki/base/common/src/com/netscape/cmscore/util/ExceptionFormatter.java b/pki/base/common/src/com/netscape/cmscore/util/ExceptionFormatter.java index 8479c757c..861f8c683 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/ExceptionFormatter.java +++ b/pki/base/common/src/com/netscape/cmscore/util/ExceptionFormatter.java @@ -17,21 +17,19 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - import java.io.PipedInputStream; import java.io.PipedOutputStream; import java.io.PrintWriter; - public class ExceptionFormatter { /** - * Routines for pretty-printing java exceptions - * prints okay in a single-line. + * Routines for pretty-printing java exceptions prints okay in a + * single-line. */ /* - * Take an exception stacktrace, and reformat it so that is - * prints okay in a single-line. + * Take an exception stacktrace, and reformat it so that is prints okay in a + * single-line. */ public static String getStackTraceAsString(Throwable e) { @@ -39,7 +37,7 @@ public class ExceptionFormatter { try { PipedOutputStream po = new PipedOutputStream(); - PipedInputStream pi = new PipedInputStream(po); + PipedInputStream pi = new PipedInputStream(po); PrintWriter ps = new PrintWriter(po); @@ -48,7 +46,7 @@ public class ExceptionFormatter { int avail = pi.available(); byte[] b = new byte[avail]; - + pi.read(b, 0, avail); returnvalue = new String(b); } catch (Exception ex) { @@ -59,8 +57,7 @@ public class ExceptionFormatter { /* test code below */ - public static void test() - throws TestException { + public static void test() throws TestException { throw new TestException("** testexception **"); } @@ -79,7 +76,6 @@ public class ExceptionFormatter { } - class TestException extends Exception { /** @@ -95,4 +91,3 @@ class TestException extends Exception { } } - diff --git a/pki/base/common/src/com/netscape/cmscore/util/FileAsString.java b/pki/base/common/src/com/netscape/cmscore/util/FileAsString.java index c0ae1faaf..1446a451d 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/FileAsString.java +++ b/pki/base/common/src/com/netscape/cmscore/util/FileAsString.java @@ -17,25 +17,22 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; - public class FileAsString { protected String mFilename; protected long mLastRead = 0; - + private String fileContents = null; private Object userObject = null; - + /** - * This class enables you to get treat a file as a string - * If the file changes underneath you, it will automatically - * be read + * This class enables you to get treat a file as a string If the file + * changes underneath you, it will automatically be read */ public FileAsString(String filename) throws IOException { mFilename = filename; @@ -49,8 +46,7 @@ public class FileAsString { return (lastmodified != mLastRead); } - private void readFile() - throws IOException { + private void readFile() throws IOException { BufferedReader br = createBufferedReader(mFilename); StringBuffer buf = new StringBuffer(""); int bytesread = 0; @@ -63,15 +59,14 @@ public class FileAsString { buf.append(cbuf, 0, bytesread); } String s = new String(buf); - } - while (bytesread != -1); + } while (bytesread != -1); br.close(); fileContents = new String(buf); } - - private BufferedReader createBufferedReader(String filename) - throws IOException { + + private BufferedReader createBufferedReader(String filename) + throws IOException { Debug.trace("createBufferedReader(filename=" + filename + ")"); BufferedReader br = null; FileReader fr = null; @@ -84,13 +79,12 @@ public class FileAsString { br = new BufferedReader(fr); mFilename = filename; } catch (IOException e) { - throw e; + throw e; } return br; } - - public String getAsString() - throws IOException { + + public String getAsString() throws IOException { if (fileHasChanged()) { readFile(); } @@ -111,9 +105,9 @@ public class FileAsString { public void setUserObject(Object x) { userObject = x; } - + public String getFilename() { return mFilename; } - + } diff --git a/pki/base/common/src/com/netscape/cmscore/util/FileDialogFilter.java b/pki/base/common/src/com/netscape/cmscore/util/FileDialogFilter.java index 37410533a..1277a8da0 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/FileDialogFilter.java +++ b/pki/base/common/src/com/netscape/cmscore/util/FileDialogFilter.java @@ -17,20 +17,18 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - import java.io.File; import java.io.FilenameFilter; - /** - * checks the filename and directory with the specified filter - * checks with multiple "*". - * the filter has to start with a '*' character. - * this to keep the search the same as in the motif version + * checks the filename and directory with the specified filter checks with + * multiple "*". the filter has to start with a '*' character. this to keep the + * search the same as in the motif version * <P> - * Copied verbatium from sun.awt.tiny.TinyFileDialogPeer. Used by - * RollingLogFile expiration code + * Copied verbatium from sun.awt.tiny.TinyFileDialogPeer. Used by RollingLogFile + * expiration code * <P> + * * @author mikep * @version $Revision$, $Date$ */ @@ -50,25 +48,25 @@ public class FileDialogFilter implements FilenameFilter { * return true if match */ public boolean accept(File dir, String fileName) { - + File f = new File(dir, fileName); - + if (f.isDirectory()) { return true; } else { return searchPattern(fileName, filter); } } - - /** - * start searching + + /** + * start searching */ boolean searchPattern(String fileName, String filter) { int filterCursor = 0; int fileNameCursor = 0; int filterChar = filter.charAt(filterCursor); - + if (filterCursor == 0 && filterChar != '*') { return false; } @@ -85,17 +83,17 @@ public class FileDialogFilter implements FilenameFilter { int flLen = fileName.length(); char ftChar; char flChar; - int ftCur = 0; - int flCur = 0; + int ftCur = 0; + int flCur = 0; int c = 0; - + if (ftLen == 0) { return true; } while (c < flLen) { - ftChar = filter.charAt(ftCur); - + ftChar = filter.charAt(ftCur); + if (ftChar == '*') { String ls = filter.substring(ftCur + 1); String fs = fileName.substring(flCur); @@ -109,11 +107,11 @@ public class FileDialogFilter implements FilenameFilter { continue; } flChar = fileName.charAt(flCur); - + if (ftChar == flChar) { ftCur++; flCur++; - + if (flCur == flLen && ftCur == ftLen) { return true; } @@ -134,9 +132,9 @@ public class FileDialogFilter implements FilenameFilter { } } } - + for (int i = ftCur; i < ftLen; i++) { - ftChar = filter.charAt(i); + ftChar = filter.charAt(i); if (ftChar != '*') { return false; } @@ -144,4 +142,3 @@ public class FileDialogFilter implements FilenameFilter { return true; } } - diff --git a/pki/base/common/src/com/netscape/cmscore/util/OsSubsystem.java b/pki/base/common/src/com/netscape/cmscore/util/OsSubsystem.java index 47bb62801..3f52bf6dd 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/OsSubsystem.java +++ b/pki/base/common/src/com/netscape/cmscore/util/OsSubsystem.java @@ -17,7 +17,6 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; @@ -37,13 +36,12 @@ import com.netscape.osutil.Signal; import com.netscape.osutil.SignalListener; import com.netscape.osutil.UserID; - /** - * This object contains the OS independent interfaces. It's currently - * used for Unix signal and user handling, but could eventually be extended - * for NT interfaces. + * This object contains the OS independent interfaces. It's currently used for + * Unix signal and user handling, but could eventually be extended for NT + * interfaces. * <P> - * + * * @author mikep * @version $Revision$, $Date$ */ @@ -83,20 +81,20 @@ public final class OsSubsystem implements ISubsystem { } public void setId(String id) throws EBaseException { - throw new EBaseException(CMS.getUserMessage("CMS_BASE_INVALID_OPERATION")); + throw new EBaseException( + CMS.getUserMessage("CMS_BASE_INVALID_OPERATION")); } /** - * Initializes this subsystem with the given configuration - * store. + * Initializes this subsystem with the given configuration store. * <P> - * + * * @param owner owner of this subsystem * @param config configuration store * @exception EBaseException failed to initialize */ public void init(ISubsystem owner, IConfigStore config) - throws EBaseException { + throws EBaseException { mOwner = owner; mConfig = config; @@ -106,13 +104,14 @@ public final class OsSubsystem implements ISubsystem { // We currently only deal with Unix and NT if (isUnix()) { - //initUnix(); + // initUnix(); } else { initNT(); } try { - //System.out.println(" The dir I'm seeing is " + mInstanceDir); - String pidName = mInstanceDir + File.separator + "config" + File.separator + "cert-pid"; + // System.out.println(" The dir I'm seeing is " + mInstanceDir); + String pidName = mInstanceDir + File.separator + "config" + + File.separator + "cert-pid"; BufferedWriter pidOut = new BufferedWriter(new FileWriter(pidName)); int pid = OsSubsystem.getpid(); @@ -120,8 +119,8 @@ public final class OsSubsystem implements ISubsystem { pidOut.close(); OSUtil.getFileWriteLock(pidName); } catch (Exception e) { - //XX to stderr XXXXXX - //e.printStackTrace(); + // XX to stderr XXXXXX + // e.printStackTrace(); } } @@ -150,20 +149,22 @@ public final class OsSubsystem implements ISubsystem { fos.close(); } catch (IOException e) { - /*LogDoc - * + /* + * LogDoc + * * @phase start OS subsystem + * * @message OS: <exception thrown> */ mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER, - ILogger.LL_FAILURE, "OS: " + e.toString()); + ILogger.LL_FAILURE, "OS: " + e.toString()); } } } /** - * Returns the process ID of the Certificate Server process. Works - * on Unix and NT. + * Returns the process ID of the Certificate Server process. Works on Unix + * and NT. */ public static int getpid() { if (isUnix()) { @@ -177,24 +178,24 @@ public final class OsSubsystem implements ISubsystem { * Hooks up unix signals. */ private void initUnix() throws EBaseException { - // Set up signal handling. We pretty much exit on anything - // Signal.watch(Signal.SIGHUP); + // Set up signal handling. We pretty much exit on anything + // Signal.watch(Signal.SIGHUP); // Signal.watch(Signal.SIGTERM); // Signal.watch(Signal.SIGINT); // mSignalThread = new SignalThread(); // mSignalThread.setDaemon(true); // mSignalThread.start(); - Signal.addSignalListener(Signal.SIGHUP, new SIGHUPListener(this)); - Signal.addSignalListener(Signal.SIGTERM, new SIGTERMListener(this)); - Signal.addSignalListener(Signal.SIGINT, new SIGINTListener(this)); + Signal.addSignalListener(Signal.SIGHUP, new SIGHUPListener(this)); + Signal.addSignalListener(Signal.SIGTERM, new SIGTERMListener(this)); + Signal.addSignalListener(Signal.SIGINT, new SIGINTListener(this)); /* Increase the maximum number of file descriptors */ - int i = mConfig.getInteger("maxFiles", + int i = mConfig.getInteger("maxFiles", ResourceLimit.getHardLimit(ResourceLimit.RLIMIT_NOFILE)); - ResourceLimit.setLimits(ResourceLimit.RLIMIT_NOFILE, - i, ResourceLimit.getHardLimit(ResourceLimit.RLIMIT_NOFILE)); + ResourceLimit.setLimits(ResourceLimit.RLIMIT_NOFILE, i, + ResourceLimit.getHardLimit(ResourceLimit.RLIMIT_NOFILE)); // write current pid to specified file String pf = mConfig.getString("pidFile", null); @@ -210,7 +211,7 @@ public final class OsSubsystem implements ISubsystem { } /** - * Used to change the process user id usually called after the appropriate + * Used to change the process user id usually called after the appropriate * network ports have been opened. */ public void setUserId() throws EBaseException { @@ -225,42 +226,49 @@ public final class OsSubsystem implements ISubsystem { // Change the userid to the prefered Unix user if (userid == null) { - /*LogDoc - * + /* + * LogDoc + * * @phase set user id + * * @arg0 default user id */ - mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER, - ILogger.LL_FAILURE, - "OS: No user id in config file. Running as {0}", id); + mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER, ILogger.LL_FAILURE, + "OS: No user id in config file. Running as {0}", id); } else { - Object[] params = {userid, id}; + Object[] params = { userid, id }; try { UserID.set(userid); } catch (IllegalArgumentException e) { - /*LogDoc - * + /* + * LogDoc + * * @phase set user id + * * @arg0 supplied user id in config + * * @arg1 default user id */ - mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER, - ILogger.LL_FAILURE, - "OS: No such user as {0}. Running as {1}", params); + mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER, + ILogger.LL_FAILURE, + "OS: No such user as {0}. Running as {1}", params); } catch (SecurityException e) { - /*LogDoc - * + /* + * LogDoc + * * @phase set user id + * * @arg0 supplied user id in config + * * @arg1 default user id */ mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER, - ILogger.LL_FAILURE, - "OS: Can't change process uid to {0}. Running as {1}", - params); + ILogger.LL_FAILURE, + "OS: Can't change process uid to {0}. Running as {1}", + params); } } } @@ -269,9 +277,8 @@ public final class OsSubsystem implements ISubsystem { } /** - * Stops the watchdog. You need to call this if you want the - * server to really shutdown, otherwise the watchdog will just - * restart us. + * Stops the watchdog. You need to call this if you want the server to + * really shutdown, otherwise the watchdog will just restart us. * <P> */ public static void stop() { @@ -280,13 +287,13 @@ public final class OsSubsystem implements ISubsystem { Signal.send(LibC.getppid(), Signal.SIGTERM); } else { - /*LogDoc - * + /* + * LogDoc + * * @phase stop watchdog */ CMS.getLogger().log(ILogger.EV_SYSTEM, ILogger.S_OTHER, - ILogger.LL_INFO, - "OS: stop the NT watchdog!"); + ILogger.LL_INFO, "OS: stop the NT watchdog!"); } } @@ -309,15 +316,16 @@ public final class OsSubsystem implements ISubsystem { private static void shutdownUnix() { // Don't accidentally stop this thread - //if (Thread.currentThread() != mSignalThread && mSignalThread != null) { - // mSignalThread.stop(); - // mSignalThread = null; - //} - - /* Don't release this signals to protect the process - Signal.release(Signal.SIGHUP); - Signal.release(Signal.SIGTERM); - Signal.release(Signal.SIGINT); + // if (Thread.currentThread() != mSignalThread && mSignalThread != null) + // { + // mSignalThread.stop(); + // mSignalThread = null; + // } + + /* + * Don't release this signals to protect the process + * Signal.release(Signal.SIGHUP); Signal.release(Signal.SIGTERM); + * Signal.release(Signal.SIGINT); */ } @@ -335,11 +343,7 @@ public final class OsSubsystem implements ISubsystem { public void restart() { /** - if (isUnix()) { - restartUnix(); - } else { - restartNT(); - } + * if (isUnix()) { restartUnix(); } else { restartNT(); } **/ } @@ -364,7 +368,7 @@ public final class OsSubsystem implements ISubsystem { /** * Returns the root configuration storage of this system. * <P> - * + * * @return configuration store of this subsystem */ public IConfigStore getConfigStore() { @@ -372,10 +376,11 @@ public final class OsSubsystem implements ISubsystem { } /** - * A universal routine to decide if we are Unix or something else. - * This is mostly used for signal handling and uids. - * + * A universal routine to decide if we are Unix or something else. This is + * mostly used for signal handling and uids. + * * <P> + * * @return true if these OS the JavaVM is running on is some Unix varient */ public static boolean isUnix() { @@ -384,8 +389,8 @@ public final class OsSubsystem implements ISubsystem { } /** - * Unix signal thread. Sleep for a second and then check on the - * signals we're interested in. If one is set, do the right stuff + * Unix signal thread. Sleep for a second and then check on the signals + * we're interested in. If one is set, do the right stuff */ final class SignalThread extends Thread { @@ -414,17 +419,16 @@ public final class OsSubsystem implements ISubsystem { } // wants us to exit? - if (Signal.caught(Signal.SIGINT) > 0 || - Signal.caught(Signal.SIGTERM) > 0) { + if (Signal.caught(Signal.SIGINT) > 0 + || Signal.caught(Signal.SIGTERM) > 0) { - /*LogDoc - * + /* + * LogDoc + * * @phase watchdog check */ - mLogger.log(ILogger.EV_SYSTEM, - ILogger.S_OTHER, - ILogger.LL_INFO, - "OS: Received shutdown signal"); + mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER, + ILogger.LL_INFO, "OS: Received shutdown signal"); SubsystemRegistry.getInstance().get("MAIN").shutdown(); return; } @@ -432,14 +436,13 @@ public final class OsSubsystem implements ISubsystem { // Tell to restart us if (Signal.caught(Signal.SIGHUP) > 0) { - /*LogDoc - * + /* + * LogDoc + * * @phase watchdog check */ - mLogger.log(ILogger.EV_SYSTEM, - ILogger.S_OTHER, - ILogger.LL_INFO, - "OS: Received restart signal"); + mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER, + ILogger.LL_INFO, "OS: Received restart signal"); restart(); return; } @@ -450,9 +453,9 @@ public final class OsSubsystem implements ISubsystem { } } - class SIGTERMListener extends SignalListener { private OsSubsystem mOS; + public SIGTERMListener(OsSubsystem os) { mOS = os; } @@ -461,13 +464,13 @@ class SIGTERMListener extends SignalListener { System.out.println("SIGTERMListener process"); // XXX - temp, should call shutdown System.exit(0); - //PKIServer.getPKIServer().shutdown(); + // PKIServer.getPKIServer().shutdown(); } } - class SIGINTListener extends SignalListener { private OsSubsystem mOS; + public SIGINTListener(OsSubsystem os) { mOS = os; } @@ -476,13 +479,13 @@ class SIGINTListener extends SignalListener { System.out.println("SIGINTListener process"); // XXX - temp, should call shutdown System.exit(0); - //PKIServer.getPKIServer().shutdown(); + // PKIServer.getPKIServer().shutdown(); } } - class SIGHUPListener extends SignalListener { private OsSubsystem mOS; + public SIGHUPListener(OsSubsystem os) { mOS = os; } @@ -491,6 +494,6 @@ class SIGHUPListener extends SignalListener { System.out.println("SIGHUPListener process"); // XXX - temp, should call shutdown // System.exit(0); - //PKIServer.getPKIServer().shutdown(); + // PKIServer.getPKIServer().shutdown(); } } diff --git a/pki/base/common/src/com/netscape/cmscore/util/PFXUtils.java b/pki/base/common/src/com/netscape/cmscore/util/PFXUtils.java index 7cde72cce..80912d7a9 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/PFXUtils.java +++ b/pki/base/common/src/com/netscape/cmscore/util/PFXUtils.java @@ -17,7 +17,6 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - import java.io.ByteArrayOutputStream; import java.security.MessageDigest; import java.security.cert.X509Certificate; @@ -40,71 +39,61 @@ import org.mozilla.jss.pkix.primitive.PrivateKeyInfo; import com.netscape.certsrv.apps.CMS; import com.netscape.certsrv.base.EBaseException; - public class PFXUtils { /** * Creates a PKCS12 package. */ - public static byte[] createPFX(String pwd, X509Certificate x509cert, - byte privateKeyInfo[]) throws EBaseException { + public static byte[] createPFX(String pwd, X509Certificate x509cert, + byte privateKeyInfo[]) throws EBaseException { try { // add certificate SEQUENCE encSafeContents = new SEQUENCE(); - ASN1Value cert = new OCTET_STRING( - x509cert.getEncoded()); + ASN1Value cert = new OCTET_STRING(x509cert.getEncoded()); byte localKeyId[] = createLocalKeyId(x509cert); - SET certAttrs = createBagAttrs( - x509cert.getSubjectDN().toString(), localKeyId); + SET certAttrs = createBagAttrs(x509cert.getSubjectDN().toString(), + localKeyId); // attributes: user friendly name, Local Key ID - SafeBag certBag = new SafeBag(SafeBag.CERT_BAG, - new CertBag(CertBag.X509_CERT_TYPE, cert), - certAttrs); + SafeBag certBag = new SafeBag(SafeBag.CERT_BAG, new CertBag( + CertBag.X509_CERT_TYPE, cert), certAttrs); encSafeContents.addElement(certBag); // add key - org.mozilla.jss.util.Password pass = new - org.mozilla.jss.util.Password( + org.mozilla.jss.util.Password pass = new org.mozilla.jss.util.Password( pwd.toCharArray()); SEQUENCE safeContents = new SEQUENCE(); - PasswordConverter passConverter = new - PasswordConverter(); + PasswordConverter passConverter = new PasswordConverter(); // XXX - should generate salt - byte salt[] = {0x01, 0x01, 0x01, 0x01}; - PrivateKeyInfo pki = (PrivateKeyInfo) - ASN1Util.decode(PrivateKeyInfo.getTemplate(), - privateKeyInfo); + byte salt[] = { 0x01, 0x01, 0x01, 0x01 }; + PrivateKeyInfo pki = (PrivateKeyInfo) ASN1Util.decode( + PrivateKeyInfo.getTemplate(), privateKeyInfo); ASN1Value key = EncryptedPrivateKeyInfo.createPBE( - PBEAlgorithm.PBE_SHA1_DES3_CBC, - pass, salt, 1, passConverter, pki); - SET keyAttrs = createBagAttrs( - x509cert.getSubjectDN().toString(), + PBEAlgorithm.PBE_SHA1_DES3_CBC, pass, salt, 1, + passConverter, pki); + SET keyAttrs = createBagAttrs(x509cert.getSubjectDN().toString(), localKeyId); - SafeBag keyBag = new SafeBag( - SafeBag.PKCS8_SHROUDED_KEY_BAG, key, + SafeBag keyBag = new SafeBag(SafeBag.PKCS8_SHROUDED_KEY_BAG, key, keyAttrs); // ?? safeContents.addElement(keyBag); // build contents - AuthenticatedSafes authSafes = new - AuthenticatedSafes(); + AuthenticatedSafes authSafes = new AuthenticatedSafes(); authSafes.addSafeContents(safeContents); authSafes.addSafeContents(encSafeContents); - // authSafes.addEncryptedSafeContents( - // authSafes.DEFAULT_KEY_GEN_ALG, - // pass, null, 1, - // encSafeContents); + // authSafes.addEncryptedSafeContents( + // authSafes.DEFAULT_KEY_GEN_ALG, + // pass, null, 1, + // encSafeContents); PFX pfx = new PFX(authSafes); pfx.computeMacData(pass, null, 5); // ?? - ByteArrayOutputStream fos = new - ByteArrayOutputStream(); + ByteArrayOutputStream fos = new ByteArrayOutputStream(); pfx.encode(fos); pass.clear(); @@ -112,9 +101,9 @@ public class PFXUtils { // put final PKCS12 into volatile request return fos.toByteArray(); } catch (Exception e) { - throw new EBaseException( - CMS.getUserMessage("CMS_BASE_INTERNAL_ERROR", - "Failed to create PKCS12 - " + e.toString())); + throw new EBaseException(CMS.getUserMessage( + "CMS_BASE_INTERNAL_ERROR", + "Failed to create PKCS12 - " + e.toString())); } } @@ -122,7 +111,7 @@ public class PFXUtils { * Creates local key identifier. */ public static byte[] createLocalKeyId(X509Certificate cert) - throws EBaseException { + throws EBaseException { try { byte certDer[] = cert.getEncoded(); MessageDigest md = MessageDigest.getInstance("SHA"); @@ -130,9 +119,9 @@ public class PFXUtils { md.update(certDer); return md.digest(); } catch (Exception e) { - throw new EBaseException( - CMS.getUserMessage("CMS_BASE_INTERNAL_ERROR", - "Failed to create Key ID - " + e.toString())); + throw new EBaseException(CMS.getUserMessage( + "CMS_BASE_INTERNAL_ERROR", + "Failed to create Key ID - " + e.toString())); } } @@ -140,7 +129,7 @@ public class PFXUtils { * Creates bag attributes. */ public static SET createBagAttrs(String nickName, byte localKeyId[]) - throws EBaseException { + throws EBaseException { try { SET attrs = new SET(); SEQUENCE nickNameAttr = new SEQUENCE(); @@ -161,9 +150,9 @@ public class PFXUtils { attrs.addElement(localKeyAttr); return attrs; } catch (Exception e) { - throw new EBaseException( - CMS.getUserMessage("CMS_BASE_INTERNAL_ERROR", - "Failed to create Key Bag - " + e.toString())); + throw new EBaseException(CMS.getUserMessage( + "CMS_BASE_INTERNAL_ERROR", "Failed to create Key Bag - " + + e.toString())); } } } diff --git a/pki/base/common/src/com/netscape/cmscore/util/ProfileSubsystem.java b/pki/base/common/src/com/netscape/cmscore/util/ProfileSubsystem.java index 2d8e63c9f..5a217203f 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/ProfileSubsystem.java +++ b/pki/base/common/src/com/netscape/cmscore/util/ProfileSubsystem.java @@ -17,7 +17,6 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - import java.awt.Frame; import java.awt.TextArea; import java.awt.event.MouseAdapter; @@ -39,11 +38,9 @@ import com.netscape.certsrv.base.EBaseException; import com.netscape.certsrv.base.IConfigStore; import com.netscape.certsrv.base.ISubsystem; - /** - * A class represents a internal subsystem. This subsystem - * can be loaded into cert server kernel to perform - * run time system profiling. + * A class represents a internal subsystem. This subsystem can be loaded into + * cert server kernel to perform run time system profiling. * <P> * * @author thomask @@ -82,35 +79,30 @@ public class ProfileSubsystem extends Frame implements ISubsystem, Runnable { } /** - * Initializes this subsystem with the given - * configuration store. - * It first initializes resident subsystems, - * and it loads and initializes loadable - * subsystem specified in the configuration - * store. + * Initializes this subsystem with the given configuration store. It first + * initializes resident subsystems, and it loads and initializes loadable + * subsystem specified in the configuration store. * <P> - * Note that individual subsystem should be - * initialized in a separated thread if - * it has dependency on the initialization - * of other subsystems. + * Note that individual subsystem should be initialized in a separated + * thread if it has dependency on the initialization of other subsystems. * <P> - * + * * @param owner owner of this subsystem * @param config configuration store */ public synchronized void init(ISubsystem owner, IConfigStore config) - throws EBaseException { + throws EBaseException { JTabbedPane tabPane = new JTabbedPane(); // general panel JPanel pane = new JPanel(); mTextArea = new TextArea(); - // mTextArea.setSize(500, 180); - //mGC = new JButton("GC"); - // pane.setLayout(new GridLayout(2, 1)); + // mTextArea.setSize(500, 180); + // mGC = new JButton("GC"); + // pane.setLayout(new GridLayout(2, 1)); pane.add(mTextArea); - // pane.add(mGC); + // pane.add(mGC); mTextArea.setEditable(false); tabPane.addTab("General", mTextArea); tabPane.setSelectedIndex(0); @@ -141,9 +133,8 @@ public class ProfileSubsystem extends Frame implements ISubsystem, Runnable { } /* - * Returns the root configuration storage of this system. - * <P> - * + * Returns the root configuration storage of this system. <P> + * * @return configuration store of this subsystem */ public IConfigStore getConfigStore() { @@ -152,17 +143,16 @@ public class ProfileSubsystem extends Frame implements ISubsystem, Runnable { public void updateGeneralPanel() { Runtime.getRuntime().gc(); - String text = - "JDK VM Information " + "\n" + - "Total Memory: " + - Runtime.getRuntime().totalMemory() + "\n" + - "Used Memory: " + - (Runtime.getRuntime().totalMemory() - - Runtime.getRuntime().freeMemory()) + "\n" + - "Free Memory: " + - Runtime.getRuntime().freeMemory() + "\n" + - "Number of threads: " + - Thread.activeCount() + "\n"; + String text = "JDK VM Information " + + "\n" + + "Total Memory: " + + Runtime.getRuntime().totalMemory() + + "\n" + + "Used Memory: " + + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime() + .freeMemory()) + "\n" + "Free Memory: " + + Runtime.getRuntime().freeMemory() + "\n" + + "Number of threads: " + Thread.activeCount() + "\n"; mTextArea.setText(text); } @@ -197,7 +187,7 @@ public class ProfileSubsystem extends Frame implements ISubsystem, Runnable { colNames.addElement("isCurrent"); colNames.addElement("isInterrupted"); colNames.addElement("isDaemon"); - + mThreadModel.setInfo(data, colNames); if (mThreadTable != null) { mThreadTable.setModel(mThreadModel); @@ -219,8 +209,7 @@ public class ProfileSubsystem extends Frame implements ISubsystem, Runnable { } } - -class ThreadTableModel extends AbstractTableModel { +class ThreadTableModel extends AbstractTableModel { /** * */ @@ -236,34 +225,33 @@ class ThreadTableModel extends AbstractTableModel { columnNames = _columnNames; } - public String getColumnName(int column) { - return columnNames.elementAt(column).toString(); - } + public String getColumnName(int column) { + return columnNames.elementAt(column).toString(); + } - public int getRowCount() { - return rowData.size(); - } + public int getRowCount() { + return rowData.size(); + } - public int getColumnCount() { - return columnNames.size(); - } + public int getColumnCount() { + return columnNames.size(); + } - public Object getValueAt(int row, int column) { - return ((Vector) rowData.elementAt(row)).elementAt(column); - } + public Object getValueAt(int row, int column) { + return ((Vector) rowData.elementAt(row)).elementAt(column); + } - public boolean isCellEditable(int row, int column) { - return false; - } + public boolean isCellEditable(int row, int column) { + return false; + } - public void setValueAt(Object value, int row, int column) { - ((Vector) rowData.elementAt(row)).setElementAt(value, column); - fireTableCellUpdated(row, column); + public void setValueAt(Object value, int row, int column) { + ((Vector) rowData.elementAt(row)).setElementAt(value, column); + fireTableCellUpdated(row, column); } } - -class ThreadTableEvent extends MouseAdapter { +class ThreadTableEvent extends MouseAdapter { private JTable mThreadTable = null; @@ -271,8 +259,8 @@ class ThreadTableEvent extends MouseAdapter { mThreadTable = table; } - public void mouseClicked(MouseEvent e) { - if (e.getClickCount() == 2) { + public void mouseClicked(MouseEvent e) { + if (e.getClickCount() == 2) { int row = mThreadTable.getSelectedRow(); if (row != -1) { @@ -283,23 +271,23 @@ class ThreadTableEvent extends MouseAdapter { field.setEditable(false); - // get stack trace + // get stack trace Thread threads[] = new Thread[100]; int numThreads = Thread.enumerate(threads); - ByteArrayOutputStream outArray = new ByteArrayOutputStream(); + ByteArrayOutputStream outArray = new ByteArrayOutputStream(); for (int i = 0; i < numThreads; i++) { if (!threads[i].getName().equals(name)) continue; - PrintStream err = System.err; + PrintStream err = System.err; System.setErr(new PrintStream(outArray)); - //TODO remove. This was being called on the array object - //But you can only dump stack on the current thread - Thread.dumpStack(); - - System.setErr(err); + // TODO remove. This was being called on the array object + // But you can only dump stack on the current thread + Thread.dumpStack(); + + System.setErr(err); } String str = outArray.toString(); @@ -312,7 +300,7 @@ class ThreadTableEvent extends MouseAdapter { dialog.setContentPane(pane); dialog.show(); } - } + } } } diff --git a/pki/base/common/src/com/netscape/cmscore/util/StatsSubsystem.java b/pki/base/common/src/com/netscape/cmscore/util/StatsSubsystem.java index 4cc393e06..809415ffb 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/StatsSubsystem.java +++ b/pki/base/common/src/com/netscape/cmscore/util/StatsSubsystem.java @@ -17,7 +17,6 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - import java.util.Date; import java.util.Hashtable; import java.util.Vector; @@ -30,16 +29,14 @@ import com.netscape.certsrv.util.IStatsSubsystem; import com.netscape.certsrv.util.StatsEvent; /** - * A class represents a internal subsystem. This subsystem - * can be loaded into cert server kernel to perform - * statistics collection. + * A class represents a internal subsystem. This subsystem can be loaded into + * cert server kernel to perform statistics collection. * <P> * * @author thomask * @version $Revision$, $Date$ */ -public class StatsSubsystem implements IStatsSubsystem -{ +public class StatsSubsystem implements IStatsSubsystem { private String mId = null; private StatsEvent mAllTrans = new StatsEvent(null); private Date mStartTime = new Date(); @@ -64,101 +61,90 @@ public class StatsSubsystem implements IStatsSubsystem } /** - * Initializes this subsystem with the given - * configuration store. - * It first initializes resident subsystems, - * and it loads and initializes loadable - * subsystem specified in the configuration - * store. + * Initializes this subsystem with the given configuration store. It first + * initializes resident subsystems, and it loads and initializes loadable + * subsystem specified in the configuration store. * <P> - * Note that individual subsystem should be - * initialized in a separated thread if - * it has dependency on the initialization - * of other subsystems. + * Note that individual subsystem should be initialized in a separated + * thread if it has dependency on the initialization of other subsystems. * <P> - * + * * @param owner owner of this subsystem * @param config configuration store */ public synchronized void init(ISubsystem owner, IConfigStore config) - throws EBaseException - { - } - - public Date getStartTime() - { - return mStartTime; - } - - public void startTiming(String id) - { - startTiming(id, false /* not the main */); - } - - public void startTiming(String id, boolean mainAction) - { - Thread t = Thread.currentThread(); - Vector milestones = null; - if (mHashtable.containsKey(t.toString())) { - milestones = (Vector)mHashtable.get(t.toString()); - } else { - milestones = new Vector(); - mHashtable.put(t.toString(), milestones); - } - long startTime = CMS.getCurrentDate().getTime(); - StatsEvent currentST = null; - for (int i = 0; i < milestones.size(); i++) { - StatsMilestone se = (StatsMilestone)milestones.elementAt(i); - if (currentST == null) { - currentST = mAllTrans.getSubEvent(se.getId()); + throws EBaseException { + } + + public Date getStartTime() { + return mStartTime; + } + + public void startTiming(String id) { + startTiming(id, false /* not the main */); + } + + public void startTiming(String id, boolean mainAction) { + Thread t = Thread.currentThread(); + Vector milestones = null; + if (mHashtable.containsKey(t.toString())) { + milestones = (Vector) mHashtable.get(t.toString()); } else { - currentST = currentST.getSubEvent(se.getId()); + milestones = new Vector(); + mHashtable.put(t.toString(), milestones); + } + long startTime = CMS.getCurrentDate().getTime(); + StatsEvent currentST = null; + for (int i = 0; i < milestones.size(); i++) { + StatsMilestone se = (StatsMilestone) milestones.elementAt(i); + if (currentST == null) { + currentST = mAllTrans.getSubEvent(se.getId()); + } else { + currentST = currentST.getSubEvent(se.getId()); + } + } + if (currentST == null) { + if (!mainAction) { + return; /* ignore none main action */ + } + currentST = mAllTrans; + } + StatsEvent newST = currentST.getSubEvent(id); + if (newST == null) { + newST = new StatsEvent(currentST); + newST.setName(id); + currentST.addSubEvent(newST); + } + milestones.addElement(new StatsMilestone(id, startTime, newST)); + } + + public void endTiming(String id) { + long endTime = CMS.getCurrentDate().getTime(); + Thread t = Thread.currentThread(); + if (!mHashtable.containsKey(t.toString())) { + return; /* error */ + } + Vector milestones = (Vector) mHashtable.get(t.toString()); + if (milestones.size() == 0) { + return; /* error */ + } + StatsMilestone last = (StatsMilestone) milestones.remove(milestones + .size() - 1); + StatsEvent st = last.getStatsEvent(); + st.incNoOfOperations(1); + st.incTimeTaken(endTime - last.getStartTime()); + if (milestones.size() == 0) { + mHashtable.remove(t.toString()); } - } - if (currentST == null) { - if (!mainAction) { - return; /* ignore none main action */ - } - currentST = mAllTrans; - } - StatsEvent newST = currentST.getSubEvent(id); - if (newST == null) { - newST = new StatsEvent(currentST); - newST.setName(id); - currentST.addSubEvent(newST); - } - milestones.addElement(new StatsMilestone(id, startTime, newST)); - } - - public void endTiming(String id) - { - long endTime = CMS.getCurrentDate().getTime(); - Thread t = Thread.currentThread(); - if (!mHashtable.containsKey(t.toString())) { - return; /* error */ - } - Vector milestones = (Vector)mHashtable.get(t.toString()); - if (milestones.size() == 0) { - return; /* error */ - } - StatsMilestone last = (StatsMilestone)milestones.remove(milestones.size() - 1); - StatsEvent st = last.getStatsEvent(); - st.incNoOfOperations(1); - st.incTimeTaken(endTime - last.getStartTime()); - if (milestones.size() == 0) { - mHashtable.remove(t.toString()); - } - } - - public void resetCounters() - { - mStartTime = CMS.getCurrentDate(); - mAllTrans.resetCounters(); - } - - public StatsEvent getMainStatsEvent() - { - return mAllTrans; + } + + public void resetCounters() { + mStartTime = CMS.getCurrentDate(); + mAllTrans.resetCounters(); + } + + public StatsEvent getMainStatsEvent() { + return mAllTrans; } public void startup() throws EBaseException { @@ -171,9 +157,8 @@ public class StatsSubsystem implements IStatsSubsystem } /* - * Returns the root configuration storage of this system. - * <P> - * + * Returns the root configuration storage of this system. <P> + * * @return configuration store of this subsystem */ public IConfigStore getConfigStore() { @@ -181,31 +166,26 @@ public class StatsSubsystem implements IStatsSubsystem } } -class StatsMilestone -{ - private String mId = null; - private long mStartTime = 0; - private StatsEvent mST = null; - - public StatsMilestone(String id, long startTime, StatsEvent st) - { - mId = id; - mStartTime = startTime; - mST = st; - } - - public String getId() - { - return mId; - } - - public long getStartTime() - { - return mStartTime; - } - - public StatsEvent getStatsEvent() - { - return mST; - } +class StatsMilestone { + private String mId = null; + private long mStartTime = 0; + private StatsEvent mST = null; + + public StatsMilestone(String id, long startTime, StatsEvent st) { + mId = id; + mStartTime = startTime; + mST = st; + } + + public String getId() { + return mId; + } + + public long getStartTime() { + return mStartTime; + } + + public StatsEvent getStatsEvent() { + return mST; + } } diff --git a/pki/base/common/src/com/netscape/cmscore/util/UtilMessage.java b/pki/base/common/src/com/netscape/cmscore/util/UtilMessage.java index a69a976cd..f6814aee0 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/UtilMessage.java +++ b/pki/base/common/src/com/netscape/cmscore/util/UtilMessage.java @@ -17,16 +17,14 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - import java.util.Locale; import com.netscape.certsrv.base.MessageFormatter; - /** - * This object is used to easily create I18N messages for utility - * classes and standalone programs. - * + * This object is used to easily create I18N messages for utility classes and + * standalone programs. + * * @author mikep * @version $Revision$, $Date$ * @see com.netscape.certsrv.base.MessageFormatter @@ -46,7 +44,7 @@ public class UtilMessage { /** * Constructs a message event * <P> - * + * * @param msgFormat the message string */ public UtilMessage(String msgFormat) { @@ -56,11 +54,12 @@ public class UtilMessage { /** * Constructs a message with a parameter. For example, + * * <PRE> - * new UtilMessage("failed to load {0}", fileName); + * new UtilMessage("failed to load {0}", fileName); * </PRE> * <P> - * + * * @param msgFormat details in message string format * @param param message string parameter */ @@ -71,9 +70,9 @@ public class UtilMessage { } /** - * Constructs a message from an exception. It can be used to carry - * a system exception that may contain information about - * the context. For example, + * Constructs a message from an exception. It can be used to carry a system + * exception that may contain information about the context. For example, + * * <PRE> * try { * ... @@ -82,7 +81,7 @@ public class UtilMessage { * } * </PRE> * <P> - * + * * @param msgFormat exception details in message string format * @param exception system exception */ @@ -95,6 +94,7 @@ public class UtilMessage { /** * Constructs a message from a base exception. This will use the msgFormat * from the exception itself. + * * <PRE> * try { * ... @@ -103,7 +103,7 @@ public class UtilMessage { * } * </PRE> * <P> - * + * * @param exception CMS exception */ public UtilMessage(Exception e) { @@ -113,10 +113,10 @@ public class UtilMessage { } /** - * Constructs a message event with a list of parameters - * that will be substituted into the message format. + * Constructs a message event with a list of parameters that will be + * substituted into the message format. * <P> - * + * * @param msgFormat message string format * @param params list of message format parameters */ @@ -128,7 +128,7 @@ public class UtilMessage { /** * Returns the current message format string. * <P> - * + * * @return details message */ public String getMessage() { @@ -138,7 +138,7 @@ public class UtilMessage { /** * Returns a list of parameters. * <P> - * + * * @return list of message format parameters */ public Object[] getParameters() { @@ -146,10 +146,10 @@ public class UtilMessage { } /** - * Returns localized message string. This method should - * only be called if a localized string is necessary. + * Returns localized message string. This method should only be called if a + * localized string is necessary. * <P> - * + * * @return details message */ public String toString() { @@ -159,19 +159,18 @@ public class UtilMessage { /** * Returns the string based on the given locale. * <P> - * + * * @param locale locale * @return details message */ public String toString(Locale locale) { return MessageFormatter.getLocalizedString(locale, getBundleName(), - getMessage(), - getParameters()); + getMessage(), getParameters()); } /** - * Gets the resource bundle name for this class instance. This should - * be overridden by subclasses who have their own resource bundles. + * Gets the resource bundle name for this class instance. This should be + * overridden by subclasses who have their own resource bundles. */ protected String getBundleName() { return mBundleName; diff --git a/pki/base/common/src/com/netscape/cmscore/util/UtilResources.java b/pki/base/common/src/com/netscape/cmscore/util/UtilResources.java index 5892adc39..c62972910 100644 --- a/pki/base/common/src/com/netscape/cmscore/util/UtilResources.java +++ b/pki/base/common/src/com/netscape/cmscore/util/UtilResources.java @@ -17,14 +17,12 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.util; - import java.util.ListResourceBundle; - /** * A class represents a resource bundle for miscellanous utilities * <P> - * + * * @author mikep * @version $Revision$, $Date$ * @see java.util.ListResourceBundle @@ -39,8 +37,7 @@ public class UtilResources extends ListResourceBundle { } /** - * Constants. The suffix represents the number of - * possible parameters. + * Constants. The suffix represents the number of possible parameters. */ public final static String HASH_FILE_CHECK_USAGE = "hashFileCheckUsage"; public final static String BAD_ARG_COUNT = "badArgCount"; @@ -57,18 +54,20 @@ public class UtilResources extends ListResourceBundle { public final static String RESTART_SIG = "restartSignal"; static final Object[][] contents = { - {HASH_FILE_CHECK_USAGE, "usage: HashFileCheck <filename>"}, - {BAD_ARG_COUNT, "incorrect number of arguments"}, - {NO_SUCH_FILE_1, "can''t find file {0}"}, - {FILE_TRUNCATED, "Log file has been truncated."}, - {DIGEST_MATCH_1, "Hash digest matches log file. {0} OK"}, - {DIGEST_DONT_MATCH_1, "Hash digest does NOT match log file. {0} and/or hash file is corrupt or the password is incorrect."}, - {EXCEPTION_1, "Caught unexpected exception {0}"}, - {LOG_PASSWORD, "Please enter the log file hash digest password: "}, - {NO_USERID, "No user id in config file. Running as {0}"}, - {NO_SUCH_USER_2, "No such user as {0}. Running as {1}"}, - {NO_UID_PERMISSION_2, "Can''t change process uid to {0}. Running as {1}"}, - {SHUTDOWN_SIG, "Received shutdown signal"}, - {RESTART_SIG, "Received restart signal"}, - }; + { HASH_FILE_CHECK_USAGE, "usage: HashFileCheck <filename>" }, + { BAD_ARG_COUNT, "incorrect number of arguments" }, + { NO_SUCH_FILE_1, "can''t find file {0}" }, + { FILE_TRUNCATED, "Log file has been truncated." }, + { DIGEST_MATCH_1, "Hash digest matches log file. {0} OK" }, + { + DIGEST_DONT_MATCH_1, + "Hash digest does NOT match log file. {0} and/or hash file is corrupt or the password is incorrect." }, + { EXCEPTION_1, "Caught unexpected exception {0}" }, + { LOG_PASSWORD, "Please enter the log file hash digest password: " }, + { NO_USERID, "No user id in config file. Running as {0}" }, + { NO_SUCH_USER_2, "No such user as {0}. Running as {1}" }, + { NO_UID_PERMISSION_2, + "Can''t change process uid to {0}. Running as {1}" }, + { SHUTDOWN_SIG, "Received shutdown signal" }, + { RESTART_SIG, "Received restart signal" }, }; } |