java.io.FileNotFoundException: output/data/server/FIX.4.2-test-exchange-test-sender.body (No such file or directory)

QuickFIX/J JIRA | Steve Bate | 1 decade ago
tip
Click on the to mark the solution that helps you, Samebug will learn from it.
As a community member, you’ll be rewarded for you help.
  1. 0

    Ok, my apologies for sending an incomplete email earlier. Had an "enter key" malfunction. I'm working on a multi-module project driven by Maven (instead of ant), where couple of the modules use QuickfixJ. The directory layout is as follows: parentModule - childModule - src - test - java *.java files are here I'm noticing a very strange situation: i have a unit test that runs just fine if you run it directly from the <childModule> directory, it initializes the Session correctly which creates the appropriate output/ and store/ directories for FIX.4.2-xxx files. However, if i run the same test from a parent directory (ie one level up) then it fails in to create/locate the output/ directory: java.io.FileNotFoundException: output/data/server/FIX.4.2-test-exchange-test-sender.body (No such file or directory) java.lang.RuntimeException: java.io.FileNotFoundException: output/data/server/FIX.4.2-test-exchange-test-sender.body (No such file or directory) at quickfix.FileStoreFactory.create(FileStoreFactory.java:65) at quickfix.Session.<init>(Session.java:191) at quickfix.DefaultSessionFactory.create(DefaultSessionFactory.java:125) at quickfix.mina.acceptor.AbstractSocketAcceptor.createSessions(AbstractSocketAcceptor.java:129) with the real error coming from here: Caused by: java.io.FileNotFoundException: output/data/server/FIX.4.2-test-exchange-test-sender.body (No such file or directory) at java.io.RandomAccessFile.open(Native Method) at java.io.RandomAccessFile.<init>(Unknown Source) at java.io.RandomAccessFile.<init>(Unknown Source) at quickfix.FileStore.initialize(FileStore.java:97) at quickfix.FileStore.<init>(FileStore.java:87) at quickfix.FileStoreFactory.create(FileStoreFactory.java:63) I've traced the cause of the error itself to a Maven bug (incorrect working dir setup) which i've filed with them: http://jira.codehaus.org/browse/MSUREFIRE-133 In QuickFixJ it gets manifested in quickfix.FileStore class constructor. If the incoming "path" is changed to be an absolute path (instead of relative) the rest of initialization works fine. I understand this a maven bug and not Quickfix, but i was hoping you would incorporate the workaround for it anyway b/c it makes sense regardless: it's just to take the incoming path and to always treat it as an absolute path. That makes the code more defensive. It's a one-line change. all the unit tests pass. I"m attaching a patch for the changes (it's just one line). toli

    QuickFIX/J JIRA | 1 decade ago | Steve Bate
    java.io.FileNotFoundException: output/data/server/FIX.4.2-test-exchange-test-sender.body (No such file or directory)

    Root Cause Analysis

    1. java.io.FileNotFoundException

      output/data/server/FIX.4.2-test-exchange-test-sender.body (No such file or directory)

      at quickfix.FileStoreFactory.create()
    2. Apache ServiceMix :: Bundles :: ${pkgArtifactId}
      AbstractSocketAcceptor.createSessions
      1. quickfix.FileStoreFactory.create(FileStoreFactory.java:65)
      2. quickfix.Session.<init>(Session.java:191)
      3. quickfix.DefaultSessionFactory.create(DefaultSessionFactory.java:125)
      4. quickfix.mina.acceptor.AbstractSocketAcceptor.createSessions(AbstractSocketAcceptor.java:129)
      4 frames