|
5 | 5 | import copy |
6 | 6 | import javaos as os |
7 | 7 | from sets import Set |
8 | | -import zipfile |
9 | 8 |
|
10 | 9 | from java.io import File |
11 | 10 | from java.io import IOException |
| 11 | +from java.io import FileNotFoundException |
| 12 | +from java.util.zip import ZipException |
12 | 13 | from java.security import NoSuchAlgorithmException |
| 14 | +from java.util.jar import JarFile |
| 15 | +from java.util.jar import Manifest |
| 16 | +from java.lang import IllegalStateException |
| 17 | +from java.io import ByteArrayOutputStream |
13 | 18 |
|
14 | 19 | import oracle.weblogic.deploy.util.FileUtils as FileUtils |
15 | 20 | import oracle.weblogic.deploy.util.PyOrderedDict as OrderedDict |
@@ -776,9 +781,14 @@ def __get_deployable_library_versioned_name(self, source_path, model_name): |
776 | 781 | old_name_tuple = deployer_utils.get_library_name_components(model_name, self.wlst_mode) |
777 | 782 | try: |
778 | 783 | source_path = self.model_context.replace_token_string(source_path) |
779 | | - archive = zipfile.ZipFile(source_path) |
780 | | - manifest = archive.read('META-INF/MANIFEST.MF') |
781 | | - tokens = manifest.split() |
| 784 | + archive = JarFile(source_path) |
| 785 | + manifest_object = archive.getManifest() |
| 786 | + tokens = [] |
| 787 | + if manifest_object is not None: |
| 788 | + bao = ByteArrayOutputStream() |
| 789 | + manifest_object.write(bao) |
| 790 | + manifest = bao.toString('UTF-8') |
| 791 | + tokens = manifest.split() |
782 | 792 |
|
783 | 793 | if 'Extension-Name:' in tokens: |
784 | 794 | extension_index = tokens.index('Extension-Name:') |
@@ -812,7 +822,7 @@ def __get_deployable_library_versioned_name(self, source_path, model_name): |
812 | 822 | raise ex |
813 | 823 | self.logger.info('WLSDPLY-09324', model_name, versioned_name, |
814 | 824 | class_name=self._class_name, method_name=_method_name) |
815 | | - except (zipfile.BadZipfile, IOError), e: |
| 825 | + except (IOException, FileNotFoundException, ZipException, IllegalStateException), e: |
816 | 826 | ex = exception_helper.create_deploy_exception('WLSDPLY-09325', model_name, source_path, str(e), error=e) |
817 | 827 | self.logger.throwing(ex, class_name=self._class_name, method_name=_method_name) |
818 | 828 | raise ex |
|
0 commit comments