You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Niclas Hedhman <ni...@hedhman.org> on 2003/09/08 14:48:48 UTC

First Merlin build

Being "stupid" enough to always use CVS checkouts for evaluations... hmmm?

I just did;

cd dev/opensource/avalon-sandbox/merlin
cvs -q update -dP
maven merlin-dist
cd target/merlin
export MERLIN_HOME=`pwd`
bin/merlin.sh run

And I got the following result;

[niclas@f2 merlin]$ bin/merlin.sh run
RUN CMD IS: /java/jdk/bin/java 
-Dmerlin.home=/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin 
-Djava.ext.dirs=/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin/ext 
-jar 
/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin/bin/lib/merlin-bootstrap-1.0.jar 
run
KERNEL-ERROR: Unexpected error during kernel context instantiation.

Internal error during kernel instantiation.
-------------------------------------------------------------------
Exception: java.lang.NoClassDefFoundError
Message: org/apache/avalon/composition/util/ExceptionHelper

---- stack trace --------------------------------------------------
java.lang.NoClassDefFoundError: 
org/apache/avalon/composition/util/ExceptionHelper
        at 
org.apache.avalon.merlin.kernel.impl.CLIKernelLoader.<init>(CLIKernelLoader.java:139)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
        at Merlin.main(Merlin.java:253)
-------------------------------------------------------------------


I was a little bit curious so I did;

[niclas@f2 merlin]$ for FILE in `find . -name "*.jar"` ; do echo $FILE ; jar 
tf $FILE | grep ExceptionHelper ; done

Yielding the result;

./ext/xml-apis-2.0.2.jar
./ext/xmlParserAPIs-2.0.2.jar
./ext/xerces-2.4.0.jar
./bin/lib/merlin-bootstrap-1.0.jar
ExceptionHelper.class
./bin/nt/wrapper.jar
./repository/mx4j/jars/mx4j-jmx-1.1.1.jar
./repository/mx4j/jars/mx4j-tools-1.1.1.jar
./repository/merlin/jars/merlin-kernel-spi-SNAPSHOT.jar
./repository/merlin/jars/merlin-kernel-impl-SNAPSHOT.jar
./repository/avalon-repository/jars/avalon-repository-spi-SNAPSHOT.jar
./repository/avalon-repository/jars/avalon-repository-impl-SNAPSHOT.jar
./repository/avalon-framework/jars/avalon-framework-api-SNAPSHOT.jar
./repository/avalon-framework/jars/avalon-framework-impl-SNAPSHOT.jar
./repository/avalon-meta/jars/avalon-meta-api-SNAPSHOT.jar
./repository/avalon-meta/jars/avalon-meta-spi-SNAPSHOT.jar
./repository/avalon-meta/jars/avalon-meta-impl-SNAPSHOT.jar
./repository/avalon-meta/jars/avalon-meta-tools-SNAPSHOT.jar
./repository/avalon-activation/jars/avalon-activation-api-SNAPSHOT.jar
./repository/avalon-activation/jars/avalon-activation-spi-SNAPSHOT.jar
./repository/avalon-activation/jars/avalon-activation-impl-SNAPSHOT.jar
./repository/avalon-composition/jars/avalon-composition-api-SNAPSHOT.jar
./repository/avalon-composition/jars/avalon-composition-spi-SNAPSHOT.jar
./repository/avalon-composition/jars/avalon-composition-impl-SNAPSHOT.jar
org/apache/avalon/composition/util/ExceptionHelper.class
./repository/avalon-extension/jars/avalon-extension-spi-SNAPSHOT.jar
./repository/avalon-extension/jars/avalon-extension-impl-SNAPSHOT.jar
./repository/logkit/jars/logkit-1.2.jar
./repository/excalibur-lifecycle/jars/excalibur-lifecycle-api-1.0.jar
./repository/excalibur/jars/excalibur-util-concurrent-1.3.1.jar
./repository/excalibur-i18n/jars/excalibur-i18n-1.0.jar
./repository/excalibur-configuration/jars/excalibur-configuration-1.1-dev.jar
./repository/excalibur-pool/jars/excalibur-pool-1.2.jar
./repository/excalibur-event/jars/excalibur-event-1.0.3.jar
./repository/commons-collections/jars/commons-collections-2.1.jar
./repository/commons-cli/jars/commons-cli-1.0.jar


Showing the ExceptionHelper class in 
./repository/avalon-composition/jars/avalon-composition-impl-SNAPSHOT.jar
But not reachable...


Work in-progress??


Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Stephen McConnell <mc...@apache.org>.

Niclas Hedhman wrote:

>SO, I have some really serious classloading issues going on...
>

You sure do.
I'm going to update the bootstrap classes to give me a printout of what 
is actually loaded into the classloaders.  This should give us a better 
idea of what is going on.

>
>Steve, you asked about env. Linux RH9 + any late JDK from Sun.
>  
>

This platform has been confirm as ok. 
We just need to sort out why this is happening to you.

>My energy is rapidly disappearing...
>  
>
:-)
Don't worry - the cavalry is on the way!
Steve.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Tuesday 09 September 2003 15:58, Niclas Hedhman wrote:
> Also, first time I have dug into the source code before trying to get a
> some sample code to work. Big commitment !  ;o)
>
> I'll now try to take a Phoenix block, modify and run it under Merlin
> instead. I need to get on with the evaluation.

