Author: norman
Date: Tue Nov 21 10:36:12 2006
New Revision: 477804

URL: http://svn.apache.org/viewvc?view=rev&rev=477804
Log:
Check if used VirtualUserTableService is manageable before cast. If not throw 
an Exception to avoid ClastCastException. See JAMES-706
Fix a typo in a Classname

Added:
    
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagementMBean.java
      - copied, changed from r476928, 
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagmentMBean.java
Removed:
    
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagmentMBean.java
Modified:
    
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagement.java
    
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagement.xinfo
    
james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java

Modified: 
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagement.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagement.java?view=diff&rev=477804&r1=477803&r2=477804
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagement.java
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagement.java
 Tue Nov 21 10:36:12 2006
@@ -37,7 +37,7 @@
  * Management for VirtualUserTables
  * 
  */
-public class VirtualUserTableManagement implements Serviceable, 
VirtualUserTableManagementService, VirtualUserTableManagmentMBean {
+public class VirtualUserTableManagement implements Serviceable, 
VirtualUserTableManagementService, VirtualUserTableManagementMBean {
 
     VirtualUserTableStore store;
     org.apache.james.services.VirtualUserTableManagement defaultVUT;    
@@ -75,6 +75,9 @@
             // Check if a table with the given name exists, if not throw an 
Exception
             if (vut == null) {
                 throw new VirtualUserTableManagementException("No 
VirtualUserTable with such name: " + tableName);
+            } else if (!(vut instanceof 
org.apache.james.services.VirtualUserTableManagement)){
+                // Used VUT not support management, throw an Exception
+                throw new VirtualUserTableManagementException("Used 
VirtualUserTable implementation not support management");
             } else {
                 return vut;
             }

Modified: 
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagement.xinfo
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagement.xinfo?view=diff&rev=477804&r1=477803&r2=477804
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagement.xinfo
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagement.xinfo
 Tue Nov 21 10:36:12 2006
@@ -13,7 +13,7 @@
   
   <!-- interfaces that may be exported to manange this block -->
   <management-access-points>
-    <service 
name="org.apache.james.management.VirtualUserTableManagmentMBean"/>
+    <service 
name="org.apache.james.management.VirtualUserTableManagementMBean"/>
   </management-access-points>  
   
   <dependencies>

Copied: 
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagementMBean.java
 (from r476928, 
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagmentMBean.java)
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagementMBean.java?view=diff&rev=477804&p1=james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagmentMBean.java&r1=476928&p2=james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagementMBean.java&r2=477804
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagmentMBean.java
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/management/VirtualUserTableManagementMBean.java
 Tue Nov 21 10:36:12 2006
@@ -31,7 +31,7 @@
  * 
  * @phoenix:mx-topic name="VirtualUserTableAdministration"
  */
-public interface VirtualUserTableManagmentMBean {
+public interface VirtualUserTableManagementMBean {
     
     /**
      * Add regex mapping

Modified: 
james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java?view=diff&rev=477804&r1=477803&r2=477804
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java
 Tue Nov 21 10:36:12 2006
@@ -377,7 +377,7 @@
             
         }  
     }
-
+    
     /*
      * private method to log the extended SendFailedException introduced in 
JavaMail 1.3.2.
      */
@@ -797,13 +797,31 @@
         } else {
             out.print("Temporary");
         }
-        StringBuffer logBuffer =
-            new StringBuffer(64)
+        StringBuffer logBuffer =  new StringBuffer(64)
                 .append(" exception delivering mail (")
                 .append(mail.getName())
-                .append(": ");
+                .append(". ");
         out.print(logBuffer.toString());
+        
+        // Try to log the remote mailserver answer to give some informations 
why the message was not accepted
+        if (ex instanceof SMTPSendFailedException) {
+            out.println("Remote Host said: " + ex.getMessage() + ".");
+        } else {
+            Exception e;
+            while ((e = ex.getNextException()) != null && e instanceof 
MessagingException) {
+                if (e instanceof SMTPAddressFailedException) {
+                    SMTPAddressFailedException exception = 
(SMTPAddressFailedException) e;
+                    Address[] addresses = exception.getInvalidAddresses();
+                    
+                    for(int i = 0; i < addresses.length; i++) {
+                        out.println(addresses[i] + " -> " + e.getMessage());
+                    }
+                }
+            }
+        } 
+
         if (isDebug) ex.printStackTrace(out);
+        
         log(sout.toString());
         if (!permanent) {
             if (!mail.getState().equals(Mail.ERROR)) {
@@ -868,6 +886,8 @@
         }
         return true;
     }
+    
+
 
     private void bounce(Mail mail, MessagingException ex) {
         StringWriter sout = new StringWriter();



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to