Hello Nicolas,

thank you very much for the quick reply. I think I found, what caused the 
problem. I use my own p2-mirror.
This mirror contains packed and unpacked copies of some artifacts. Packed 
copies of artifacts are stored in the .blobstore directory.


It looks like Ivy picks unpacked artifact thinking, it's packed.

Ignoring packed artifacts while recreating the p2-mirror repository helped.

I will open a jira issue for that.


Boris


PS
I create my p2-mirror using my own tool 
borisbrodski/org.eclipse.pde.targetplatformexporter
Update site: 
https://github.com/borisbrodski/org.eclipse.pde.targetplatformexporter/raw/updatesite/org.eclipse.pde.targetplatformexporter.site
 

On Tuesday, July 15, 2014 3:55 PM, Nicolas Lalevée <nicolas.lale...@hibnet.org> 
wrote:
 


Hi,


Le 15 juil. 2014 à 11:46, Boris Brodski <brodsky_bo...@yahoo.com.INVALID> a 
écrit :

> Hello,
> 
> 
> playing with OSGi resolvers I found a very strange behavior: It looks like 
> during unpacking of some *.jar.pack.gz archives Ivy modifies MANIFEST.MF. 
> This results is: "Invalid signature file digest for Manifest" error raised by 
> the VM.
> 
> 
> Inspecting following bundles from update site: 
> http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/
>  
> - org.eclipse.xtend.core-2.6.1.v201406120726.jar.pack.gz - Unmodified 
> MANIFEST.MF : No error
> - org.eclipse.xtend.core-2.6.2.v201407030533.jar.pack.gz - Modified 
> MANIFEST.MF :
 ERROR
> 
> Diff between original MANIFEST.MF and by Ivy modified version:
> (Ivy rearranges lines. Sorting both original and Ivy-modified 
> MANIFEST.MF-files produces identical output)
> 
> 
> @@ -1,4 +1,24 @@
>  Manifest-Version: 1.0
> +Bundle-Localization: plugin
> +Bundle-RequiredExecutionEnvironment: J2SE-1.5
> +Bundle-SymbolicName: org.eclipse.xtend.core;singleton:=true
> +Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",org.ec
> +
 lipse.emf.ecore;bundle-version="2.9.0";visibility:="reexport",org.ecl
> + ipse.xtext.common.types;bundle-version="2.6.2";visibility:="reexport"
> + ,org.eclipse.xtext.xbase;bundle-version="2.6.2";visibility:="reexport
> + ",org.eclipse.xtext;bundle-version="2.6.2",org.eclipse.xtext.util;bun
> + dle-version="2.6.2",org.eclipse.emf.mwe2.launch;bundle-version="2.2.0
> + ";resolution:="optional";x-installation:="greedy",org.eclipse.emf.mwe
> + 2.lib;bundle-version="2.2.0";resolution:="optional";x-installation:="
> + greedy",org.eclipse.xtext.generator;bundle-version="2.6.2";resolution
> + :="optional";x-installation:="greedy",org.antlr.runtime;bundle-versio
> + n="[3.2.0,3.2.1)",org.eclipse.jdt.core;bundle-version="3.5.0";resolut
> + ion:="optional";x-installation:="greedy",org.eclipse.xtext.xbase.lib;
> + bundle-version="[2.6.0,3.0.0)",org.eclipse.xtend.lib;bundle-version="
> + 2.6.2",org.eclipse.xtext.smap;bundle-version="2.6.2",org.apache.ant;b
> + undle-version="1.7.1";resolution:="optional";x-installation:="greedy"
> + ,org.eclipse.xtext.xbase.junit;bundle-version="2.6.2";resolution:="op
> + tional"
>  Export-Package: org.eclipse.xtend.core;x-internal:=true,org.eclipse.xt
>   end.core.compiler;x-internal:=true,org.eclipse.xtend.core.compiler.ba
>   tch,org.eclipse.xtend.core.conversion;x-internal:=true,org.eclipse.xt
> @@ -20,2732 +40,2712 @@ Export-Package: 
> org.eclipse.xtend.core;x-internal:=true,org.eclipse.xt
>   ation;x-internal:=true,org.eclipse.xtend.core.xtend;x-internal:=true,
>   org.eclipse.xtend.core.xtend.impl;x-internal:=true,org.eclipse.xtend.
>   core.xtend.util;x-internal:=true
> -Bundle-ActivationPolicy: lazy
> +Bundle-Version: 2.6.2.v201407030533
> +Ant-Version: Apache Ant 1.8.3
>  Bundle-ClassPath: .
> -Bundle-Localization: plugin
> +Bundle-ActivationPolicy: lazy
> +Bundle-Vendor: %providerName
>  Bundle-Name: %pluginName
>  Created-By: 1.6.0_45-b06 (Sun Microsystems Inc.)
> -Bundle-RequiredExecutionEnvironment: J2SE-1.5
> -Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",org.ec
> - lipse.emf.ecore;bundle-version="2.9.0";visibility:="reexport",org.ecl
> - ipse.xtext.common.types;bundle-version="2.6.2";visibility:="reexport"
> - ,org.eclipse.xtext.xbase;bundle-version="2.6.2";visibility:="reexport
> - ",org.eclipse.xtext;bundle-version="2.6.2",org.eclipse.xtext.util;bun
> -
 dle-version="2.6.2",org.eclipse.emf.mwe2.launch;bundle-version="2.2.0