Hmmm. The long email have not arrived yet... Strange.

Anyway. Going straight to stuff that works didn't help a lot.

So back to the problem. I placed some printStackTrace() to find why the 
ExceptionHelper is needed.

This is the originating exception;

java.lang.NoClassDefFoundError: 
org/apache/avalon/composition/logging/impl/FileTargetProvider
        at 
org.apache.avalon.merlin.kernel.impl.CLIKernelLoader.createContext(CLIKernelLoader.java:417)
        at 
org.apache.avalon.merlin.kernel.impl.CLIKernelLoader.<init>(CLIKernelLoader.java:128)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
        at Merlin.main(Merlin.java:250)

SO, I have some really serious classloading issues going on...

Steve, you asked about env. Linux RH9 + any late JDK from Sun.

My energy is rapidly disappearing...

Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
Also, first time I have dug into the source code before trying to get a some 
sample code to work. Big commitment !  ;o)

I'll now try to take a Phoenix block, modify and run it under Merlin instead. 
I need to get on with the evaluation.

Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Stephen McConnell <mc...@apache.org>.

Niclas Hedhman wrote:

>I notice that in the 
>./bin/lib/merlin-bootstrap-1.0.jar
>
>The ExceptionHelper class is without package !!!!
>
>That's why it is not found.
>

No it isn't! If you look at the output your getting the bootstrap 
ExceptionHelper is doing the formatting.  Keep in mind that the 
bootstrap loader builds the classloader that is used to create the 
kernel.  In your case you getting a NoClassDefFoundError which means 
that a class could not be loaded because a dependent class could not be 
found.  The dependent class that it is reporting just happens to the 
standard ExceptionHelper from the compositon package.  This means that 
the composition impl jar is not in the classloader that is being used to 
load the kernel loader.

Problem is that this appears to be specific to your environment.
What OS and Java version are you running?

Steve.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
I notice that in the 
./bin/lib/merlin-bootstrap-1.0.jar

The ExceptionHelper class is without package !!!!

That's why it is not found.


On Tuesday 09 September 2003 04:01, Stephen McConnell wrote:
> What happens when you invoke the following:
>
> $ merlin -info -debug rubbish

Same result.


[niclas@f2 merlin]$ bin/merlin.sh -info -debug rubbish
RUN CMD IS: /java/jdk/bin/java 
-Dmerlin.home=/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin 
-Djava.ext.dirs=/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin/ext 
-jar 
/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin/bin/lib/merlin-bootstrap-1.0.jar 
-info -debug rubbish
KERNEL-ERROR: Unexpected error during kernel context instantiation.

Internal error during kernel instantiation.
-------------------------------------------------------------------
Exception: java.lang.NoClassDefFoundError
Message: org/apache/avalon/composition/util/ExceptionHelper

---- stack trace --------------------------------------------------
java.lang.NoClassDefFoundError: 
org/apache/avalon/composition/util/ExceptionHelper
        at 
org.apache.avalon.merlin.kernel.impl.CLIKernelLoader.<init>(CLIKernelLoader.java:139)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
        at Merlin.main(Merlin.java:253)
-------------------------------------------------------------------


Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Stephen McConnell <mc...@apache.org>.

Niclas Hedhman wrote:

>Let's try without Cygwin...
>
>Same thing... JAVA_HOME with spaces and it belly-up. Brain dead environment!
>

 From memory the readme for the install recommends that the JDK should 
not be installed under something like "Program Files".  I have always 
installed the JDK under a path such F:\sys\jdk\1.4.2 after initial 
problems in this area (years ago).

Steve.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
Hi, again...

Windows!! Let's try the same exercise on my Windows XP, with and without 
Cygwin.

cvs -q update -dP

to get the latest/greatest. (Have checked it out previously...)

First disappointment... 
Under CYGWIN, Maven refuses to work, due to spaces in the JAVA_HOME settings, 
("Document And Settings" or "Program Files").


Let's try without Cygwin...

Same thing... JAVA_HOME with spaces and it belly-up. Brain dead environment!

Niclas



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Alexis Agahi <al...@users.sf.net>.
On Tuesday 09 September 2003 13:01, Niclas Hedhman wrote:
> On Tuesday 09 September 2003 18:10, Stephen McConnell wrote:
> > What happens if you use the binary download?
> > http://www.ibiblio.org/merlin/distributions/20030901/
> > Do you experience the same problem?
>
> Nope. Different one. bin/merlin.sh is somehow corrupt, and can't be read
> properly by sh... I'll figure that out...

just perform

dos2unix *sh
chmod +x *sh
and everything will be smooth

if you dont have dos2unix command on your unix, well you should get it 
somewhere.



> Hmmmm... Could there be a ascii/bin issue in the Maven downloads or CVS (-k
> option)??

the famous CRLT-LF / LF dos/unix text
dont worry this will be fixed one day


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Tuesday 09 September 2003 18:10, Stephen McConnell wrote:
> What happens if you use the binary download?
> http://www.ibiblio.org/merlin/distributions/20030901/
> Do you experience the same problem?

Nope. Different one. bin/merlin.sh is somehow corrupt, and can't be read 
properly by sh... I'll figure that out...

Hmmmm... Could there be a ascii/bin issue in the Maven downloads or CVS (-k 
option)??

