rodl2objc crash on OSX 10.7.3

Attempting to parse a relatively small WSDL file generated by a .Net service crashes the latest rodl2objc.

Here’s the crash report, the WSDL is attached.

Process: rodl2objc [10476]
Path: /Developer/RemObjects Software/Tools/rodl2objc.app/Contents/MacOS/rodl2objc
Identifier: com.remobjects.sdk.rodl2objc
Version: ??? (1.0)
Code Type: X86-64 (Native)
Parent Process: launchd [136]

Date/Time: 2012-02-21 09:44:59.068 -0800
OS Version: Mac OS X 10.7.3 (11D50b)
Report Version: 9

Interval Since Last Report: 350930 sec
Crashes Since Last Report: 13288
Per-App Interval Since Last Report: 180 sec
Per-App Crashes Since Last Report: 8
Anonymous UUID: CC592907-3B5C-453B-9351-7CB19E41B762

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
objc[10476]: garbage collection is OFF
*** Terminating app due to uncaught exception ‘ROException’, reason: ‘An exception occurred on the server: Unable to connect to the remote server’
*** First throw call stack:
(
0 CoreFoundation 0x00007fff84138fc6 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff82ae5d5e objc_exception_throw + 43
2 RemObjectsSDK 0x0000000100017517 -[ROMessage processException] + 138
3 RemObjectsSDK 0x000000010001aa36 -[ROBinMessage doReadFromNSData:] + 352
4 RemObjectsSDK 0x000000010001624b -[ROHTTPClientChannel intDispatch:responseMessage:] + 228
5 RemObjectsSDK 0x0000000100015232 -[ROClientChannel dispatch:] + 91
6 rodl2objc 0x0000000100003e1a -[ROSoapImporter_Proxy ImportWsdl::] + 280
7 rodl2objc 0x00000001000020d8 -[RodlDocument readFromData:ofType:error:wrappers:] + 402
8 rodl2objc 0x00000001000021d1 -[RodlDocument readFromData:ofType:error:] + 23
9 rodl2objc 0x00000001000022cd -[RodlDocument readFromURL:ofType:error:] + 247
10 AppKit 0x00007fff8839d9d7 -[NSDocument _initWithContentsOfURL:ofType:error:] + 137
11 AppKit 0x00007fff8839d8f1 -[NSDocument initWithContentsOfURL:ofType:error:] + 257
12 AppKit 0x00007fff884e7be8 -[NSDocumentController makeDocumentWithContentsOfURL:ofType:error:] + 333
13 AppKit 0x00007fff884f1209 __-[NSDocumentController openDocumentWithContentsOfURL:display:completionHandler:]_block_invoke_8 + 142
14 AppKit 0x00007fff884e5148 __-[NSDocumentController openDocumentWithContentsOfURL:display:completionHandler:]_block_invoke_4 + 874
15 AppKit 0x00007fff88377df9 -[NSDocumentController _openDocumentWithContentsOfURL:usingProcedure:] + 530
16 AppKit 0x00007fff884e4dcf __-[NSDocumentController openDocumentWithContentsOfURL:display:completionHandler:]_block_invoke_3 + 252
17 libdispatch.dylib 0x00007fff89b9a8ba _dispatch_call_block_and_release + 18
18 libdispatch.dylib 0x00007fff89b9c72a _dispatch_main_queue_callback_4CF + 308
19 CoreFoundation 0x00007fff840ce06c __CFRunLoopRun + 1724
20 CoreFoundation 0x00007fff840cd676 CFRunLoopRunSpecific + 230
21 HIToolbox 0x00007fff8cbd931f RunCurrentEventLoopInMode + 277
22 HIToolbox 0x00007fff8cbe051b ReceiveNextEventCommon + 181
23 HIToolbox 0x00007fff8cbe0456 BlockUntilNextEventMatchingListInMode + 62
24 AppKit 0x00007fff88121f5d _DPSNextEvent + 659
25 AppKit 0x00007fff88121861 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 135
26 AppKit 0x00007fff8811e19d -[NSApplication run] + 470
27 AppKit 0x00007fff8839cb88 NSApplicationMain + 867
28 rodl2objc 0x0000000100001550 start + 52
)

terminate called throwing an exception
abort() called

looks like a server-side problem (plus a missing catch, client side). i’ll invesitigate thanx!

Thanks! Could you tell me more about the server side? I have the running service with metadata exposure enabled (.Net 4.0 in Visual Studio/IIS).

sorry, i meant our server. rodl2objc connects to our server to convert WSDL files, and it looks like something failed up there.

Hello,

Unfortunately this file can not be processed because of references to your private server inside:

wsdl:types
<xsd:schema targetNamespace=“http://tempuri.org/Imports”>
<xsd:import schemaLocation=“http://10.0.1.19/DropZoneService/DropZoneService.svc?xsd=xsd0” namespace=“http://tempuri.org/”/>
<xsd:import schemaLocation=“http://10.0.1.19/DropZoneService/DropZoneService.svc?xsd=xsd3” namespace=“http://schemas.datacontract.org/2004/07/DropZoneService”/>
<xsd:import schemaLocation=“http://10.0.1.19/DropZoneService/DropZoneService.svc?xsd=xsd1” namespace=“http://schemas.microsoft.com/2003/10/Serialization/”/>
<xsd:import schemaLocation=“http://10.0.1.19/DropZoneService/DropZoneService.svc?xsd=xsd2” namespace=“http://schemas.datacontract.org/2004/07/SerengetiLaw.DropZone”/>
<xsd:import schemaLocation=“http://10.0.1.19/DropZoneService/DropZoneService.svc?xsd=xsd4” namespace=“http://schemas.microsoft.com/Message”/>
<xsd:import schemaLocation=“http://10.0.1.19/DropZoneService/DropZoneService.svc?xsd=xsd5” namespace=“http://schemas.datacontract.org/2004/07/System”/>
</xsd:schema>
</wsdl:types>

The rodl2objc application uses our web service to convert WSDLs to RODL so it can’t access your server.
I can suggest to use the Service Builder tool for Windows locally (i.e. from the place where those URLs are accessible).

Best regards - Sergey.

Ah, I see that your server needs to access my server.
Ok, I’ll try putting my server on the public web and see if the tool will work then.

Does the Service Builder tool for Windows emit Objective-C?

It does, yes. It’ll also met you save the rodl file generated from the wsdl, which you can. Then later use to generate object code in rodl2obj on the Mac side, as well.

Ok, by putting the included XSD files on a public website I was able to get your tool to build the Obj-C output. However, it doesn’t compile… there’s a bunch of places where the emitted code (in what looks like boilerplate, such as shown below), includes “unknown *”. Are there any working examples of using your tool on OS X (not iPhone)?

@interface unknownAnonymous0 : ROComplexType
{
unknown* _v_value;
}

this looks like we’ll have to check the exact WSDL you are importing. can you send us a copy?

there should be no iOS vs OS X issues — the same things should work on both platforms.