> - ";resolution:="optional";x-installation:="greedy",org.eclipse.emf.mwe
> - 2.lib;bundle-version="2.2.0";resolution:="optional";x-installation:="
> - greedy",org.eclipse.xtext.generator;bundle-version="2.6.2";resolution
> - :="optional";x-installation:="greedy",org.antlr.runtime;bundle-versio
> - n="[3.2.0,3.2.1)",org.eclipse.jdt.core;bundle-version="3.5.0";resolut
> - ion:="optional";x-installation:="greedy",org.eclipse.xtext.xbase.lib;
> - bundle-version="[2.6.0,3.0.0)",org.eclipse.xtend.lib;bundle-version="
> - 2.6.2",org.eclipse.xtext.smap;bundle-version="2.6.2",org.apache.ant;b
> - undle-version="1.7.1";resolution:="optional";x-installation:="greedy"
> - ,org.eclipse.xtext.xbase.junit;bundle-version="2.6.2";resolution:="op
> - tional"
> -Ant-Version: Apache Ant 1.8.3
> -Bundle-Vendor: %providerName
> -Bundle-Version: 2.6.2.v201407030533
> -Bundle-ManifestVersion: 2
>  Import-Package: org.apache.log4j;version="1.2.15",org.eclipse.xtext.xb
>   ase.lib
> -Bundle-SymbolicName: org.eclipse.xtend.core;singleton:=true
> +Bundle-ManifestVersion: 2
>  
> -Name: org/eclipse/xtend/core/macro/declaration/JvmExecutableDeclaratio
> - nImpl$3.class
> -SHA1-Digest: 86QcHNMNBD/THDgOv+293UTj1U4=
> +Name: org/eclipse/xtend/core/xtend/impl/XtendPackageImpl.class
> +SHA1-Digest: OGuJ6N9ZPJ0RHi2IN0XeGtZF3So=
> 
> ------------------- cut ----------------------
> 
> 
> Using modified jar file like this: java -cp 
> ~/.ivy2/cache/bundle/org.eclipse.xtend.core/jar_unpackeds/org.eclipse.xtend.core-2.6.2.v201407030533.jar:.....
>  org.jnario.compiler.CompilerMain arg1 arg2 ...
> 
> 
> produces
> 
> 
> Class 'org.eclipse.xtend.core.compiler.batch.Main' not found: Invalid 
> signature file digest for Manifest main 
> attributesjava.lang.SecurityException: Invalid signature file digest for 
> Manifest main attributes
> at 
> sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:240)
> at 
> sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:193)
> at java.util.jar.JarVerifier.processEntry(JarVerifier.java:307)
> at java.util.jar.JarVerifier.update(JarVerifier.java:218)
> at java.util.jar.JarFile.initializeVerifier(JarFile.java:345)
> at
 java.util.jar.JarFile.getInputStream(JarFile.java:412)
> at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:775)
> at sun.misc.Resource.cachedInputStream(Resource.java:77)
> at sun.misc.Resource.getByteBuffer(Resource.java:160)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:436)
> at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:190)
> at 
> de.finkonsens.pingo.tools.FileArgumentRunner.main(FileArgumentRunner.java:98)
> 
> BUILD FAILED
> 
> Using 2.6.1.v201406120726 version of the bundle works.
>  
> 
> Is this a bug or a feature? How can I
 prevent Ivy from modifying files like this?

Ivy does nothing with the jar but unpacking the .jar.pack.gz into .jar and 
optionally then to a folder.

But seems like a bug. You're welcomed to open a jira issue, with OS and jvm 
version info please.

Nicolas

Reply via email to