Skip to main content

[truezip-dev] Win 8 Issues?

  • From: Arwen Pond <arwenpond@...>
  • To: <dev@...>
  • Subject: [truezip-dev] Win 8 Issues?
  • Date: Tue, 27 Aug 2013 10:29:57 -0700

We have moved our project from building on Windows 7 to building on Windows
8.  As a result I have found a couple of issues that seems to be TrueZip
related.  Has anyone else been using TrueZip with Windows 8?

 

Issue 1:

I have a custom archive detector for 'epub'.  The driver is derived from the
JarDriver.  I am having trouble adding files to a directory in the archive
where the directory has a .epub extension. Pseudo Code:

TArchiveDetector myDetector = new TArchiveDetector( "epub", new
EpubDriver(IOPoolLocator.SINGLETON));
TFile rootFile = new TFile("foo.epub", myDetector);
rootFile.mkdir();
TFile subfolder = new TFile(rootFile.getPath()+"/bar.epub", myDetector);
subfolder.toNonArchiveFile().mkdir();
TFile newFile = new TFile(subfolder.getPath()+"hello.txt", myDetector);
OutputStream outputStream = new TFileOutputStream(newFile);  

 

This line fails with a call stack that looks like this:

java.io.FileNotFoundException:
D:\target\test-books\epubs\foo.epub\bar.epub\hello.txt

                at
de.schlichtherle.truezip.file.TFileOutputStream.newOutputStream(TFileOutputS
tream.java:147)

                at
de.schlichtherle.truezip.file.TFileOutputStream.<init>(TFileOutputStream.jav
a:116)

...

Caused by: de.schlichtherle.truezip.io.InputException:
de.schlichtherle.truezip.fs.FsEntryNotFoundException: epub:file:/D
D:\target\test-books\epubs\foo.epub\bar.epub (expected FILE entry, but is a
[DIRECTORY] entry)

                at
de.schlichtherle.truezip.socket.IOSocket.copy(IOSocket.java:102)

                at
de.schlichtherle.truezip.socket.IOCache$InputBufferPool.allocate(IOCache.jav
a:306)

                at
de.schlichtherle.truezip.socket.IOCache$Input.getDelegate(IOCache.java:266)

                at
de.schlichtherle.truezip.socket.DelegatingInputSocket.getBoundSocket(Delegat
ingInputSocket.java:43)

                at
de.schlichtherle.truezip.socket.DelegatingInputSocket.newReadOnlyFile(Delega
tingInputSocket.java:53)

                at
de.schlichtherle.truezip.socket.DelegatingInputSocket.newReadOnlyFile(Delega
tingInputSocket.java:53)

                at
de.schlichtherle.truezip.fs.FsSyncController$Input.newReadOnlyFile(FsSyncCon
troller.java:385)

                at
de.schlichtherle.truezip.fs.FsLockController$Input$1NewReadOnlyFile.call(FsL
ockController.java:443)

                at
de.schlichtherle.truezip.fs.FsLockController$Input$1NewReadOnlyFile.call(FsL
ockController.java:440)

                at
de.schlichtherle.truezip.fs.FsLockController.locked(FsLockController.java:31
6)

                at
de.schlichtherle.truezip.fs.FsLockController.writeLocked(FsLockController.ja
va:268)

                at
de.schlichtherle.truezip.fs.FsLockController$Input.newReadOnlyFile(FsLockCon
troller.java:447)

                at
de.schlichtherle.truezip.fs.FsFinalizeController$Input.newReadOnlyFile(FsFin
alizeController.java:171)

                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Input$NewReadO
nlyFile.call(FsFalsePositiveArchiveController.java:298)

                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Input$NewReadO
nlyFile.call(FsFalsePositiveArchiveController.java:291)

                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$TryChild.call(F
sFalsePositiveArchiveController.java:507)

                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController.call(FsFalsePos
itiveArchiveController.java:104)

                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Input.newReadO
nlyFile(FsFalsePositiveArchiveController.java:288)

                at
de.schlichtherle.truezip.fs.archive.zip.ZipDriver.newInputShop(ZipDriver.jav
a:479)

                at
de.schlichtherle.truezip.fs.FsTargetArchiveController.mount0(FsTargetArchive
Controller.java:197)

                at
de.schlichtherle.truezip.fs.FsTargetArchiveController.mount(FsTargetArchiveC
ontroller.java:155)

                at
de.schlichtherle.truezip.fs.FsFileSystemArchiveController$ResetFileSystem.au
toMount(FsFileSystemArchiveController.java:85)

                at
de.schlichtherle.truezip.fs.FsFileSystemArchiveController.autoMount(FsFileSy
stemArchiveController.java:37)

                at
de.schlichtherle.truezip.fs.FsBasicArchiveController.autoMount(FsBasicArchiv
eController.java:113)

                at
de.schlichtherle.truezip.fs.FsBasicArchiveController.getEntry(FsBasicArchive
Controller.java:138)

                at
de.schlichtherle.truezip.fs.FsContextController.getEntry(FsContextController
.java:66)

                at
de.schlichtherle.truezip.fs.FsDecoratingController.getEntry(FsDecoratingCont
roller.java:56)

                at
de.schlichtherle.truezip.fs.FsDecoratingController.getEntry(FsDecoratingCont
roller.java:56)

                at