I have to go out. I'll continue on this tomorrow.


Niclas


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Stephen McConnell <mc...@apache.org>.

Niclas Hedhman wrote:

>Not insanely obvious that I have no block.xml available for it.
>  
>

Here is the result of invoking merlin with an invalid path.
(latest version in CVS):

---- report -------------------------------------------------------

Exception: org.apache.avalon.merlin.kernel.KernelException
Message: Block install failure: file:/F:/dev/xxx

Cause: org.apache.avalon.composition.model.ModelException
Message: File not found: file:/F:/dev/xxx

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

Cheers, Steve.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Stephen McConnell <mc...@apache.org>.

Niclas Hedhman wrote:

>On Tuesday 09 September 2003 18:10, Stephen McConnell wrote:
>  
>
>>What happens if you use the binary download?
>>http://www.ibiblio.org/merlin/distributions/20030901/
>>Do you experience the same problem?
>>    
>>
>
>Forgot to say, after manipulating the merlin.sh, I got it running, and got a 
>"reasonable" error message saying 
>
>Internal error during kernel instantiation.
>

Ok - this is Merlin working properly.
For me this confirmes that your locally built jar file was/is corrupt.
Steve.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Tuesday 09 September 2003 18:10, Stephen McConnell wrote:
> What happens if you use the binary download?
> http://www.ibiblio.org/merlin/distributions/20030901/
> Do you experience the same problem?

Forgot to say, after manipulating the merlin.sh, I got it running, and got a 
"reasonable" error message saying 

Internal error during kernel instantiation.


---- report -------------------------------------------------------

Exception: org.apache.avalon.merlin.kernel.KernelException
Message: Block install failure: 
file:/home/niclas/dev/opensource/merlin-bin/merlin/bin/

Cause: org.apache.avalon.composition.model.ModelException
Message: Unsupported profile include: 
file:/home/niclas/dev/opensource/merlin-bin/merlin/bin/

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


Not insanely obvious that I have no block.xml available for it.


Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Stephen McConnell <mc...@apache.org>.
Nicolas:

I have just updaloded a new (verbose) version of the bootstrap loader to 
ibiblio.

http://www.ibiblio.org/maven/merlin/jars/
merlin-bootstrap-1.0.jar

Have also updated CVS.  If the -debug flag is declared you will get a 
dump of the classloader.  However, you email confirms that there is 
nothing wrong with the classloader content so I figure that this is not 
going to provide you with anything you don't already know.

More comments comming in a tick.

Steve.

Niclas Hedhman wrote:

>Don't know why this message didn't reach - or at least, didn't come back to 
>me... So resending
>  
>

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Stephen McConnell <mc...@apache.org>.

Niclas Hedhman wrote:

>Don't know why this message didn't reach - or at least, didn't come back to 
>me... So resending
>
>----------------------
>
>WARNING; Very long. Written as progress (or lack thereof) is made...
>
>Hi, 
>Now I have spent more time that I should on investigating this...
>
>Just prior to the ExceptionHelper.packException in the CLIKernelLoader class, 
>I have investigated the structure and URLs of the CLIKernelLoader's 
>classloader. It contains the proper JAR files.
>The merlin-kernel-impl-SNAPSHOT.jar (containing the CLIKernelLoader) and 
>avalon-composition-impl-SNAPSHOT.jar (containing ExceptionHelper) are both 
>part of the lowest level Classloader.
>
>The ExceptionHelper uses the 
>org.apache.excalibur.configuration.ConfigurationUtil, and it is also present 
>in the same classloader, in the excalibur-configuration-1.1-dev.jar.
>And I have to assume that excalibur-configuration doesn't depend on anything 
>further... does it?
>

ConfigurationUtil is dependent on the framework Configuration and 
DefaultConfiguration.

>
>The ExceptionHelper also uses the Avalon Framework configuration classes, and 
>they reside two levels up the classloader hierarchy, and should also not be a 
>problem.
>
>NOW, to investigate if it is the ExceptionHelper that can't be found or one of 
>the classes it uses (the JVM used to report the wrong class in chained 
>implicit class loading), I removed everything from the ExceptionHelper. Only 
>a compilable skeleton left.
>
>Guess what? (waiting for the compile to complete... zzzzzz.....zzzz... )
>

:-)

>
>I get the same problem!!! So it is the ExceptionHelper class itself that can't 
>be found... Hmmm, looks like JVM bug.
>

Is it just ExceptionHelper or is it anything in the 
avalon-composition-impl-SNAPSHOT.jar.  If you try to load the class 
org.apache.avalon.composition.util.StringHelper class - do you get a 
similar failure?  If yes - then it sounds like the jar file is corrupt.

What happens if you use the binary download?
http://www.ibiblio.org/merlin/distributions/20030901/
Do you experience the same problem?

