Skip to main content

[truezip-dev] Re: Win 8 Issues?

  • From: Christian Schlichtherle <christian@...>
  • To: dev@...
  • Subject: [truezip-dev] Re: Win 8 Issues?
  • Date: Tue, 27 Aug 2013 20:26:30 +0200

Hi Arwen,

first, thanks for using TrueZIP.

second, please use the users mailing list, not the developers mailing list. 
Chances are that nobody but me is on this list because I am the sole 
developer.

third, the stack trace tells me that the ZIP file appears to use illegal 
characters: The file separator in a ZIP file is '/', not '\\'. TrueZIP 
auto-adjusts this for you, so honestly I have no idea how this happened. 
Unfortunately, I don't have Windows 8. Please check that the ZIP file does 
not contain entry names with '\\' characters. You may create a JIRA ticket 
and attach a sample archive file so I can check.

Regards,
Christian Schlichtherle

Am 27.08.2013 um 19:29 schrieb Arwen Pond <arwenpond@...>:

> 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(TFileOutputStream.java:147)
>                 at 
> de.schlichtherle.truezip.file.TFileOutputStream.<init>(TFileOutputStream.java: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.java:306)
>                 at 
> de.schlichtherle.truezip.socket.IOCache$Input.getDelegate(IOCache.java:266)
>                 at 
> de.schlichtherle.truezip.socket.DelegatingInputSocket.getBoundSocket(DelegatingInputSocket.java:43)
>                 at 
> de.schlichtherle.truezip.socket.DelegatingInputSocket.newReadOnlyFile(DelegatingInputSocket.java:53)
>                 at 
> de.schlichtherle.truezip.socket.DelegatingInputSocket.newReadOnlyFile(DelegatingInputSocket.java:53)
>                 at 
> de.schlichtherle.truezip.fs.FsSyncController$Input.newReadOnlyFile(FsSyncController.java:385)
>                 at 
> de.schlichtherle.truezip.fs.FsLockController$Input$1NewReadOnlyFile.call(FsLockController.java:443)
>                 at 
> de.schlichtherle.truezip.fs.FsLockController$Input$1NewReadOnlyFile.call(FsLockController.java:440)
>                 at 
> de.schlichtherle.truezip.fs.FsLockController.locked(FsLockController.java:316)
>                 at 
> de.schlichtherle.truezip.fs.FsLockController.writeLocked(FsLockController.java:268)
>                 at 
> de.schlichtherle.truezip.fs.FsLockController$Input.newReadOnlyFile(FsLockController.java:447)
>                 at 
> de.schlichtherle.truezip.fs.FsFinalizeController$Input.newReadOnlyFile(FsFinalizeController.java:171)
>                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Input$NewReadOnlyFile.call(FsFalsePositiveArchiveController.java:298)
>                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Input$NewReadOnlyFile.call(FsFalsePositiveArchiveController.java:291)
>                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$TryChild.call(FsFalsePositiveArchiveController.java:507)
>                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController.call(FsFalsePositiveArchiveController.java:104)
>                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Input.newReadOnlyFile(FsFalsePositiveArchiveController.java:288)
>                 at 
> de.schlichtherle.truezip.fs.archive.zip.ZipDriver.newInputShop(ZipDriver.java:479)
>                 at 
> de.schlichtherle.truezip.fs.FsTargetArchiveController.mount0(FsTargetArchiveController.java:197)
>                 at 
> de.schlichtherle.truezip.fs.FsTargetArchiveController.mount(FsTargetArchiveController.java:155)
>                 at 
> de.schlichtherle.truezip.fs.FsFileSystemArchiveController$ResetFileSystem.autoMount(FsFileSystemArchiveController.java:85)
>                 at 
> de.schlichtherle.truezip.fs.FsFileSystemArchiveController.autoMount(FsFileSystemArchiveController.java:37)
>                 at 
> de.schlichtherle.truezip.fs.FsBasicArchiveController.autoMount(FsBasicArchiveController.java:113)
>                 at 
> de.schlichtherle.truezip.fs.FsBasicArchiveController.getEntry(FsBasicArchiveController.java:138)
>                 at 
> de.schlichtherle.truezip.fs.FsContextController.getEntry(FsContextController.java:66)
>                 at 
> de.schlichtherle.truezip.fs.FsDecoratingController.getEntry(FsDecoratingController.java:56)
>                 at 
> de.schlichtherle.truezip.fs.FsDecoratingController.getEntry(FsDecoratingController.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:328)
>                 at 
> de.schlichtherle.truezip.fs.FsLockController.writeLocked(FsLockController.java:268)
>                 at 
> de.schlichtherle.truezip.fs.FsLockController.readOrWriteLocked(FsLockController.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(FsDecoratingController.java:56)
>                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$GetEntry.call(FsFalsePositiveArchiveController.java:153)
>                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$GetEntry.call(FsFalsePositiveArchiveController.java:148)
>                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$TryChild.call(FsFalsePositiveArchiveController.java:507)
>                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController.call(FsFalsePositiveArchiveController.java:104)
>                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController.getEntry(FsFalsePositiveArchiveController.java:145)
>                 at 
> de.schlichtherle.truezip.file.TFile.exists(TFile.java:1887)
>                 at 
> com.bn.nere.utility.epub.provider.EpubDocumentProvider.exists(EpubDocumentProvider.java:116)
>                 at 
> com.bn.nere.utility.epub.provider.EpubDocumentProvider.addEntry(EpubDocumentProvider.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(FsReadOnlyArchiveFileSystem.java:54)
>                                 at 
> de.schlichtherle.truezip.fs.FsBasicArchiveController$1Output.mknod(FsBasicArchiveController.java:273)
>                                 at 
> de.schlichtherle.truezip.fs.FsBasicArchiveController$1Output.newOutputStream(FsBasicArchiveController.java:233)
>                                 at 
> de.schlichtherle.truezip.fs.FsContextController$Output.newOutputStream(FsContextController.java:322)
>                                 at 
> de.schlichtherle.truezip.fs.FsResourceController$Output.newOutputStream(FsResourceController.java:280)
>                                 at 
> de.schlichtherle.truezip.socket.DelegatingOutputSocket.newOutputStream(DelegatingOutputSocket.java:57)
>                                 at 
> de.schlichtherle.truezip.fs.FsSyncController$Output.newOutputStream(FsSyncController.java:451)
>                                 at 
> de.schlichtherle.truezip.fs.FsLockController$Output$1NewOutputStream.call(FsLockController.java:509)
>                                 at 
> de.schlichtherle.truezip.fs.FsLockController$Output$1NewOutputStream.call(FsLockController.java:506)
>                                 at 
> de.schlichtherle.truezip.fs.FsLockController.locked(FsLockController.java:328)
>                                 at 
> de.schlichtherle.truezip.fs.FsLockController.writeLocked(FsLockController.java:268)
>                                 at 
> de.schlichtherle.truezip.fs.FsLockController$Output.newOutputStream(FsLockController.java:513)
>                                 at 
> de.schlichtherle.truezip.fs.FsFinalizeController$Output.newOutputStream(FsFinalizeController.java:209)
>                                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output$NewOutputStream.call(FsFalsePositiveArchiveController.java:409)
>                                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output$NewOutputStream.call(FsFalsePositiveArchiveController.java:402)
>                                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$TryChild.call(FsFalsePositiveArchiveController.java:507)
>                                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController.call(FsFalsePositiveArchiveController.java:104)
>                                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output.newOutputStream(FsFalsePositiveArchiveController.java:399)
>                                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output$NewOutputStream.call(FsFalsePositiveArchiveController.java:409)
>                                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output$NewOutputStream.call(FsFalsePositiveArchiveController.java:402)
>                                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$UseParent.call(FsFalsePositiveArchiveController.java:524)
>                                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController.call(FsFalsePositiveArchiveController.java:104)
>                                 at 
> de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output.newOutputStream(FsFalsePositiveArchiveController.java:399)
>                                 at 
> de.schlichtherle.truezip.file.TFileOutputStream.newOutputStream(TFileOutputStream.java:143)
>                                 at 
> de.schlichtherle.truezip.file.TFileOutputStream.<init>(TFileOutputStream.java: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.
>  
>  

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail



[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