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
Your exception is missing from the Samebug knowledge base.
Here are the best solutions we found on the Internet.
Click on the to mark the helpful solution and get rewards 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