Menu

#143 Unable to debug application written with SOAP::Lite

0.71
closed-invalid
5
2008-06-09
2008-04-06
Shachar
No

It seems like the problem resides in the "tag" method of the SOAP::Serializer (lines 1378-1379 in SOAP/Lite.pm)
The pattern should be defines as lookback and not lookahead:

The lines:
die "Element '$tag' can't be allowed in valid XML message. Died."
if $tag !~ /^(?![xX][mM][lL])$SOAP::Constants::NSMASK$/o;

should be changed to:
die "Element '$tag' can't be allowed in valid XML message. Died."
if $tag !~ /^(?<![xX][mM][lL])$SOAP::Constants::NSMASK$/o;

Discussion

  • Martin Kutter

    Martin Kutter - 2008-04-14
    • assigned_to: byrnereese --> kutterma
    • status: open --> pending
     
  • Martin Kutter

    Martin Kutter - 2008-04-14

    Logged In: YES
    user_id=884175
    Originator: NO

    Hi Shachar,

    could you please tell what you tried to do, and what failed?

    Thanks,

    Martin

     
  • Shachar

    Shachar - 2008-04-19

    Logged In: YES
    user_id=1439680
    Originator: YES

    Installed EPIC on Eclipse (http://sourceforge.net/projects/e-p-i-c) and tried to debug a basic web service call. The call failed with the following error:
    Element 'portal' can't be allowed in valid XML message. Died.
    (portal is a member of one of the arguments).
    We are using a serializer to set the types of the parameters, but it failed before it got to the our serializer code.
    When I run the same code not in a debugger it seems to run just fine.

     
  • Shachar

    Shachar - 2008-04-19
    • status: pending --> open
     
  • Martin Kutter

    Martin Kutter - 2008-06-09

    Logged In: YES
    user_id=884175
    Originator: NO

    Hi Shachar,

    what error message did you get?

    Martin

     
  • Martin Kutter

    Martin Kutter - 2008-06-09

    Logged In: YES
    user_id=884175
    Originator: NO

    Sorry, just overlooked the error message.

    Did changing the pattern to a lookback help?

    Martin

     
  • Martin Kutter

    Martin Kutter - 2008-06-09
    • status: open --> closed-invalid
     
  • Martin Kutter

    Martin Kutter - 2008-06-09
     
  • Martin Kutter

    Martin Kutter - 2008-06-09

    Logged In: YES
    user_id=884175
    Originator: NO

    Changing to a lookback pattern breaks the test for assuring the tag in question doesn't start with >xml< (in ay case). It looks like the EPIC debugger confuses SOAP::Lite to forget about $SOAP::Constants::NSMASK.

    Debugging the attached script with the perl debugger works without errors, so this is probably something in EPIC's debugger.

    Martin
    File Added: Serializer.t

     
  • Shachar

    Shachar - 2008-06-10
     
  • Shachar

    Shachar - 2008-06-10

    Logged In: YES
    user_id=1439680
    Originator: YES

    I have tried changing the $SOAP::Constants::NSMASK in the relevant line to [a-zA-Z_:][\w.\-:]* and I still get the same error message. So it does not forget about $SOAP::Constants::NSMASK.

    The example you submitted works well with the EPIC as well.
    See the attached test.pl file for example & output
    File Added: test.pl

     

Log in to post a comment.