>
><surprising-finding>
>At first I did;
>  File f = new File( urls[i].toString() );
>
>and the urls[i] contained the "file:/home/niclas....", which resulted in a 
>relative resolution of the File object, so 
>
>  f.getAbsolutePath()
>
>returned something like;
>/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin/file:/home/niclas/dev/opensource....
>
>I thought File was a bit more clever than that!
></surprising-finding>
>
>So I changed it to a 
>            URL[] urls = cl.getURLs();
>            for( int i=0 ; i < urls.length ; i++ )
>            {
>                java.net.URI uri = new java.net.URI( urls[i].toString() );
>                System.out.println( uri );
>                java.io.File f = new java.io.File( uri );
>                if( f.isFile() )
>                {
>                    java.util.jar.JarFile jf = new java.util.jar.JarFile( f );
>                    java.util.Enumeration list = jf.entries();
>                    while( list.hasMoreElements() )
>                    {
>                        java.util.zip.ZipEntry ze = (java.util.zip.ZipEntry) 
>list.nextElement();
>                        System.out.print( "  " );
>                        System.out.println( ze.getName() );
>                    }
>                }
>                else
>                    System.out.println( "File   can't be found:" + 
>f.getAbsolutePath() );
>            }
>
>ALL classes are retrieved and listed as expected....
>
>Now, IS IT related to the "file:/" relative resolution???
>

I doubt it.  The URLs are created using file.toURL().
The resulting urls are passed to the URLClassLoader.
I.e. nothing special going on.

>Let's try to modify to "file:///", see what happens...
>Same problem, the "file:///" is converted in the File class to a "file:/" 
>format.
>Well...
>I am getting exhausted on how to attack this.,,.
>I must be in the completely wrong track...
>
>NEW JVM. Downloaded 1.4.2!
>Same result.
>
>SECURITY;
>I should get a security exception, right... And the testcode above in the 
>CLIKernelLoader would fail as well.
>  
>

Probably not - unless you have a security policy file in place. 
JVM default is running with all permission.

>
>I am giving up for now...
>So what are the findings;
>
>1. If I do cl.getResourceAsStream( 
>"org/apache/avalon/..../ExceptionHelper.class" ), a null object is returned.
>

But the real interesting thing is what happens if you try to load 
StringHelper from the same package.

>2. The JAR files are in the correct classloaders. The classes are present in 
>the proper jars, and with the code snippet above the JarEntry-s can be read.
>The classes involved in the problem is in the bottom classloader as expected.
>
>3. It is not a problem related to classes implicitly linked in the 
>ExceptionHelper, as I have tried by removing all external classes from it, 
>and didn't change a thing.
>
>4. Steve says there are no probs on Windows, so we should be looking at minute 
>differences between the platforms of handling File.
>  
>

Don't think so. 
Others are running on RH without problem.

>5. File f = new File( "file:/home/niclas..../xxx.jar" );
>    f.getAbsolutePath();
>resolves to relatively user.dir. Is this handled properly in URLClassLoader. 
>YES, otherwise nothing would work, would it...
>  
>

It cannot be this - if true, the sky would fall on our heads.

>6. URI uri = new URI( "file:/home/niclas..../xxx.jar" );
>    JarFile jf = new JarFile( uri );
>is handled correctly and I can extract all the classes from the jar files.
>
>7. The same result in JDK1.3.1, JDK1.4.0, JDK1.4.1, JDK1.4.2.
>
>8. Maven merlin-dist is very slow, and I would have been a lot further knowing 
>the -o and properties settings to turn off online mode. The exercise at least 
>made me frustrated enough to ask about it.
>
>9. This is all about an Error message, and I feel stupid to try to solve it, 
>but I am just worried it will show up later, deeper, and harder to track.
>  
>

Umm, this is much more than an error message.  The class that is being 
reported on just happens to be the ExceptionHelper class.  What is 
probably is that it is an issue with a specific jar file.  We can 
confirm that by replacing jars in you build with jars built by someone 
else.  That at least tells us if this is a general problem or a problem 
specific to your machine.

>
>For now, is everyone running Windows??
>  
>

No. 
Windows, and Linus are both validated.

Steve.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
Don't know why this message didn't reach - or at least, didn't come back to 
me... So resending

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

WARNING; Very long. Written as progress (or lack thereof) is made...

Hi, 
Now I have spent more time that I should on investigating this...

Just prior to the ExceptionHelper.packException in the CLIKernelLoader class, 
I have investigated the structure and URLs of the CLIKernelLoader's 
classloader. It contains the proper JAR files.
The merlin-kernel-impl-SNAPSHOT.jar (containing the CLIKernelLoader) and 
avalon-composition-impl-SNAPSHOT.jar (containing ExceptionHelper) are both 
part of the lowest level Classloader.

The ExceptionHelper uses the 
org.apache.excalibur.configuration.ConfigurationUtil, and it is also present 
in the same classloader, in the excalibur-configuration-1.1-dev.jar.
And I have to assume that excalibur-configuration doesn't depend on anything 
further... does it?

The ExceptionHelper also uses the Avalon Framework configuration classes, and 
they reside two levels up the classloader hierarchy, and should also not be a 
problem.

NOW, to investigate if it is the ExceptionHelper that can't be found or one of 
the classes it uses (the JVM used to report the wrong class in chained 
implicit class loading), I removed everything from the ExceptionHelper. Only 
a compilable skeleton left.

Guess what? (waiting for the compile to complete... zzzzzz.....zzzz... )

I get the same problem!!! So it is the ExceptionHelper class itself that can't 
be found... Hmmm, looks like JVM bug.

<surprising-finding>
At first I did;
  File f = new File( urls[i].toString() );

and the urls[i] contained the "file:/home/niclas....", which resulted in a 
relative resolution of the File object, so 

  f.getAbsolutePath()

