# Bug in wsdl4r

**URL:** <https://www.ruby-forum.com/t/bug-in-wsdl4r/108914>\
**Category:** Ruby\
**Created:** [July 9, 2007, 1:48pm UTC](https://www.ruby-forum.com/t/bug-in-wsdl4r/108914 "2007-07-09T13:48:58Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![marcin\_r](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/e5b9ba/32.png) [@marcin\_r](https://www.ruby-forum.com/u/marcin_r)\
**Post date:** [July 9, 2007, 1:48pm UTC](https://www.ruby-forum.com/t/bug-in-wsdl4r/108914/1 "2007-07-09T13:48:58Z")

</div>

Mayby any of you happend to find solution - i generated classes with  
wsdl4r  
and got this exception, i’m investigating but it’s porbably to deep for  
me and  
solution might be simple (wrong wsdl perhaps)

========================  
/usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:321:in  
`add_elements2stubobj': undefined method`name’ for nil:NilClass  
(NoMethodError)  
from /usr/lib/ruby/1.8/soap/baseData.rb:605:in `each' from /usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:292:in`add\_elements2stubobj’  
from  
/usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:277:in  
`soapele2stubobj' from /usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:264:in`any2obj’  
from  
/usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:305:in  
`add_elements2stubobj' from /usr/lib/ruby/1.8/soap/baseData.rb:605:in`each’  
from  
/usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:292:in  
`add_elements2stubobj' from /usr/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:277:in`soapele2stubobj’  
… 13 levels…  
from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:149:in `call' from /usr/lib/ruby/1.8/soap/rpc/driver.rb:178:in`call’  
from (eval):6:in `product\_Get’  
from /home/swistak/sklep/trunk/soap/DetaExchangeClient.rb:17

===================

---

<div class="post-metadata">

**Author:** ![marcin\_r](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/e5b9ba/32.png) [@marcin\_r](https://www.ruby-forum.com/u/marcin_r)\
**Post date:** [July 9, 2007, 1:51pm UTC](https://www.ruby-forum.com/t/bug-in-wsdl4r/108914/2 "2007-07-09T13:51:58Z")

</div>

Little follow up  
from what i’ve found it’s almost certenly bug:

# =============================== item = elements.find { |k, v| k.name == name } if item elename, class\_name = item if klass = Mapping.class\_from\_name(class\_name) # klass must be a SOAPBasetype or a class if klass.ancestors.include?(:🧼:SOAPBasetype) if value.respond\_to?(:data) child = klass.new(value.data).data else child = klass.new(nil).data end else child = any2obj(value, klass) end elsif klass = Mapping.module\_from\_name(class\_name) # simpletype if value.respond\_to?(:data) child = value.data else raise MappingError.new( “cannot map to a module value: #{class\_name}”) end else raise MappingError.new(“unknown class/module: #{class\_name}”) end else # untyped element is treated as anyType. child = any2obj(value) end if as\_array.include?(elename.name) (vars[name] ||= []) \<\< child else vars[name] = child end

elname is never even assigned if item is nil itself

---

<div class="post-metadata">

**Author:** ![marcin\_r](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/e5b9ba/32.png) [@marcin\_r](https://www.ruby-forum.com/u/marcin_r)\
**Post date:** [July 9, 2007, 3:16pm UTC](https://www.ruby-forum.com/t/bug-in-wsdl4r/108914/3 "2007-07-09T15:16:25Z")

</div>

On 7/9/07, Marcin R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Little follow up  
> from what i’ve found it’s almost certenly bug:
> 
> ===============================  
> item = elements.find { |k, v| k.name == name }  
> if item  
> elename, class\_name = item

snip

> ========================  
> elname is never even assigned if item is nil itself

Correct.

If item is nil, the statement immediately below it (elename,  
class\_name = item) will not be executed.

Todd

---

<div class="post-metadata">

**Author:** ![marcin\_r](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/e5b9ba/32.png) [@marcin\_r](https://www.ruby-forum.com/u/marcin_r)\
**Post date:** [July 9, 2007, 3:34pm UTC](https://www.ruby-forum.com/t/bug-in-wsdl4r/108914/4 "2007-07-09T15:34:38Z")

</div>

Yea, well quick fix is changing

if as\_array.include?(elename.name)  
to  
if item && elename && as\_array.include?(elename.name)
