Forum Discussion

Anonymous's avatar
Anonymous
16 years ago

BUG in class loader ?

USE CASE 1

(only one library xmltypeswsb9.jar <=> SASNormalisationtype)

a groovy script is used in assertion:

log.info("SAScheckVersion 3 "+rsp) ;
    sasNormalisationTypes.ResponseDocument rspDoc = sasNormalisationTypes.ResponseDocument.Factory.parse(rsp.toString());
log.info("SAScheckVersion 4 ") ;

Run soapui : every thing is OK. Soapui works well and the log.info have the expected value.

USE CASE 2
the library xmltypeswsb9.jar <=> SASNormalisationtype is present,
but we add a new library in ...soapui.../bin/ext
library refxmltypeswsb9.jar <=> SASNormalisationtype

This refxmltypeswsb9 library will be used later. The code of the grovy assertion script is the same between use case 1 and use case 2.

here is an extract of the libraries
$ grep -i responsedocumentimpl l*
l1:  1702 Mon Feb 01 11:47:02 CET 2010 sasNormalisationTypes/impl/ResponseDocumentImpl.class
l2:  1722 Mon Feb 01 19:21:54 CET 2010 REF_SASNormalisationTypes/impl/ResponseDocumentImpl.class

run soapui ui :
log.info("SAScheckVersion 3 "+rsp) ;
=> log.info have the expected value
    sasNormalisationTypes.ResponseDocument rspDoc = sasNormalisationTypes.ResponseDocument.Factory.parse(rsp.toString());
=> exception
  REF_SASNormalisationTypes.impl.ResponseDocumentImpl cannot be cast to sasNormalisationTypes.ResponseDocument
 

log.info("SAScheckVersion 4 ") ;
=> log.info never printed

my questions
Why have I an exception, just by adding a new librarie. Of course, both libraries have a object ResponseDocument, but
the ResponseDocument objects are not in the same package. So I don't understand why is soaopui speaking about
REF_SASNormalisationTypes.impl.ResponseDocumentImpl?
It seems that the soapui class loader is confused by the ResponseDocument class.
How to prouve that ? How to debug ? How to correct ?

Comments

 An eclipse project that containts the both libraries works without any problem. So
 sasNormalisationTypes.ResponseDocument rspDoc = sasNormalisationTypes.ResponseDocument.Factory.parse(rsp.toString());
 parse string as expected.
 
 The same problem occurs with soapui 3.5

Thanks
PHL.