Author: hansbak
Date: Mon Nov 20 18:54:01 2006 New Revision: 477480 URL: http://svn.apache.org/viewvc?view=rev&rev=477480 Log: various improvements for processing incoming email to avoid NPE at bad content of emails. Modified: incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailServices.java incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailWorker.java incubator/ofbiz/trunk/applications/party/servicedef/services.xml incubator/ofbiz/trunk/framework/common/config/general.properties Modified: incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailServices.java URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailServices.java?view=diff&rev=477480&r1=477479&r2=477480 ============================================================================== --- incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailServices.java (original) +++ incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailServices.java Mon Nov 20 18:54:01 2006 @@ -612,17 +612,15 @@ emailAddress = (InternetAddress)addr; if (!UtilValidate.isEmpty(emailAddress)) { - map = new HashMap(); - map.put("address", emailAddress.getAddress()); - map.put("userLogin", userLogin); - result = dispatcher.runSync("findPartyFromEmailAddress", map); - - tempResults.add(result); + result = dispatcher.runSync("findPartyFromEmailAddress", + UtilMisc.toMap("address", emailAddress.getAddress(), "userLogin", userLogin)); + if (result.get("partyId") != null) { + tempResults.add(result); + } } } } } - return tempResults; } @@ -707,7 +705,7 @@ String spamHeaderName = UtilProperties.getPropertyValue("general.properties", "mail.spam.name", "N"); String configHeaderValue = UtilProperties.getPropertyValue("general.properties", "mail.spam.value"); // only execute when config file has been set && header variable found - if (!spamHeaderName.equals("N") && message.getHeader(spamHeaderName) != null) { + if (!spamHeaderName.equals("N") && message.getHeader(spamHeaderName) != null && message.getHeader(spamHeaderName).length > 0) { String msgHeaderValue = message.getHeader(spamHeaderName)[0]; if(msgHeaderValue != null && msgHeaderValue.startsWith(configHeaderValue)) { Debug.logInfo("Incoming Email message ignored, was detected by external spam checker", module); Modified: incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailWorker.java URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailWorker.java?view=diff&rev=477480&r1=477479&r2=477480 ============================================================================== --- incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailWorker.java (original) +++ incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailWorker.java Mon Nov 20 18:54:01 2006 @@ -52,7 +52,9 @@ commEventMap.put("mimeTypeId", "text/html"); commEventMap.put("userLogin", userLogin); String subject = message.getSubject(); - Map result = null; + if (subject != null && subject.length() > 80) { + subject = subject.substring(0,80); // make sure not too big for database field. (20 characters for filename) + } ByteArrayOutputStream baos = new ByteArrayOutputStream(); Multipart multipart = (Multipart)message.getContent(); @@ -71,7 +73,11 @@ && (disposition.equals(Part.ATTACHMENT) || disposition.equals(Part.INLINE)) && (i != bodyContentIndex)) ) { - commEventMap.put("contentName", subject + "-" + i + " " + part.getFileName()); + String attFileName = part.getFileName(); + if (attFileName != null && attFileName.length() > 17) { + attFileName = attFileName.substring(0,17); + } + commEventMap.put("contentName", subject + "-" + i + " " + attFileName); commEventMap.put("drMimeTypeId", thisContentType); if (thisContentType.startsWith("text")) { String content = (String)part.getContent(); @@ -93,7 +99,7 @@ commEventMap.put("drDataResourceTypeId", "IMAGE_OBJECT"); commEventMap.put("_imageData_contentType", thisContentType); } - result = dispatcher.runSync("createCommContentDataResource", commEventMap); + dispatcher.runSync("createCommContentDataResource", commEventMap); attachmentCount++; } } Modified: incubator/ofbiz/trunk/applications/party/servicedef/services.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/party/servicedef/services.xml?view=diff&rev=477480&r1=477479&r2=477480 ============================================================================== --- incubator/ofbiz/trunk/applications/party/servicedef/services.xml (original) +++ incubator/ofbiz/trunk/applications/party/servicedef/services.xml Mon Nov 20 18:54:01 2006 @@ -343,9 +343,9 @@ <!-- Party ContachMech reverse find --> <service name="findPartyFromEmailAddress" engine="simple" location="org/ofbiz/party/contact/PartyContactMechServices.xml" invoke="findPartyFromEmailAddress" auth="true"> - <description>Create a Postal Address</description> + <description>Find the partyId/contactMechId for a specific email address, if not found do not return a value</description> <attribute name="address" type="String" mode="IN" optional="false"/> - <attribute name="personal" type="String" mode="IN" optional="true"/> + <attribute name="personal" type="String" mode="IN" optional="true"/><!-- field not used --> <attribute name="fromDate" type="Timestamp" mode="IN" optional="true"/> <attribute name="partyId" type="String" mode="OUT" optional="true"/> <attribute name="contactMechId" type="String" mode="OUT" optional="true"/> Modified: incubator/ofbiz/trunk/framework/common/config/general.properties URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/common/config/general.properties?view=diff&rev=477480&r1=477479&r2=477480 ============================================================================== --- incubator/ofbiz/trunk/framework/common/config/general.properties (original) +++ incubator/ofbiz/trunk/framework/common/config/general.properties Mon Nov 20 18:54:01 2006 @@ -52,5 +52,5 @@ http.upload.max.size=-1 # -- spam header name and value to block incoming spam detected by external spam checker, configured for spam assin -mail.spam.name = X-Spam-Flag -mail.spam.value = YES \ No newline at end of file +mail.spam.name=X-Spam-Flag +mail.spam.value=YES |
Free forum by Nabble | Edit this page |