Return-Path: Delivered-To: apmail-archiva-dev-archive@www.apache.org Received: (qmail 91389 invoked from network); 30 Nov 2009 14:27:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 30 Nov 2009 14:27:40 -0000 Received: (qmail 52524 invoked by uid 500); 30 Nov 2009 14:27:40 -0000 Delivered-To: apmail-archiva-dev-archive@archiva.apache.org Received: (qmail 52437 invoked by uid 500); 30 Nov 2009 14:27:40 -0000 Mailing-List: contact dev-help@archiva.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@archiva.apache.org Delivered-To: mailing list dev@archiva.apache.org Received: (qmail 52427 invoked by uid 99); 30 Nov 2009 14:27:39 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Nov 2009 14:27:39 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [209.85.222.198] (HELO mail-pz0-f198.google.com) (209.85.222.198) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Nov 2009 14:27:30 +0000 Received: by pzk36 with SMTP id 36so2538725pzk.5 for ; Mon, 30 Nov 2009 06:27:08 -0800 (PST) Received: by 10.115.86.3 with SMTP id o3mr7701816wal.206.1259591228423; Mon, 30 Nov 2009 06:27:08 -0800 (PST) Received: from ?10.0.0.10? (CPE-58-166-68-133.lnse5.cht.bigpond.net.au [58.166.68.133]) by mx.google.com with ESMTPS id 23sm3026175pzk.4.2009.11.30.06.27.06 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 30 Nov 2009 06:27:07 -0800 (PST) From: Brett Porter Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Subject: explanation for ClassNotFoundException : RepositoryMetadataBuilder (and others) Date: Tue, 1 Dec 2009 01:27:02 +1100 Message-Id: <4CA1D2F0-AC24-4AA0-90DB-BCCC5A6F6A91@porterclan.net> To: dev@archiva.apache.org Mime-Version: 1.0 (Apple Message framework v1077) X-Mailer: Apple Mail (2.1077) X-Virus-Checked: Checked by ClamAV on apache.org Hi, We've come across this error multiple times before, and I hit it again = this evening and wanted to document what was going on in case it became = an issue again in the future. It looks something like this: jvm 1 | Caused by: java.lang.IllegalArgumentException: Cannot find = class = [org.apache.maven.artifact.repository.metadata.RepositoryMetadataBuilder] jvm 1 | at = org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:233) jvm 1 | at = org.springframework.beans.propertyeditors.ClassEditor.setAsText(ClassEdito= r.java:63) jvm 1 | at = org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeCon= verterDelegate.java:382) jvm 1 | at = org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConvert= erDelegate.java:358) jvm 1 | at = org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeCon= verterDelegate.java:173) jvm 1 | at = org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeCon= verterDelegate.java:138) jvm 1 | at = org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperIm= pl.java:386) jvm 1 | ... 89 more jvm 1 | Caused by: java.lang.ClassNotFoundException: = org.apache.maven.artifact.repository.metadata.RepositoryMetadataBuilder jvm 1 | at = java.net.URLClassLoader$1.run(URLClassLoader.java:200) jvm 1 | at java.security.AccessController.doPrivileged(Native = Method) jvm 1 | at = java.net.URLClassLoader.findClass(URLClassLoader.java:188) jvm 1 |=20 jvm 1 | at java.lang.ClassLoader.loadClass(ClassLoader.java:319) jvm 1 | at java.lang.ClassLoader.loadClass(ClassLoader.java:254) jvm 1 | at = org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.jav= a:401) jvm 1 | at = org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.jav= a:363) jvm 1 | at = org.springframework.util.ClassUtils.forName(ClassUtils.java:211) jvm 1 | at = org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:230) jvm 1 | ... 95 more The reason this is occurring is because we are leaving some components = that are declared in a bundled components.xml out of the distribution. = Normally, they wouldn't be needed, but it seems that in certain = circumstances Spring decides to load some classes that otherwise = wouldn't be loaded. So far, I've only seen this occur when an error = appears somewhere else first - perhaps in trying to resolve the error it = keeps searching. The case above is because of differing versions of the = Maven library dependencies. If we align those versions, other errors = will then pop up for classes in plexus-container-default (eg = ComponentConfigurator) which is also in some component definitions but = not bundled. We could make them go away by shipping the latest Maven and including = the corresponding plexus-container-default. However, since they only = seem to be appearing when something else goes wrong, I don't think it's = worth making the change immediately. Just wanted to document this for others that might see it again in the = future :) Cheers, Brett=