summaryrefslogtreecommitdiffstats
path: root/LogParser
diff options
context:
space:
mode:
authorTej, Tarun <tt3868@att.com>2017-09-11 13:33:47 -0400
committerTej, Tarun <tt3868@att.com>2017-09-11 14:04:48 -0400
commit663ed59389f1e1125a659f2e55dbe3c3a30d3ea9 (patch)
treefd6a3b2f0cbe89d6665d1fa0a8e33f37a30b2661 /LogParser
parent8f7700fa98a92cb8bf8bc4fb7af20c58080821ff (diff)
Health check issue fixes
Fixes to PDP log parser failure issues and sonar fixes Issue-Id: POLICY-211 Change-Id: I8086a6fc1dc24719c3ffd3785a12c086ab452ae7 Signed-off-by: Tej, Tarun <tt3868@att.com>
Diffstat (limited to 'LogParser')
-rw-r--r--LogParser/src/main/java/org/onap/xacml/parser/ParseLog.java105
1 files changed, 55 insertions, 50 deletions
diff --git a/LogParser/src/main/java/org/onap/xacml/parser/ParseLog.java b/LogParser/src/main/java/org/onap/xacml/parser/ParseLog.java
index c3d631e1f..1dbe12523 100644
--- a/LogParser/src/main/java/org/onap/xacml/parser/ParseLog.java
+++ b/LogParser/src/main/java/org/onap/xacml/parser/ParseLog.java
@@ -77,22 +77,21 @@ public class ParseLog {
private static String logFile;
private static String debuglogFile;
private static String errorlogFile;
- private static String JDBC_URL;
- private static String JDBC_USER;
- private static String JDBC_PASSWORD;
- private static String JDBC_DRIVER;
+ private static String jdbcUrl;
+ private static String jdbcUser;
+ private static String jdbcPassword;
+ private static String jdbcDriver;
private static int maxLength = 255; //Max length that is allowed in the DB table
private static String resourceName;
private static long sleepTimer = 50000;
static IntegrityMonitor im;
private static boolean isMissingLogFile;
//Default:Timer initial delay and the delay between in milliseconds before task is to be execute
- private static int TIMER_DELAY_TIME = 1000;
+ private static final int TIMER_DELAY_TIME = 1000;
//Default:Timer scheduleAtFixedRate period - time in milliseconds between successive task executions
- private static int CHECK_INTERVAL = 86400000; // run this clean up once a day
- private static RandomAccessFile randomAccessFile;
+ private static int checkInterval = 86400000; // run this clean up once a day
private static String loggingProcess = "Error processing line in ";
- private static int TIME_FRAME = 5;
+ private static int defaultTimeFrame = 5;
private static String message =" value read in: ";
private static String lineFormat = "(\\r\\n|\\n)";
private static String lineRead = "-line-Read:";
@@ -344,30 +343,32 @@ public class ParseLog {
file.createNewFile();
return null;
}
- randomAccessFile = new RandomAccessFile(file, "r");
- StringBuilder builder = new StringBuilder();
- long length = file.length();
- logger.debug("dataFileName: " +dataFileName);
- if(length > 0){
- length--;
- randomAccessFile.seek(length);
- for(long seek = length; seek >= 0; --seek){
- randomAccessFile.seek(seek);
- char c = (char)randomAccessFile.read();
- builder.append(c);
- if(c == '\n'){
- builder = builder.reverse();
- logger.debug("builder.toString(): " +builder.toString());
- if (builder.toString().contains(last+dataFileName+lineRead)){
- String[] parseString = builder.toString().split(last+dataFileName+lineRead);
- String returnValue = parseString[1].replace("\r", "");
- return returnValue.trim();
- }
- builder = new StringBuilder();
- }
- }
- }
-
+ try(RandomAccessFile randomAccessFile = new RandomAccessFile(file, "r");){
+ StringBuilder builder = new StringBuilder();
+ long length = file.length();
+ logger.debug("dataFileName: " +dataFileName);
+ if(length > 0){
+ length--;
+ randomAccessFile.seek(length);
+ for(long seek = length; seek >= 0; --seek){
+ randomAccessFile.seek(seek);
+ char c = (char)randomAccessFile.read();
+ builder.append(c);
+ if(c == '\n'){
+ builder = builder.reverse();
+ logger.debug("builder.toString(): " +builder.toString());
+ if (builder.toString().contains(last+dataFileName+lineRead)){
+ String[] parseString = builder.toString().split(last+dataFileName+lineRead);
+ String returnValue = parseString[1].replace("\r", "");
+ randomAccessFile.close();
+ return returnValue.trim();
+ }
+ builder = new StringBuilder();
+ }
+ }
+ }
+ randomAccessFile.close();
+ }
return null;
}
@@ -602,7 +603,7 @@ public class ParseLog {
private static void writeDB(LogEntryObject returnLogValue) {
- Connection conn = dbConnection(JDBC_DRIVER, JDBC_URL, JDBC_USER,JDBC_PASSWORD);
+ Connection conn = dbConnection(jdbcDriver, jdbcUrl, jdbcUser,jdbcPassword);
dbAccesss(conn, returnLogValue.getSystem(), returnLogValue.getDescription(),
returnLogValue.getDate(), returnLogValue.getRemote(),
returnLogValue.getSystemType(), returnLogValue.getLogType().toString());
@@ -613,8 +614,7 @@ public class ParseLog {
try {
Class.forName(driver);
- Connection conn = DriverManager.getConnection(jdbc, user, pass);
- return conn;
+ return DriverManager.getConnection(jdbc, user, pass);
} catch ( Exception e) {
logger.error("Error connecting to DB: " + e);
}
@@ -713,19 +713,24 @@ public class ParseLog {
if(cleanupInterval != null && !cleanupInterval.isEmpty()){
int intCheckInterval = Integer.parseInt(cleanupInterval);
if(intCheckInterval > 300000) {//must be longer than 5 minutes
- CHECK_INTERVAL = intCheckInterval;
+ checkInterval = intCheckInterval;
}
}else{
- logger.debug("No value defined for CHECK_INTERVAL in parserlog.properties, so use its default value:" + CHECK_INTERVAL + " milliseconds");
+ logger.debug("No value defined for CHECK_INTERVAL in parserlog.properties, so use its default value:" + checkInterval + " milliseconds");
}
- if(timeFrame != null && !timeFrame.isEmpty()){
- int intTimeFrame = Integer.parseInt(timeFrame);
+ if(timeFrame != null && !timeFrame.trim().isEmpty()){
+ int intTimeFrame = defaultTimeFrame;
+ try{
+ intTimeFrame = Integer.parseInt(timeFrame);
+ }catch(NumberFormatException e){
+ logger.debug("Improper value defined for TIME_FRAME in parserlog.properties, so use its default value:" + defaultTimeFrame + " days");
+ }
if(intTimeFrame > 0){
- TIME_FRAME = intTimeFrame;
+ defaultTimeFrame = intTimeFrame;
}
}else{
- logger.debug("No value defined for TIME_FRAME in parserlog.properties, so use its default value:" + TIME_FRAME + " days");
+ logger.debug("No value defined for TIME_FRAME in parserlog.properties, so use its default value:" + defaultTimeFrame + " days");
}
}
@@ -800,17 +805,17 @@ public class ParseLog {
setLogFileProperties(splitString);
- JDBC_URL = config.getProperty("JDBC_URL").replace("'", "");
- JDBC_USER = config.getProperty("JDBC_USER");
- JDBC_DRIVER = config.getProperty("JDBC_DRIVER");
- JDBC_PASSWORD = config.getProperty("JDBC_PASSWORD");
+ jdbcUrl = config.getProperty("JDBC_URL").replace("'", "");
+ jdbcUser = config.getProperty("JDBC_USER");
+ jdbcDriver = config.getProperty("JDBC_DRIVER");
+ jdbcPassword = config.getProperty("JDBC_PASSWORD");
return config;
} catch (IOException e) {
logger.error("Error porcessing Config file will be unable to create Health Check" + e);
}catch(Exception e){
logger.error("Error getPropertiesValue on TIME_FRAME", e);
- logger.debug("Error getPropertiesValue on TIME_FRAME, so use its default value:" + TIME_FRAME + " days");
+ logger.debug("Error getPropertiesValue on TIME_FRAME, so use its default value:" + defaultTimeFrame + " days");
}
}
@@ -822,13 +827,13 @@ public class ParseLog {
}
public static Connection getDbConnection(){
- return dbConnection(JDBC_DRIVER, JDBC_URL, JDBC_USER,JDBC_PASSWORD);
+ return dbConnection(jdbcDriver, jdbcUrl, jdbcUser,jdbcPassword);
}
private static void startCleanUp(){
- Connection conn = dbConnection(JDBC_DRIVER, JDBC_URL, JDBC_USER,JDBC_PASSWORD);
- CleanUpSystemLogDB cleanUp = new CleanUpSystemLogDB(conn, TIME_FRAME);
+ Connection conn = dbConnection(jdbcDriver, jdbcUrl, jdbcUser,jdbcPassword);
+ CleanUpSystemLogDB cleanUp = new CleanUpSystemLogDB(conn, defaultTimeFrame);
Timer timer = new Timer(true);
- timer.scheduleAtFixedRate(cleanUp, TIMER_DELAY_TIME, CHECK_INTERVAL);
+ timer.scheduleAtFixedRate(cleanUp, TIMER_DELAY_TIME, checkInterval);
logger.info("startCleanUp begins! : " + new Date());
}
} \ No newline at end of file