Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/SOAP/Client Applications    [ Add a report in this area ]  
Report #:  122209   Status: Closed
[Android] Access Violation on SOAP call after WSDL import on Android.
Project:  Delphi Build #:  19.0.14356.6604
Version:    19.2 Submitted By:   Robert Miller
Report Type:  Crash / Data loss / Total failure Date Reported:  2/3/2014 12:34:57 PM
Severity:    Critical / Show Stopper Last Updated: 4/15/2014 6:32:21 PM
Platform:    Google mobile OS Internal Tracking #:   47289
Resolution: Fixed (Resolution Comments) Resolved in Build: : XE6
Duplicate of:  None
Voting and Rating
Overall Rating: (1 Total Rating)
4.00 out of 5
Total Votes: 7
Description
After importing a WSDL, making a SOAP call to a web service results in an Access Violation on Android.

The same code executed on either WIN32 or Apple IOS works correctly.

I have attempted this on webservices that communicate via HTTP and HTTPS. I have used multiple webservices.  The result is the same.
Steps to Reproduce:
1. Create project with button, edit box and memo field.

2. Import WSDL: http://www.ripedev.com/webservices/localtime.asmx?WSDL
[localtime.pas]
------------
unit localtime;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

const
  IS_OPTN = $0001;
  IS_REF  = $0080;
...
...
  // URL       : http://www.ripedev.com/webservices/localtime.asmx
  LocalTimeSoap = interface(IInvokable)
  ['{7E7EF740-8095-C652-98CA-CAF1C1227D46}']
    function  LocalTimeByZipCode(const ZipCode: string): string; stdcall;
  end;
...
...
initialization
  { LocalTimeSoap }
  InvRegistry.RegisterInterface(TypeInfo(LocalTimeSoap), 'http://www.ripedev.com/', 'utf-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(LocalTimeSoap), 'http://www.ripedev.com/LocalTimeByZipCode');
  InvRegistry.RegisterInvokeOptions(TypeInfo(LocalTimeSoap), ioDocument);
  { LocalTimeSoap.LocalTimeByZipCode }
  InvRegistry.RegisterMethodInfo(TypeInfo(LocalTimeSoap), 'LocalTimeByZipCode', '',
                                 '[ReturnName="LocalTimeByZipCodeResult"]', IS_OPTN);

end.
------------

3. OnButton event set to add lines to memo field:
------------
var
  LocTime : LocalTimeSOAP;
...
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  memo1.Lines.Add('Local Date/Time for '+Edit1.Text+': '+locTime.LocalTimeByZipCode(Edit1.Text));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  LocTime := GetLocalTimeSOAP;
end;
------------

4. I used my current five digit zip code: 70503

execute on WIN32, works.
execute on IOS 7 Device, works.

execute on Android, access violation.
Workarounds
None
Attachment
TimeCheck.zip
Comments

Tomohiro Takahashi at 2/3/2014 5:35:27 PM -
Could you please attach sample project(s) to reproduce/confirm your issue?

Robert Miller at 2/4/2014 12:23:04 PM -
Tomo,  I just went back to the quality central client in RAD Studio.  It was easier to do the attachment.  Files enclosed now.

Tomohiro Takahashi at 2/4/2014 7:58:17 PM -
What ZIP Code do we should enter to reproduce/confirm your issue?

Robert Miller at 2/5/2014 7:53:44 AM -
I used my current five digit zip code: 70503

I used the same zip code on all platforms to test.

Robert Miller at 2/4/2014 12:12:40 PM -
I thought I had in the original. Can you tell me how to upload an attachment via the web portal to an existing report?

Robert Miller at 3/10/2014 10:47:53 AM -
Tomo,

Can you tell me what I need to do to work around this?  If I need to wait for an update, do you have any idea when one may be coming?  I appreciate you working on it so diligently and resolving the issue.  I have a project on hold for the solution.  Thanks.

Bob

Tomohiro Takahashi at 3/10/2014 6:29:14 PM -
Robert-san
If possible, could you please contact technical support service?
http://support.embarcadero.com/

Suhan Erol at 4/18/2014 2:59:35 AM -
When this fix will be avaliable on XE5?

Server Response from: ETNACODE01