#325 Emailing of invitations fails with valid SMTP account

open
dimdim_uday
8
2007-02-05
2007-01-20
Keith Steward
No

configuring dimdim with a completely valid SMTP account (i've confirmed this SMTP host --same as dimdim server-- successfully relays emails from a mail client conf'd with the username/password) still produces an exception during the dispatching of the invitations. Segments from the DimDimConference.properties file and the msgs during execution from the wrapper.log are below. Note that i've replaced the username/password/host info with <valid ...> place holders to protect my security:

----segment from DimDimConference.properties:-----
##
## Email Parameters that can be configured by the user.
##
email.server=127.0.0.1
email.user=<valid username>
email.password=<valid password>
email.sender=<valid email addr>
email.PORT=25
email.EMAIL_CC=
email.EMAIL_BCC=
##
## Email Parameters that can not be configured by the user.
##
email.PROTOCOL=smtp
email.DEBUG_MAIL_SESSION=true
email.BUFFER_SIZE=2048
email.EMAIL_SUBJECT=Conference Invitation From:
email.EMAIL_FROM_PERSON=DimDim Invitations
#email.EMAIL_FROM=EmailSender
email.EMAIL_FROM=<valid email addr>
email.EMAIL_REPLY_TO=EmailSender
email.EMAIL_TO=
email.EMAIL_CHARSET=utf-8
##
---- end DimDimConference.properties segment:-----

------- segment from wrapper.log -------------------
INFO | jvm 1 | 2007/01/20 11:15:12 | -----------------------------------------------------------
INFO | jvm 1 | 2007/01/20 11:15:12 | emailServer:127.0.0.1
INFO | jvm 1 | 2007/01/20 11:15:12 | emailUser:<valid username>
INFO | jvm 1 | 2007/01/20 11:15:12 | emailPassword:<valid password>
INFO | jvm 1 | 2007/01/20 11:15:12 | emailSender:<valid email addr>
INFO | jvm 1 | 2007/01/20 11:15:12 | a:[INVALID_INIT_PARAM]
INFO | jvm 1 | 2007/01/20 11:15:12 | b:email.BUFFER_SIZE
INFO | jvm 1 | 2007/01/20 11:15:12 | c:2048
INFO | jvm 1 | 2007/01/20 11:15:12 | Jan 20, 2007 11:15:12 AM com.opensymphony.webwork.dispatcher.DispatcherUtils serviceAction
INFO | jvm 1 | 2007/01/20 11:15:12 | SEVERE: Could not execute action
INFO | jvm 1 | 2007/01/20 11:15:12 | java.lang.reflect.InvocationTargetException
INFO | jvm 1 | 2007/01/20 11:15:12 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
INFO | jvm 1 | 2007/01/20 11:15:12 | at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
INFO | jvm 1 | 2007/01/20 11:15:12 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
INFO | jvm 1 | 2007/01/20 11:15:12 | at java.lang.reflect.Method.invoke(Unknown Source)
INFO | jvm 1 | 2007/01/20 11:15:12 | at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:364)
------snip 8<-------------

Is this a known bug? Is emailing of invitations supposed to work in this alpha release, or is there still config issue on my end?

The location of failure appears to be com.opensymphony.webwork.dispatcher.DispatcherUtils serviceAction, specifically at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:364), perhaps an issue with use of reflection (the subsequent exception).

thanks.

-keith

