[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orekit Users] Help with ZipJarCrawler



Hi Luc,
Thank you very much for your support. Here's the trace you asked for:

Caused by: java.io.IOException: Stream closed
        at java.util.zip.ZipInputStream.ensureOpen(Unknown Source)
        at java.util.zip.ZipInputStream.closeEntry(Unknown Source)
        at org.orekit.data.ZipJarCrawler.feed(ZipJarCrawler.java:239)
        at org.orekit.data.ZipJarCrawler.feed(ZipJarCrawler.java:156)
        ... 12 more

The jar file has read permissions. Looking at the trace, it seems that the input file is read up to a certain point. The problem happens when closing an entry: at that some point in the past the ZipInputStream zip was closed and that entry closing operation fails. I wonder why and when the stream is closed. Could it be that, at line 205, the zip stream is closed when the new ZipInputStream object is destroyed?

Regards,
Carlos.




On 2 June 2013 20:21, MAISONOBE Luc <luc.maisonobe@c-s.fr> wrote:
"Carlos M. Casas Cuadrado" <carlos.marce@gmail.com> a écrit :

Hi all,

Hi Carlos,


I'm having problems with the ZipJarCrawler data provider. I have the
following code:

DataProvidersManager.getInstance().clearProviders();
DataProvidersManager.getInstance().addProvider(new
DirectoryCrawler(myDirectory));

where myDirectory is a File object to my data folder, and the program works
perfectly fine. I now insert my data folder into the project JAR file and
replace those two lines with:

DataProvidersManager.getInstance().clearProviders();
DataProvidersManager.getInstance().addProvider(new ZipJarCrawler(myJar));

where myJar is a File object with the path to the JAR file. In this case
the program throws an IO exception with the message "Stream closed", which
is captured by an Orekit exception with the following stack trace:

org.orekit.data.ZipJarCrawler.feed(ZipJarCrawler.java:167)
org.orekit.data.DataProvidersManager.feed(DataProvidersManager.java:332)
org.orekit.frames.RapidDataAndPredictionXMLLoader.fillHistory1980(RapidDataAndPredictionXMLLoader.java:110)
org.orekit.frames.FramesFactory.getEOP1980History(FramesFactory.java:284)
org.orekit.frames.GTODProvider.<init>(GTODProvider.java:72)
org.orekit.frames.FramesFactory.getGTOD(FramesFactory.java:916)
and my project files from here on.

The data files are definitely in the JAR file, under a subdirectory called
data/orekit. Since the documentation says that the search is recursive the
data provider should be able to find the data files. I'm using the Orekit
6.0 release. What am I doing wrong?

Do you also have the stacktrace for the initial IOExcetion -it should appear after a "caused by ..." line. What I would like to know is if the exception was thrown while executing line 147 of ZipJarCrawler (i.e. when opening the jar itself), or at some deeper level from the list of recursuive calls starting at line 156 of ZipJarCrawler (i.e. when parsing the jar and reading the contained files). Also did you check the read access properties of the jar file?

best regards,
Luc


Best regards,
Carlos.




----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.