returned something like;
/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin/file:/home/niclas/dev/opensource....

I thought File was a bit more clever than that!
</surprising-finding>

So I changed it to a 
            URL[] urls = cl.getURLs();
            for( int i=0 ; i < urls.length ; i++ )
            {
                java.net.URI uri = new java.net.URI( urls[i].toString() );
                System.out.println( uri );
                java.io.File f = new java.io.File( uri );
                if( f.isFile() )
                {
                    java.util.jar.JarFile jf = new java.util.jar.JarFile( f );
                    java.util.Enumeration list = jf.entries();
                    while( list.hasMoreElements() )
                    {
                        java.util.zip.ZipEntry ze = (java.util.zip.ZipEntry) 
list.nextElement();
                        System.out.print( "  " );
                        System.out.println( ze.getName() );
                    }
                }
                else
                    System.out.println( "File   can't be found:" + 
f.getAbsolutePath() );
            }

ALL classes are retrieved and listed as expected....

Now, IS IT related to the "file:/" relative resolution???
Let's try to modify to "file:///", see what happens...
Same problem, the "file:///" is converted in the File class to a "file:/" 
format.
Well...
I am getting exhausted on how to attack this.,,.
I must be in the completely wrong track...

NEW JVM. Downloaded 1.4.2!
Same result.

SECURITY;
I should get a security exception, right... And the testcode above in the 
CLIKernelLoader would fail as well.


I am giving up for now...
So what are the findings;

1. If I do cl.getResourceAsStream( 
"org/apache/avalon/..../ExceptionHelper.class" ), a null object is returned.

2. The JAR files are in the correct classloaders. The classes are present in 
the proper jars, and with the code snippet above the JarEntry-s can be read.
The classes involved in the problem is in the bottom classloader as expected.

3. It is not a problem related to classes implicitly linked in the 
ExceptionHelper, as I have tried by removing all external classes from it, 
and didn't change a thing.

4. Steve says there are no probs on Windows, so we should be looking at minute 
differences between the platforms of handling File.

5. File f = new File( "file:/home/niclas..../xxx.jar" );
    f.getAbsolutePath();
resolves to relatively user.dir. Is this handled properly in URLClassLoader. 
YES, otherwise nothing would work, would it...

6. URI uri = new URI( "file:/home/niclas..../xxx.jar" );
    JarFile jf = new JarFile( uri );
is handled correctly and I can extract all the classes from the jar files.

7. The same result in JDK1.3.1, JDK1.4.0, JDK1.4.1, JDK1.4.2.

8. Maven merlin-dist is very slow, and I would have been a lot further knowing 
the -o and properties settings to turn off online mode. The exercise at least 
made me frustrated enough to ask about it.

9. This is all about an Error message, and I feel stupid to try to solve it, 
but I am just worried it will show up later, deeper, and harder to track.


For now, is everyone running Windows??

Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
WARNING; Very long. Written as progress (or lack thereof) is made...

Hi, 
Now I have spent more time that I should on investigating this...

Just prior to the ExceptionHelper.packException in the CLIKernelLoader class, 
I have investigated the structure and URLs of the CLIKernelLoader's 
classloader. It contains the proper JAR files.
The merlin-kernel-impl-SNAPSHOT.jar (containing the CLIKernelLoader) and 
avalon-composition-impl-SNAPSHOT.jar (containing ExceptionHelper) are both 
part of the lowest level Classloader.

The ExceptionHelper uses the 
org.apache.excalibur.configuration.ConfigurationUtil, and it is also present 
in the same classloader, in the excalibur-configuration-1.1-dev.jar.
And I have to assume that excalibur-configuration doesn't depend on anything 
further... does it?

The ExceptionHelper also uses the Avalon Framework configuration classes, and 
they reside two levels up the classloader hierarchy, and should also not be a 
problem.

NOW, to investigate if it is the ExceptionHelper that can't be found or one of 
the classes it uses (the JVM used to report the wrong class in chained 
implicit class loading), I removed everything from the ExceptionHelper. Only 
a compilable skeleton left.

Guess what? (waiting for the compile to complete... zzzzzz.....zzzz... )

I get the same problem!!! So it is the ExceptionHelper class itself that can't 
be found... Hmmm, looks like JVM bug.

<surprising-finding>
At first I did;
  File f = new File( urls[i].toString() );

and the urls[i] contained the "file:/home/niclas....", which resulted in a 
relative resolution of the File object, so 

  f.getAbsolutePath()

returned something like;
/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin/file:/home/niclas/dev/opensource....

I thought File was a bit more clever than that!
</surprising-finding>

So I changed it to a 
            URL[] urls = cl.getURLs();
            for( int i=0 ; i < urls.length ; i++ )
            {
                java.net.URI uri = new java.net.URI( urls[i].toString() );
                System.out.println( uri );
                java.io.File f = new java.io.File( uri );
                if( f.isFile() )
                {
                    java.util.jar.JarFile jf = new java.util.jar.JarFile( f );
                    java.util.Enumeration list = jf.entries();
                    while( list.hasMoreElements() )
                    {
                        java.util.zip.ZipEntry ze = (java.util.zip.ZipEntry) 
list.nextElement();
                        System.out.print( "  " );
                        System.out.println( ze.getName() );
                    }
                }
                else
                    System.out.println( "File   can't be found:" + 
f.getAbsolutePath() );
            }