Discussion

  • Keith Steward
    Keith Steward
    2007-01-20

    • priority: 5 --> 8
     
  • Keith Steward
    Keith Steward
    2007-01-20

    Logged In: YES
    user_id=22217
    Originator: YES

    I was able to make get dimdim further past the
    ----segment from wrapper.log:---
    INFO | jvm 1 | 2007/01/20 11:15:12 | a:[INVALID_INIT_PARAM]
    INFO | jvm 1 | 2007/01/20 11:15:12 | b:email.BUFFER_SIZE
    INFO | jvm 1 | 2007/01/20 11:15:12 | c:2048
    ------end segment----------
    issue by stripping some trailing whitespace from the 'email.BUFFER_SIZE=2048' line of the DimDimConference.properties file. Apparently the parsing of values from the properties file isn't robust to trailing whitespace. *** you might want to add some code to trim off trailing whitespace to save some grief for those deploying the server.

    Of *MUCH* greater concern, however, is an apparent stack overflow bug.
    Additional entries from the wrapper.log file:
    ------wrapper.log file------
    ...
    INFO | jvm 1 | 2007/01/20 12:19:25 | Caused by: java.lang.StackOverflowError
    INFO | jvm 1 | 2007/01/20 12:19:25 | at com.dimdim.conference.application.email.ErrorHandler.fatalError(ErrorHandler.java:14)
    ------- end wrapper.log segment ----------\

    Looking at the code for the com.dimdim.conference.application.email.ErrorHandler class, i noticed a possible coding error that results in an infinite loop consistent with the Stack overflow:
    --- segment from com.dimdim.conference.application.email ErrorHandler.java: -------
    10: public class ErrorHandler
    11: {
    12: public void fatalError(String a, Exception e, String b)
    13: {
    14: this.fatalError(a,e,b);
    15: }
    16: public void fatalError(String a, Exception e, String b, String c)
    17: {
    18: if (e != null)
    19: {
    20: e.printStackTrace();
    21: }
    22: System.out.println("a:"+a);
    23: System.out.println("b:"+b);
    24: System.out.println("c:"+c);
    25: }
    ------- snip 8<-------

    Line 14 as written calls itself in an infinite loop. I think the intent was to call the 2nd overloaded form of the fatalError() method.

    -keith

     
  • Keith Steward
    Keith Steward
    2007-01-29

    Logged In: YES
    user_id=22217
    Originator: YES

    today's stack trace when trying to schedule an invitation, with a valid stmp account:

    ---------- browser shows this after completing the meeting scheduling page ------------
    HTTP Status 500 -

    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    javax.servlet.ServletException: Could not execute action
    com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:246)
    com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:198)

    root cause

    java.lang.reflect.InvocationTargetException
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:364)
    com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:216)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
    com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:168)
    com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
    com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:186)
    com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
    com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
    com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:233)
    com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:198)

    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
    --------- end web page -----------

    -keith

     
  • dimdim_uday
    dimdim_uday
    2007-02-05

    Logged In: YES
    user_id=1684215
    Originator: NO

    Keith,

    Thanks for logging this issue and the detailed analysis & followup.
    We shall reproduce this in our test environment & fix it with a future maintenance release.

    Uday

     
  • dimdim_uday
    dimdim_uday
    2007-02-05

    • assigned_to: nobody --> dimdim_uday
     
  • Logged In: YES
    user_id=1674202
    Originator: NO

    Hi,
    We did a analysis in our local environment with the latest Alpha 1.5 release on Windows. The SMPT Server we used is QK SMTP Server version 3.00 that is a trial version. We are able to send the mail invites from the dimdim application.

    The sinppet of the wrapper.log is as follows:
    INFO | jvm 1 | 2007/02/22 12:40:19 |
    INFO | jvm 1 | 2007/02/22 12:40:19 | emailServer:127.0.0.1
    INFO | jvm 1 | 2007/02/22 12:40:19 | emailUser:rajesh
    INFO | jvm 1 | 2007/02/22 12:40:19 | emailPassword:dimdim
    INFO | jvm 1 | 2007/02/22 12:40:19 | emailSender:rajesh
    INFO | jvm 1 | 2007/02/22 12:40:19 | Email dispatch worker 2 - sending out email:Admin

    Could you please try this with the latest alpha 1.5 release and let us know?

    Thanks,
    Rajesh

     
  • Keith Steward
    Keith Steward
    2007-02-22

    Logged In: YES
    user_id=22217
    Originator: YES

    dimdim_raj,

    i don't run servers on Windows -- only LINUX, so i'm not able to test. The above issues were observerd on a LINUX installation of dimdim server. If you have a patch that you think fixes the issue, i would be happy to test that on the LINUX server.

    thanks.

    -keith

     
  • Logged In: YES
    user_id=1674202
    Originator: NO

    Hi,

    Thanks for your update. We had release Alpha 1.5. Could you please let us know which version you are using and if you are using 1.0, try with 1.5. i will do the same experiment with alpha 1.0 and linux.

    Thanks,
    -Rajesh

     
  • Logged In: YES
    user_id=1674202
    Originator: NO

    Hi,

    We tried the same with Linux and Dimdim Alpha 1.0/1.5; we were able to reproduce the issue in our test environment. You could point to the default bizatlarge exchange server for now. We will update you more on this issue.

    Thanks,
    Rajesh

     
  • Logged In: YES
    user_id=1674202
    Originator: NO

    Hi,
    The configuration for bizatlarge is as follows:
    email.server=smtp.atlarge.net
    email.user=invitation.communiva
    email.password=summer2006
    email.sender=invitations@dimdim.com
    email.PORT=25
    email.EMAIL_CC=
    email.EMAIL_BCC=

    Thanks,
    Rajesh