de.schlichtherle.truezip.fs.FsSyncController.getEntry(FsSyncController.java:
92)

                at
de.schlichtherle.truezip.fs.FsLockController$1GetEntry.call(FsLockController
.java:101)

                at
de.schlichtherle.truezip.fs.FsLockController$1GetEntry.call(FsLockController
.java:98)

                at
de.schlichtherle.truezip.fs.FsLockController.locked(FsLockController.java:32
8)

                at
de.schlichtherle.truezip.fs.FsLockController.writeLocked(FsLockController.ja
va:268)

                at
de.schlichtherle.truezip.fs.FsLockController.readOrWriteLocked(FsLockControl
ler.java:257)

                at
de.schlichtherle.truezip.fs.FsLockController.getEntry(FsLockController.java:
104)

                at
de.schlichtherle.truezip.fs.archive.zip.KeyController.getEntry(KeyController
.java:72)

                at
de.schlichtherle.truezip.fs.FsDecoratingController.getEntry(FsDecoratingCont
roller.java:56)

                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$GetEntry.call(F
sFalsePositiveArchiveController.java:153)

                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$GetEntry.call(F
sFalsePositiveArchiveController.java:148)

                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$TryChild.call(F
sFalsePositiveArchiveController.java:507)

                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController.call(FsFalsePos
itiveArchiveController.java:104)

                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController.getEntry(FsFals
ePositiveArchiveController.java:145)

                at
de.schlichtherle.truezip.file.TFile.exists(TFile.java:1887)

                at
com.bn.nere.utility.epub.provider.EpubDocumentProvider.exists(EpubDocumentPr
ovider.java:116)

                at
com.bn.nere.utility.epub.provider.EpubDocumentProvider.addEntry(EpubDocument
Provider.java:137)

                ... 38 more

                Suppressed:
de.schlichtherle.truezip.fs.FsReadOnlyArchiveFileSystemException: This is a
read-only archive file system!

                                at
de.schlichtherle.truezip.fs.FsReadOnlyArchiveFileSystem.mknod(FsReadOnlyArch
iveFileSystem.java:54)

                                at
de.schlichtherle.truezip.fs.FsBasicArchiveController$1Output.mknod(FsBasicAr
chiveController.java:273)

                                at
de.schlichtherle.truezip.fs.FsBasicArchiveController$1Output.newOutputStream
(FsBasicArchiveController.java:233)

                                at
de.schlichtherle.truezip.fs.FsContextController$Output.newOutputStream(FsCon
textController.java:322)

                                at
de.schlichtherle.truezip.fs.FsResourceController$Output.newOutputStream(FsRe
sourceController.java:280)

                                at
de.schlichtherle.truezip.socket.DelegatingOutputSocket.newOutputStream(Deleg
atingOutputSocket.java:57)

                                at
de.schlichtherle.truezip.fs.FsSyncController$Output.newOutputStream(FsSyncCo
ntroller.java:451)

                                at
de.schlichtherle.truezip.fs.FsLockController$Output$1NewOutputStream.call(Fs
LockController.java:509)

                                at
de.schlichtherle.truezip.fs.FsLockController$Output$1NewOutputStream.call(Fs
LockController.java:506)

                                at
de.schlichtherle.truezip.fs.FsLockController.locked(FsLockController.java:32
8)

                                at
de.schlichtherle.truezip.fs.FsLockController.writeLocked(FsLockController.ja
va:268)

                                at
de.schlichtherle.truezip.fs.FsLockController$Output.newOutputStream(FsLockCo
ntroller.java:513)

                                at
de.schlichtherle.truezip.fs.FsFinalizeController$Output.newOutputStream(FsFi
nalizeController.java:209)

                                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output$NewOutp
utStream.call(FsFalsePositiveArchiveController.java:409)

                                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output$NewOutp
utStream.call(FsFalsePositiveArchiveController.java:402)

                                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$TryChild.call(F
sFalsePositiveArchiveController.java:507)

                                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController.call(FsFalsePos
itiveArchiveController.java:104)

                                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output.newOutp
utStream(FsFalsePositiveArchiveController.java:399)

                                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output$NewOutp
utStream.call(FsFalsePositiveArchiveController.java:409)

                                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output$NewOutp
utStream.call(FsFalsePositiveArchiveController.java:402)

                                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$UseParent.call(
FsFalsePositiveArchiveController.java:524)

                                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController.call(FsFalsePos
itiveArchiveController.java:104)

                                at
de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output.newOutp
utStream(FsFalsePositiveArchiveController.java:399)

                                at
de.schlichtherle.truezip.file.TFileOutputStream.newOutputStream(TFileOutputS
tream.java:143)

                                at
de.schlichtherle.truezip.file.TFileOutputStream.<init>(TFileOutputStream.jav
a:116)

 

Issue 2:

If I create an archive, and then call umount on it, then 'reopen it' for
additional modification I will get a "FsReadOnlyArchiveFileSystemException:
This is a read-only archive file system!" Error.  This happens in my tests.
I have one tests that will create the file (calling umount) and a second
test that will update it.  The updating fails.

 

 



[truezip-dev] Win 8 Issues?

Arwen Pond 08/27/2013

[truezip-dev] Re: Win 8 Issues?

Christian Schlichtherle 08/27/2013
 
 
Close
loading
Please Confirm
Close