1 Reply Latest reply on Sep 18, 2006 8:47 AM by Newsgroup_User

    unzip zipfile with nonenglish filenames

    Level 7
      hi, all

      i tried to use apache foundation alternative (supports encoding
      parameter to resolve filenames encoding) to standard unzipping classes
      located in JVM 1.4.x. classes are located in package
      org.apache.tools.zip.* in ant.jar

      everything works fine in tomcat, but in JRun/CF7 following message is
      displayed ...

      as you can guess cf also uses ant.jar, and that is probably the problem.


      thanks for advice,
      jan

      -------------------------------------------------------------------

      tried to access field org.apache.tools.zip.ZipOutputStream.EOCD_SIG from
      class org.apache.tools.zip.ZipFile


      java.lang.IllegalAccessError: tried to access field
      org.apache.tools.zip.ZipOutputStream.EOCD_SIG from class
      org.apache.tools.zip.ZipFile
      at
      org.apache.tools.zip.ZipFile.positionAtCentralDirectory(ZipFile.java:348)
      at
      org.apache.tools.zip.ZipFile.populateFromCentralDirectory(ZipFile.java:243)
      at org.apache.tools.zip.ZipFile.(ZipFile.java:142)
      at cz.sitewell.zip.Zipping.decompress(Zipping.java:66)
      at cz.sitewell.zip.Zipping.decompress(Zipping.java:54)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at coldfusion.runtime.StructBean.invoke(StructBean.java:388)
      at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1655)
      at
      cftestik2ecfm365833867.runPage(C:\JRun4\servers\cfusion\cfusion-ear\cfusion-war\testik.cf m:18)
      at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
      at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:343)
      at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
      at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:210)
      at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
      at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27)
      at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:50)
      at
      coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:2 8)
      at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
      at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
      at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
      at coldfusion.CfmServlet.service(CfmServlet.java:105)
      at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:78)
      at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
      at
      jrunx.util.DynamicClassLoaderFilter.doFilter(DynamicClassLoaderFilter.java:48)
      at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
      at jrun.servlet.FilterChain.service(FilterChain.java:101)
      at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
      at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
      at
      jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:259)
      at
      jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:541)
      at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
      at
      jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
      at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
        • 1. Re: unzip zipfile with nonenglish filenames
          Level 7
          hello,

          i found the problem but not solution yet ...
          in jrun.jar is located some ancient (4years old) version of ant
          without ZipFile class. That class is loaded from newer version of ant.jar.
          protected fields probably work only on same jars, not packages.
          because of this IllegalAccessError is throwed.

          is there some elegant solution to load newer version of ant? of course
          i see some workarounds such as modification of jrun.jar or package
          renaming to solve this ...

          jan

          Jan Gregor wrote:
          > hi, all
          >
          > i tried to use apache foundation alternative (supports encoding
          > parameter to resolve filenames encoding) to standard unzipping classes
          > located in JVM 1.4.x. classes are located in package
          > org.apache.tools.zip.* in ant.jar
          >
          > everything works fine in tomcat, but in JRun/CF7 following message is
          > displayed ...
          >
          > as you can guess cf also uses ant.jar, and that is probably the problem.
          >
          >
          > thanks for advice,
          > jan
          >
          > -------------------------------------------------------------------
          >
          > tried to access field org.apache.tools.zip.ZipOutputStream.EOCD_SIG from
          > class org.apache.tools.zip.ZipFile
          >
          >
          > java.lang.IllegalAccessError: tried to access field
          > org.apache.tools.zip.ZipOutputStream.EOCD_SIG from class
          > org.apache.tools.zip.ZipFile
          > at
          > org.apache.tools.zip.ZipFile.positionAtCentralDirectory(ZipFile.java:348)
          > at
          > org.apache.tools.zip.ZipFile.populateFromCentralDirectory(ZipFile.java:243)
          > at org.apache.tools.zip.ZipFile.(ZipFile.java:142)
          > at cz.sitewell.zip.Zipping.decompress(Zipping.java:66)
          > at cz.sitewell.zip.Zipping.decompress(Zipping.java:54)
          > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          > at
          > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          >
          > at
          > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          >
          > at java.lang.reflect.Method.invoke(Method.java:324)
          > at coldfusion.runtime.StructBean.invoke(StructBean.java:388)
          > at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1655)
          > at
          > cftestik2ecfm365833867.runPage(C:\JRun4\servers\cfusion\cfusion-ear\cfusion-war\testik.cf m:18)
          >
          > at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
          > at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:343)
          > at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
          > at
          > coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:210)
          > at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
          > at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27)
          > at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:50)
          > at
          > coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:2 8)
          >
          > at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
          > at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
          > at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
          > at coldfusion.CfmServlet.service(CfmServlet.java:105)
          > at
          > coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:78)
          > at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
          > at
          > jrunx.util.DynamicClassLoaderFilter.doFilter(DynamicClassLoaderFilter.java:48)
          >
          > at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
          > at jrun.servlet.FilterChain.service(FilterChain.java:101)
          > at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
          > at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
          > at
          > jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:259)
          > at
          > jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:541)
          > at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
          > at
          > jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
          >
          > at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)