ALL classes are retrieved and listed as expected....

Now, IS IT related to the "file:/" relative resolution???
Let's try to modify to "file:///", see what happens...
Same problem, the "file:///" is converted in the File class to a "file:/" 
format.
Well...
I am getting exhausted on how to attack this.,,.
I must be in the completely wrong track...

NEW JVM. Downloaded 1.4.2!
Same result.

SECURITY;
I should get a security exception, right... And the testcode above in the 
CLIKernelLoader would fail as well.


I am giving up for now...
So what are the findings;

1. If I do cl.getResourceAsStream( 
"org/apache/avalon/..../ExceptionHelper.class" ), a null object is returned.

2. The JAR files are in the correct classloaders. The classes are present in 
the proper jars, and with the code snippet above the JarEntry-s can be read.
The classes involved in the problem is in the bottom classloader as expected.

3. It is not a problem related to classes implicitly linked in the 
ExceptionHelper, as I have tried by removing all external classes from it, 
and didn't change a thing.

4. Steve says there are no probs on Windows, so we should be looking at minute 
differences between the platforms of handling File.

5. File f = new File( "file:/home/niclas..../xxx.jar" );
    f.getAbsolutePath();
resolves to relatively user.dir. Is this handled properly in URLClassLoader. 
YES, otherwise nothing would work, would it...

6. URI uri = new URI( "file:/home/niclas..../xxx.jar" );
    JarFile jf = new JarFile( uri );
is handled correctly and I can extract all the classes from the jar files.

7. The same result in JDK1.3.1, JDK1.4.0, JDK1.4.1, JDK1.4.2.

8. Maven merlin-dist is very slow, and I would have been a lot further knowing 
the -o and properties settings to turn off online mode. The exercise at least 
made me frustrated enough to ask about it.

9. This is all about an Error message, and I feel stupid to try to solve it, 
but I am just worried it will show up later, deeper, and harder to track.


For now, is everyone running Windows??

Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Stephen McConnell <mc...@apache.org>.

Stephen McConnell wrote:

> What happens when you invoke the following:
>
> $ merlin -info -debug rubbish


Just for reference I've attached the log output from this command when 
invoked under NT4.
Steve.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org



Re: First Merlin build

Posted by Stephen McConnell <mc...@apache.org>.

Niclas Hedhman wrote:

>>I don't think merlin.sh takes the run
>>argument as a parameter.  There was some recent updating of the *.sh
>>scripts.  The run functionality is under merlin-server.sh whereas
>>merlin.sh is simple command line deployment.  Thing that I'm confused
>>about is that you should be getting an illegal cli option error message.
>>    
>>
>
>Correct. It probably delegates the Exception (parameter not supported) to the 
>ExceptionHelper which can not be loaded. 
>

A copy of ExceptionHelper is included in the bootstrap jar file to handle this issue.  The real issue is that in your environment the classloaders are not being established correctly.  What OS and JVM version are you running?


>I figured that much out so far.
>Sounds like avalon-composition is in a child or sibling classloader of the CLI 
>invoker (or whatever your nomenclatura is).
>

Looking into this a little more - I've provided some missleading info in 
my earlier email. When invoking "merlin run" the "run" isn't considered 
as a paramter (its not -run) but instead its considered as an argument. 
The "run" parameter is equivalent to a location of a block.xml file 
which logically does not exist (i.e. its simplar to invoking "merlin 
target\classes".  However, what's odd here is the fact that your not 
getting the exception report.

Under Windows NT4-SP6 I get:

$ merlin run

Internal error during kernel instantiation.

---- report -------------------------------------------------------

Exception: org.apache.avalon.merlin.kernel.KernelException
Message: Block install failure: file:/[your-dir]/run

Cause: org.apache.avalon.composition.model.ModelException
Message: Unsupported profile include: file:/[your-dir]/run

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

What happens when you invoke the following:

$ merlin -info -debug rubbish

Steve.

>
>
>
>>Could you do me a favour and confirm that the CVS checkout is up-to-date.
>>    
>>
>
>Dead sure. I don't think it is Linux related. I think it is just a matter of 
>"wrong argument = Nasty internal error message".
>
>Niclas
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
>For additional commands, e-mail: dev-help@avalon.apache.org
>
>
>  
>

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Monday 08 September 2003 22:07, Stephen McConnell wrote:
> Niclas Hedhman wrote:
> Umm, looks strange.
> How recent is you checkout?  

At the time, <5min.

> I don't think merlin.sh takes the run
> argument as a parameter.  There was some recent updating of the *.sh
> scripts.  The run functionality is under merlin-server.sh whereas
> merlin.sh is simple command line deployment.  Thing that I'm confused
> about is that you should be getting an illegal cli option error message.

Correct. It probably delegates the Exception (parameter not supported) to the 
ExceptionHelper which can not be loaded. I figured that much out so far.
Sounds like avalon-composition is in a child or sibling classloader of the CLI 
invoker (or whatever your nomenclatura is).


> Could you do me a favour and confirm that the CVS checkout is up-to-date.

Dead sure. I don't think it is Linux related. I think it is just a matter of 
"wrong argument = Nasty internal error message".

Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Stephen McConnell <mc...@apache.org>.

Niclas Hedhman wrote:

>Being "stupid" enough to always use CVS checkouts for evaluations... hmmm?
>  
>

:-)

