Author: xavier
Date: Tue Nov 13 03:11:12 2007
New Revision: 594484

URL: http://svn.apache.org/viewvc?rev=594484&view=rev
Log:
FIX: Bad IvyContext scope causing memory leak and bad handling of subproject 
builds (IVY-639)
-> fix a bug in the way problems were handled: consolidating problems from the 
stack doesn't work since the stack may have been cleared before sumupProblems 
is called

Modified:
    
incubator/ivy/core/trunk/src/java/org/apache/ivy/util/MessageLoggerEngine.java

Modified: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/util/MessageLoggerEngine.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/util/MessageLoggerEngine.java?rev=594484&r1=594483&r2=594484&view=diff
==============================================================================
--- 
incubator/ivy/core/trunk/src/java/org/apache/ivy/util/MessageLoggerEngine.java 
(original)
+++ 
incubator/ivy/core/trunk/src/java/org/apache/ivy/util/MessageLoggerEngine.java 
Tue Nov 13 03:11:12 2007
@@ -37,6 +37,12 @@
     private final Stack/*<MessageLogger>*/ loggerStack = new Stack();
     
     private MessageLogger defaultLogger = Message.getDefaultLogger();
+
+    private List problems = new ArrayList();
+
+    private List warns = new ArrayList();
+
+    private List errors = new ArrayList();
     
     public MessageLoggerEngine() {
     }
@@ -87,34 +93,27 @@
     }
 
     // consolidated methods
+    public void warn(String msg) {
+        peekLogger().warn(msg);
+        problems.add("WARN:  " + msg);
+        warns.add(msg);
+    }
     
+    public void error(String msg) {
+        peekLogger().error(msg);
+        problems.add("\tERROR: " + msg);
+        errors.add(msg);
+    }
+
     public List getErrors() {
-        List errors = new ArrayList();
-        errors.addAll(defaultLogger.getErrors());
-        for (Iterator iter = loggerStack.iterator(); iter.hasNext();) {
-            MessageLogger l = (MessageLogger) iter.next();
-            errors.addAll(l.getErrors());
-        }
         return errors;
     }
 
     public List getProblems() {
-        List problems = new ArrayList();
-        problems.addAll(defaultLogger.getProblems());
-        for (Iterator iter = loggerStack.iterator(); iter.hasNext();) {
-            MessageLogger l = (MessageLogger) iter.next();
-            problems.addAll(l.getProblems());
-        }
         return problems;
     }
 
     public List getWarns() {
-        List warns = new ArrayList();
-        warns.addAll(defaultLogger.getWarns());
-        for (Iterator iter = loggerStack.iterator(); iter.hasNext();) {
-            MessageLogger l = (MessageLogger) iter.next();
-            warns.addAll(l.getWarns());
-        }
         return warns;
     }
 
@@ -129,6 +128,9 @@
             MessageLogger l = (MessageLogger) iter.next();
             l.clearProblems();
         }
+        problems.clear();
+        errors.clear();
+        warns.clear();
     }
 
     public void setShowProgress(boolean progress) {
@@ -163,10 +165,6 @@
         peekLogger().endProgress(msg);
     }
 
-    public void error(String msg) {
-        peekLogger().error(msg);
-    }
-
     public void info(String msg) {
         peekLogger().info(msg);
     }
@@ -189,10 +187,6 @@
 
     public void verbose(String msg) {
         peekLogger().verbose(msg);
-    }
-
-    public void warn(String msg) {
-        peekLogger().warn(msg);
     }
 
     


Reply via email to