From: Christoph J. <chr...@ma...> - 2014-09-08 08:54:44
|
Hi, this is acurrently unresolved problem with the 1.6.0-SNAPSHOT versionof QF/J. Maybe we will treat all fields with different data types throughout the FIX versions simply as StringField in any case. But this has notbeen finalized yet. Cheers, Chris. On 03/09/14 13:08, Attila-Mihaly Balazs wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > > Hello, > > I'm trying to use QuickFix to implement an exchange simulator which accepts sessions using > multiple FIX versions (4.0, 4.1, etc). > > I build QuickFix from the Gihub sources using: mvn install > > I add a dependency on it using: > > <dependency> > <groupId>org.quickfixj</groupId> > <artifactId>quickfixj-all</artifactId> > <version>1.6.0-SNAPSHOT</version> > </dependency> > > However when I try to run it, it fails with the following error message: > > java.lang.VerifyError: Bad type on operand stack > Exception Details: > Location: > quickfix/fix41/NewOrderSingle.<init>(Lquickfix/field/ClOrdID;Lquickfix/field/HandlInst;Lquickfix/field/Symbol;Lquickfix/field/Side;Lquickfix/field/OrdType;)V > @11: invokevirtual > Reason: > Type 'quickfix/field/HandlInst' (current frame, stack[1]) is not assignable to > 'quickfix/StringField' > Current Frame: > bci: @11 > flags: { } > locals: { 'quickfix/fix41/NewOrderSingle', 'quickfix/field/ClOrdID', > 'quickfix/field/HandlInst', 'quickfix/field/Symbol', 'quickfix/field/Side', 'quickfix/field/OrdType' } > stack: { 'quickfix/fix41/NewOrderSingle', 'quickfix/field/HandlInst' } > Bytecode: > 0000000: 2ab7 0007 2a2b b600 082a 2cb6 0008 2a2d > 0000010: b600 082a 1904 b600 082a 1905 b600 08b1 > 0000020: > > at quickfix.fix41.MessageFactory.create(MessageFactory.java:83) > at quickfix.DefaultMessageFactory.create(DefaultMessageFactory.java:133) > at quickfix.MessageUtils.parse(MessageUtils.java:112) > > From what I understand this is because HandlInst is a subclass of StringField in FIX41 but it's a > subclass of CharField in later versions. During compilation of the library the first one is used > (hence the setField calls in quickfix/fix41/NewOrderSingle refer to setField(StringField)), but in > the actual jar we have HandlInst derived from CharField, thus making the class loading fail. > > Any idea how this should be resolved? Has anyone used QuickFixJ with multiple FIX versions in > parallel in the same application? > > Thank you, > Attila Balazs > > > ------------------------------------------------------------------------------ > Slashdot TV. > Video for Nerds. Stuff that matters. > http://tv.slashdot.org/ > > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users -- Christoph John Development & Support Direct: +49 241 557080-28 Mailto:Chr...@ma... http://www.macd.com <http://www.macd.com/> ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- MACD GmbH Oppenhoffallee 103 D-52066 Aachen Tel: +49 241 557080-0 | Fax: +49 241 557080-10 Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- take care of the environment - print only if necessary |