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]