diff --git a/org.adempiere.base/src/org/compiere/model/GridTable.java b/org.adempiere.base/src/org/compiere/model/GridTable.java index a60fe4dc2b..fdfb65cecf 100644 --- a/org.adempiere.base/src/org/compiere/model/GridTable.java +++ b/org.adempiere.base/src/org/compiere/model/GridTable.java @@ -424,8 +424,10 @@ public class GridTable extends AbstractTableModel m_SQL += " ORDER BY " + m_orderClause; } // - log.fine(m_SQL_Count); - Env.setContext(m_ctx, m_WindowNo, m_TabNo, GridTab.CTX_SQL, m_SQL); + if (log.isLoggable(Level.FINE)) + log.fine(m_SQL_Count); + if (log.isLoggable(Level.INFO)) + Env.setContext(m_ctx, m_WindowNo, m_TabNo, GridTab.CTX_SQL, m_SQL); return m_SQL; } // createSelectSql diff --git a/org.adempiere.base/src/org/compiere/model/MIssue.java b/org.adempiere.base/src/org/compiere/model/MIssue.java index b11570ba91..e684afbdfd 100644 --- a/org.adempiere.base/src/org/compiere/model/MIssue.java +++ b/org.adempiere.base/src/org/compiere/model/MIssue.java @@ -53,9 +53,10 @@ public class MIssue extends X_AD_Issue */ public static MIssue create (LogRecord record) { - s_log.config(record.getMessage()); + if (s_log.isLoggable(Level.CONFIG)) + s_log.config(record.getMessage()); MSystem system = MSystem.get(Env.getCtx()); - if (!DB.isConnected() + if (!DB.isConnected(false) || system == null || !system.isAutoErrorReport()) return null; @@ -406,7 +407,7 @@ public class MIssue extends X_AD_Issue public String report() { //if (true) - return "-"; + return null; /*StringBuilder parameter = new StringBuilder("?"); if (getRecord_ID() == 0) // don't report return "ID=0"; diff --git a/org.adempiere.base/src/org/compiere/util/CLogErrorBuffer.java b/org.adempiere.base/src/org/compiere/util/CLogErrorBuffer.java index 491c870a27..b9f0c49d74 100644 --- a/org.adempiere.base/src/org/compiere/util/CLogErrorBuffer.java +++ b/org.adempiere.base/src/org/compiere/util/CLogErrorBuffer.java @@ -73,6 +73,11 @@ public class CLogErrorBuffer extends Handler setFilter(CLogFilter.get()); } // initialize + private boolean isAddLogRecordToContext() + { + return CLogMgt.getLevelAsInt() <= Level.INFO.intValue(); + } + /** * Issue Error * @return true if issue error @@ -124,62 +129,83 @@ public class CLogErrorBuffer extends Handler */ public void publish (LogRecord record) { + if (!isLoggable (record)) + return; + checkContext(); @SuppressWarnings("unchecked") LinkedList m_logs = (LinkedList) Env.getCtx().get(LOGS_KEY); - if (!isLoggable (record) || m_logs == null) + if (m_logs == null) return; // Output - synchronized (m_logs) + if (isAddLogRecordToContext()) { - if (m_logs.size() >= LOG_SIZE) - m_logs.removeFirst(); - m_logs.add(record); + synchronized (m_logs) + { + if (m_logs.size() >= LOG_SIZE) + m_logs.removeFirst(); + m_logs.add(record); + } } // We have an error if (record.getLevel() == Level.SEVERE) { - @SuppressWarnings("unchecked") - LinkedList m_errors = (LinkedList) Env.getCtx().get(ERRORS_KEY); - @SuppressWarnings("unchecked") - LinkedList m_history = (LinkedList) Env.getCtx().get(HISTORY_KEY); - if (m_errors.size() >= ERROR_SIZE) + if (isAddLogRecordToContext()) { - m_errors.removeFirst(); - m_history.removeFirst(); + @SuppressWarnings("unchecked") + LinkedList m_errors = (LinkedList) Env.getCtx().get(ERRORS_KEY); + synchronized (m_errors) + { + if (m_errors.size() >= ERROR_SIZE) + { + m_errors.removeFirst(); + } + // Add Error + m_errors.add(record); + } } - // Add Error - m_errors.add(record); record.getSourceClassName(); // forces Class Name eval // Create History - ArrayList history = new ArrayList(); - for (int i = m_logs.size()-1; i >= 0; i--) + if (isAddLogRecordToContext()) { - LogRecord rec = (LogRecord)m_logs.get(i); - if (rec.getLevel() == Level.SEVERE) + @SuppressWarnings("unchecked") + LinkedList m_history = (LinkedList) Env.getCtx().get(HISTORY_KEY); + ArrayList history = new ArrayList(); + synchronized (m_history) { - if (history.size() == 0) - history.add(rec); - else - break; // don't include previous error + if (m_history.size() >= ERROR_SIZE) + { + m_history.removeFirst(); + } + for (int i = m_logs.size()-1; i >= 0; i--) + { + LogRecord rec = (LogRecord)m_logs.get(i); + if (rec.getLevel() == Level.SEVERE) + { + if (history.size() == 0) + history.add(rec); + else + break; // don't include previous error + } + else + { + history.add(rec); + if (history.size() > 10) + break; // no more then 10 history records + } + + } + LogRecord[] historyArray = new LogRecord[history.size()]; + int no = 0; + for (int i = history.size()-1; i >= 0; i--) + historyArray[no++] = (LogRecord)history.get(i); + m_history.add(historyArray); } - else - { - history.add(rec); - if (history.size() > 10) - break; // no more then 10 history records - } - } - LogRecord[] historyArray = new LogRecord[history.size()]; - int no = 0; - for (int i = history.size()-1; i >= 0; i--) - historyArray[no++] = (LogRecord)history.get(i); - m_history.add(historyArray); // Issue Reporting if (isIssueError()) { @@ -199,12 +225,11 @@ public class CLogErrorBuffer extends Handler && loggerName.indexOf("CConnection") == -1 ) { - setIssueError(false); try { MIssue.create(record); - setIssueError(true); - } catch (Throwable e) + } + catch (Throwable e) { //failed to save exception to db, print to console System.err.println(getFormatter().format(record)); diff --git a/org.adempiere.base/src/org/compiere/util/DB.java b/org.adempiere.base/src/org/compiere/util/DB.java index 3b15bb0456..3a55224a4f 100644 --- a/org.adempiere.base/src/org/compiere/util/DB.java +++ b/org.adempiere.base/src/org/compiere/util/DB.java @@ -339,11 +339,6 @@ public final class DB //direct connection boolean success = false; - CLogErrorBuffer eb = CLogErrorBuffer.get(false); - if (eb != null && eb.isIssueError()) - eb.setIssueError(false); - else - eb = null; // don't reset try { Connection conn = getConnectionRW(createNew); // try to get a connection @@ -358,8 +353,6 @@ public final class DB { success = false; } - if (eb != null) - eb.setIssueError(true); return success; } // isConnected diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java index 9ba4b09e1b..2580beaba3 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java @@ -2356,7 +2356,8 @@ public class FindWindow extends Window implements EventListener, ValueCha String finalSQL = MRole.getDefault().addAccessSQL(sql.toString(), m_tableName, MRole.SQL_NOTQUALIFIED, MRole.SQL_RO); finalSQL = Env.parseContext(Env.getCtx(), m_targetWindowNo, finalSQL, false); - Env.setContext(Env.getCtx(), m_targetWindowNo, TABNO, GridTab.CTX_FindSQL, finalSQL); + if (log.isLoggable(Level.INFO)) + Env.setContext(Env.getCtx(), m_targetWindowNo, TABNO, GridTab.CTX_FindSQL, finalSQL); // Execute Qusery m_total = 999999;