>I just did;
>
>cd dev/opensource/avalon-sandbox/merlin
>cvs -q update -dP
>maven merlin-dist
>cd target/merlin
>export MERLIN_HOME=`pwd`
>bin/merlin.sh run
>
>And I got the following result;
>
>[niclas@f2 merlin]$ bin/merlin.sh run
>RUN CMD IS: /java/jdk/bin/java 
>-Dmerlin.home=/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin 
>-Djava.ext.dirs=/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin/ext 
>-jar 
>/home/niclas/dev/opensource/avalon-sandbox/merlin/target/merlin/bin/lib/merlin-bootstrap-1.0.jar 
>run
>KERNEL-ERROR: Unexpected error during kernel context instantiation.
>
>Internal error during kernel instantiation.
>-------------------------------------------------------------------
>Exception: java.lang.NoClassDefFoundError
>Message: org/apache/avalon/composition/util/ExceptionHelper
>

Umm, looks strange.
How recent is you checkout?  I don't think merlin.sh takes the run 
argument as a parameter.  There was some recent updating of the *.sh 
scripts.  The run functionality is under merlin-server.sh whereas 
merlin.sh is simple command line deployment.  Thing that I'm confused 
about is that you should be getting an illegal cli option error message.

>
>---- stack trace --------------------------------------------------
>java.lang.NoClassDefFoundError: 
>org/apache/avalon/composition/util/ExceptionHelper
>  
>

<snip>

>I was a little bit curious so I did;
>
>[niclas@f2 merlin]$ for FILE in `find . -name "*.jar"` ; do echo $FILE ; jar 
>tf $FILE | grep ExceptionHelper ; done
>
>Yielding the result;
>  
>
<snip>

>Showing the ExceptionHelper class in 
>./repository/avalon-composition/jars/avalon-composition-impl-SNAPSHOT.jar
>But not reachable...
>

The merlin-bootstrap-1.0.jar jar handles the bootstrapping of 
classloaders - one of the classloaders holds the ExceptionHelper class 
(you can see details of the jar files that are loaded by looking in the 
bootstrap har file merlin.properties resource.

>Work in-progress??
>  
>

Nah  - I know its working on that "other" os because Alexis was playing 
with a fresh CVS version earlier today.
Could you do me a favour and confirm that the CVS checkout is up-to-date.

Steve.


>
>Niclas
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
>For additional commands, e-mail: dev-help@avalon.apache.org
>
>
>  
>

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Alexis Agahi <al...@users.sf.net>.
On Wednesday 10 September 2003 12:11, Niclas Hedhman wrote:
> On Wednesday 10 September 2003 18:01, Niclas Hedhman wrote:
> > I don't think the CarriageReturns makes a difference, BUT the
> > Specification-Title is spread of multiple lines, which is NOT GOOD.
> >
> > How it ends up like this, I don't know..... yet..
>
> Is it Maven that automatically creating the Manifest??
>
> And is it trying to fulfill the requirement by the Manifest spec, not to
> exceed certain line lengths, and in such case the value is placed on
> following lines with initial spaces?
>
> And could it be simply that on Windows the "LF" are ignored and only using
> "CR"? How come "jar" doesn't use the java.util.jar classes??

I don't have ^M in my avalon-composition-impl-SNAPSHOT.jar manifest (build 
from merlin cvs using maven). 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Thursday 11 September 2003 03:07, Stephen McConnell wrote:
> I appreciate it!  A couple of things are still open questions for me.
> I'm presuming that the "currupt" jar situation is repeatable - i.e. if
> you rebuild you get the same problem.  Is that correct?  The other
> question is if this is linked to a corrupted CVS checkout.  If you do a
> seperate checkout (maybe on a different device), does the problem persist?

See separate mail about "something" detects that it is illegal, but doesn't 
stop.

But if the manifest is generated by Maven, then there is nothing that can be 
corrupt in the checkout.

I can't manage (I didn't try too hard) to get Maven to work on my Windows 
laptop. 

I just did a complete fresh checkout of avalon-sandbox, and the problem 
persists. Somehow, I think it is related to the platform properties, and 
Maven isn't strict in its generation of the file.

It will probably work if I shorten the title in the project.xml (will check 
that shortly)...

Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Stephen McConnell <mc...@apache.org>.

Niclas Hedhman wrote:

>On Wednesday 10 September 2003 18:01, Niclas Hedhman wrote:
>  
>
>>I don't think the CarriageReturns makes a difference, BUT the
>>Specification-Title is spread of multiple lines, which is NOT GOOD.
>>
>>How it ends up like this, I don't know..... yet..
>>    
>>
>
>Is it Maven that automatically creating the Manifest??
>

Yes.

>
>And is it trying to fulfill the requirement by the Manifest spec, not to 
>exceed certain line lengths, and in such case the value is placed on 
>following lines with initial spaces?
>

That's part of the manifest spec.  The next line is indented - 
representing a continuation of the prev. line.

>
>And could it be simply that on Windows the "LF" are ignored and only using 
>"CR"? How come "jar" doesn't use the java.util.jar classes??
>
>Steve, I can't figure out how to fix this, but I hope you appreciate me 
>getting to the bottom with it.
>

I appreciate it!  A couple of things are still open questions for me. 
I'm presuming that the "currupt" jar situation is repeatable - i.e. if 
you rebuild you get the same problem.  Is that correct?  The other 
question is if this is linked to a corrupted CVS checkout.  If you do a 
seperate checkout (maybe on a different device), does the problem persist?

Stephen.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Wednesday 10 September 2003 18:01, Niclas Hedhman wrote:
> I don't think the CarriageReturns makes a difference, BUT the
> Specification-Title is spread of multiple lines, which is NOT GOOD.
>
> How it ends up like this, I don't know..... yet..

Is it Maven that automatically creating the Manifest??

And is it trying to fulfill the requirement by the Manifest spec, not to 
exceed certain line lengths, and in such case the value is placed on 
following lines with initial spaces?

And could it be simply that on Windows the "LF" are ignored and only using 
"CR"? How come "jar" doesn't use the java.util.jar classes??

Steve, I can't figure out how to fix this, but I hope you appreciate me 
getting to the bottom with it.


Cheers
Niclas



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Wednesday 10 September 2003 17:27, Niclas Hedhman wrote:
> Hi, again...
>
> Continuing the story....
>
> Since I want to get to the bottom of this, I added to retrieve all the
> JarEntries and count how many bytes they are.

> AND FURTHERMORE, extracting, deleting and jarring it from commandline, it
> STILL gives Invalid Headers!!!!
>
>
> What is going on???


I HAVE FOUND IT!!!!!!!!!!!!!!!!!!!!!!!!!!!!


MANIFEST.MF looks like this when I open in "vi".

Manifest-Version: 1.0^M
Ant-Version: Apache Ant 1.5.3 ^M
Created-By: Apache Jakarta Maven^M
Built-By: niclas^M
Package: org.apache.avalon.composition^M
Build-Jdk: 1.4.1_02^M
Extension-Name: avalon-composition-impl^M
Specification-Version: 1.0^M
Specification-Vendor: Apache Software Foundation^M
Specification-Title:
An API supporting component composition.
  ^M
Implementation-Version: 1.0^M
Implementation-Vendor: Apache Software Foundation^M
Implementation-Vendor-Id: ASF^M
^M


I don't think the CarriageReturns makes a difference, BUT the 
Specification-Title is spread of multiple lines, which is NOT GOOD.

How it ends up like this, I don't know..... yet..


Niclas


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Alexis Agahi <al...@users.sf.net>.
On Wednesday 10 September 2003 11:27, Niclas Hedhman wrote:
> Hi, again...
>
> Continuing the story....
>
> Since I want to get to the bottom of this, I added to retrieve all the
> JarEntries and count how many bytes they are.

> See attachment for output.
>
> Most interesting is that the  avalon-composition-impl-SNAPSHOT.jar entries
> (all of them) has invalid headers.
> BUT, using /java/jdk/bin/jar, there are no problems extracting the
> content!!!!! Neither with "ark" (zipper in KDE)...
>
> AND FURTHERMORE, extracting, deleting and jarring it from commandline, it
> STILL gives Invalid Headers!!!!

jdk version?

check
http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html
check the jar INDEX.LIST ?

Maybe using jar -i could help?

> What is going on???

This is not the first time get such prob, I've seen such error many time on 
IBM JDK 1.3.x but I don't remember the solution...

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: First Merlin build

Posted by Niclas Hedhman <ni...@hedhman.org>.
Hi, again...

Continuing the story....

Since I want to get to the bottom of this, I added to retrieve all the 
JarEntries and count how many bytes they are.

URLClassLoader cl = (URLClassLoader) getClass().getClassLoader();
URL[] urls = cl.getURLs();
for( int i=0 ; i < urls.length ; i++ )
{
    java.net.URI uri = new java.net.URI( urls[i].toExternalForm() );
    System.out.println( uri );
    java.io.File f = new java.io.File( uri );
    if( f.isFile() )
    {
        java.util.jar.JarFile jf = new java.util.jar.JarFile( f );
        java.util.Enumeration list = jf.entries();
        while( list.hasMoreElements() )
        {
            java.util.zip.ZipEntry ze = (java.util.zip.ZipEntry) 
list.nextElement();
            System.out.print( "  " );
            System.out.print( ze.getName() );
            System.out.print( " : " );
            try
            {
                if( ! ze.isDirectory() )
                {
                    java.io.InputStream in = jf.getInputStream( ze );
                    int ch = 0;
                    int count = -1;
                    do
                    {
                        ch = in.read();
                        count++;
                    } while( ch >= 0 );
                    System.out.println( count );
                }
                else
                    System.out.println();
            } catch( java.io.IOException ioexception )
            {
                System.out.println();
                ioexception.printStackTrace( System.out );
            }
        }
    }
    else
        System.out.println( "File   can't be found:" + f.getAbsolutePath() );
}
            
See attachment for output.

Most interesting is that the  avalon-composition-impl-SNAPSHOT.jar entries 
(all of them) has invalid headers.
BUT, using /java/jdk/bin/jar, there are no problems extracting the 
content!!!!! Neither with "ark" (zipper in KDE)...

AND FURTHERMORE, extracting, deleting and jarring it from commandline, it 
STILL gives Invalid Headers!!!!


What is going on???


Niclas