Uploaded image for project: 'QuickFIX/J'
  1. QuickFIX/J
  2. QFJ-667

for a custom data dictionary, some fields are generated twice, and so compilation fails with XY.java: get(quickfix.field.Currency) is already defined in quickfix.fix44.XY

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Default
    • Resolution: Not a bug
    • Affects Version/s: 1.5.2
    • Fix Version/s: None
    • Component/s: Message Generation
    • Labels:
    • Environment:
      I tried it under Linux (Ubuntu 11.10) AND Windows 7 with Sun-JDK6,and only under Linux with OpenJDK6 and OpenJDK7

      Description

      Steps to reproduce:
      1. Take the - probably relatively often used - datadictionary from http://www.fxprogrammers.com/apisupport/FXCM_FIX.zip (wich is officially published in http://forexforums.dailyfx.com/fix-api-support/453300-fix-documentation-subscribe-updates-2.html)
      2. copy the file FIXFXCM10.xml from this zip and to core/src/main/resource/FIX44.xml
      3. run "ant clean jar"
      Then you (at least I) get 100 errors like this:

      [javac] Compiling 1924 source files to /home/hk/ws/e/quickfix-1.5.2/core/target/classes/main
      [javac] Advertisement.java:1886: set(quickfix.field.Currency) is already defined in quickfix.fix44.Advertisement
      [javac] public void set(quickfix.field.Currency value) {
      [javac] ^
      [javac] Advertisement.java:1890: get(quickfix.field.Currency) is already defined in quickfix.fix44.Advertisement
      [javac] public quickfix.field.Currency get(quickfix.field.Currency value)
      [javac] ^
      [javac] Advertisement.java:1897: getCurrency() is already defined in quickfix.fix44.Advertisement
      [javac] public quickfix.field.Currency getCurrency() throws FieldNotFound {
      [javac] ^
      [javac] Advertisement.java:1904: isSet(quickfix.field.Currency) is already defined in quickfix.fix44.Advertisement
      [javac] public boolean isSet(quickfix.field.Currency field) {
      [javac] ^
      [javac] Advertisement.java:1908: isSetCurrency() is already defined in quickfix.fix44.Advertisement
      [javac] public boolean isSetCurrency() {
      [javac] ^
      [javac] AllocationInstruction.java:2997: set(quickfix.field.Currency) is already defined in quickfix.fix44.AllocationInstruction
      [javac] public void set(quickfix.field.Currency value) {
      [javac] ^
      [javac] AllocationInstruction.java:3001: get(quickfix.field.Currency) is already defined in quickfix.fix44.AllocationInstruction
      [javac] public quickfix.field.Currency get(quickfix.field.Currency value)
      [javac] ^

      The problem is, that these methods are really generated twice. I've no idea how this might happen.

      Any ideas?
      Thank you very much,
      Heiko Seebach

        Attachments

          Activity

            People

            • Assignee:
              chrjohn Christoph John
              Reporter:
              heiko.seebach Heiko Seebach
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: