1
22
23 package com.liferay.portal.zip;
24
25 import com.liferay.portal.kernel.util.PortalClassLoaderUtil;
26 import com.liferay.portal.kernel.zip.ZipReader;
27 import com.liferay.portal.kernel.zip.ZipReaderFactory;
28
29 import java.io.File;
30 import java.io.IOException;
31 import java.io.InputStream;
32
33
38 public class ZipReaderFactoryImpl implements ZipReaderFactory {
39
40 public ZipReader getZipReader(File file) {
41 ClassLoader portalClassLoader = PortalClassLoaderUtil.getClassLoader();
42
43 Thread currentThread = Thread.currentThread();
44
45 ClassLoader contextClassLoader = currentThread.getContextClassLoader();
46
47 try {
48 if (contextClassLoader != portalClassLoader) {
49 currentThread.setContextClassLoader(portalClassLoader);
50 }
51
52 return new ZipReaderImpl(file);
53 }
54 finally {
55 if (contextClassLoader != portalClassLoader) {
56 currentThread.setContextClassLoader(contextClassLoader);
57 }
58 }
59 }
60
61 public ZipReader getZipReader(InputStream inputStream) throws IOException {
62 ClassLoader portalClassLoader = PortalClassLoaderUtil.getClassLoader();
63
64 Thread currentThread = Thread.currentThread();
65
66 ClassLoader contextClassLoader = currentThread.getContextClassLoader();
67
68 try {
69 if (contextClassLoader != portalClassLoader) {
70 currentThread.setContextClassLoader(portalClassLoader);
71 }
72
73 return new ZipReaderImpl(inputStream);
74 }
75 finally {
76 if (contextClassLoader != portalClassLoader) {
77 currentThread.setContextClassLoader(contextClassLoader);
78 }
79 }
80 }
81
82 }