|
|
|
|
|
|
|
Re: sample spring mvc app not working in virgo [message #820229 is a reply to message #820158] |
Tue, 13 March 2012 21:59 |
Filipe Dias Messages: 2 Registered: March 2012 |
Junior Member |
|
|
Thanks, must have forgotten to switch that thing on.. But that got me up and running to the next exception..
Now during loading of the following class org.apache.commons.logging.impl.SLF4JLogFactory (I guess):
....
[2012-03-13 22:14:26.988] DEBUG Thread-37 org.eclipse.virgo.kernel.serviceability.Assert < public static transient void org.eclipse.virgo.kernel.serviceability.Assert.isNull(java.lang.Object, java.lang.String, java.lang.Object[])
[2012-03-13 22:14:27.005] DEBUG Thread-37 o.a.c.c.C.[Catalina].[localhost].[/com.irisnext-7.3.44] Sending application start events
[2012-03-13 22:14:27.008] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.support.EquinoxBundleFileResolver Resolved bundle 'com.irisnext-7.3.44' to file '/Users/dias/Software/virgo-tomcat-server-3.0.2.RELEASE/work/org.eclipse.virgo.kernel.deployer_3.0.2.RELEASE/staging/global/bundle/com.irisnext-7.3.44/0.0.0/com.irisnext-7.3.44.war'
[2012-03-13 22:14:27.008] INFO Thread-37 o.a.c.c.C.[Catalina].[localhost].[/com.irisnext-7.3.44] Set web app root system property: 'webapp.root' = [/Users/dias/Software/virgo-tomcat-server-3.0.2.RELEASE/work/org.eclipse.virgo.kernel.deployer_3.0.2.RELEASE/staging/global/bundle/com.irisnext-7.3.44/0.0.0/com.irisnext-7.3.44.war/]
[2012-03-13 22:14:27.012] DEBUG Thread-37 org.eclipse.virgo.kernel.serviceability.Assert > public static transient void org.eclipse.virgo.kernel.serviceability.Assert.notNull(java.lang.Object, java.lang.String, java.lang.Object[])
[2012-03-13 22:14:27.012] DEBUG Thread-37 org.eclipse.virgo.kernel.serviceability.Assert < public static transient void org.eclipse.virgo.kernel.serviceability.Assert.notNull(java.lang.Object, java.lang.String, java.lang.Object[])
[2012-03-13 22:14:27.019] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader getResources(commons-logging.properties)
[2012-03-13 22:14:27.030] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader getResource(META-INF/services/org.apache.commons.logging.LogFactory)
[2012-03-13 22:14:27.038] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader loadClass(org.apache.commons.logging.impl.SLF4JLogFactory, false)
[2012-03-13 22:14:27.038] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader Searching the application's bundle
[2012-03-13 22:14:27.039] DEBUG Thread-37 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader Loading class from the delegating classloader
[2012-03-13 22:14:27.046] DEBUG Thread-37 org.eclipse.virgo.kernel.serviceability.Assert > public static transient void org.eclipse.virgo.kernel.serviceability.Assert.notNull(java.lang.Object, java.lang.String, java.lang.Object[])
That goes on for a while... and 36 milliseconds later...
[2012-03-13 22:14:27.082] DEBUG Thread-37 org.eclipse.virgo.kernel.serviceability.Assert < public static transient void org.eclipse.virgo.kernel.serviceability.Assert.isNull(java.lang.Object, java.lang.String, java.lang.Object[])
org.eclipse.virgo.kernel.serviceability.Assert$FatalAssertionException: input packageImports must not contain duplicate items
at org.eclipse.virgo.kernel.serviceability.Assert.isNull(Assert.java:103)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.AbstractTrackedPackageImports.convertImportedPackageListToMap(AbstractTrackedPackageImports.java:323)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.BundleTrackedPackageImports.getInitialImportedPackages(BundleTrackedPackageImports.java:58)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.BundleTrackedPackageImports.<init>(BundleTrackedPackageImports.java:43)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.StandardTrackedPackageImportsFactory.create(StandardTrackedPackageImportsFactory.java:37)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.ImportExpansionHandler.mergeImports(ImportExpansionHandler.java:160)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.ImportExpansionHandler.mergePromotedImports(ImportExpansionHandler.java:151)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.ImportExpansionHandler.mergePromotedImports(ImportExpansionHandler.java:144)
at org.eclipse.virgo.kernel.userregion.internal.importexpansion.ImportExpansionHandler.expandImports(ImportExpansionHandler.java:121)
at org.eclipse.virgo.kernel.userregion.internal.equinox.TransformedManifestProvidingBundleFileWrapper$TransformedManifestProvidingBundleFile.getEntry(TransformedManifestProvidingBundleFileWrapper.java:160)
at org.eclipse.osgi.baseadaptor.bundlefile.BundleFileWrapperChain.getEntry(BundleFileWrapperChain.java:43)
at org.eclipse.core.runtime.internal.adaptor.ClasspathManifest.getManifest(ClasspathManifest.java:49)
at org.eclipse.core.runtime.internal.adaptor.EclipseClassLoadingHook.processClass(EclipseClassLoadingHook.java:88)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:596)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at org.eclipse.virgo.kernel.userregion.internal.equinox.KernelBundleClassLoader.loadClass(KernelBundleClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
at org.springframework.util.PropertyPlaceholderHelper.<clinit>(PropertyPlaceholderHelper.java:40)
at org.springframework.util.SystemPropertyUtils.<clinit>(SystemPropertyUtils.java:49)
at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:129)
at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
input packageImports must not contain duplicate items
I checked the virgo code and unfortunately there seems to be no option to deactivate these assertions... So one of my dependencies is having an erroneous manifest file...
Guess I will have to go throught the slf4j dependencies where it stucks. Maybe I could simply strip OSGI headers from their manifest?
[Updated on: Tue, 13 March 2012 22:01] Report message to a moderator
|
|
|
Re: sample spring mvc app not working in virgo [message #902110 is a reply to message #820229] |
Wed, 15 August 2012 21:52 |
Alex Antonov Messages: 1 Registered: August 2012 |
Junior Member |
|
|
It actually seems like there is a bug in the AbstractTrackedPackageImports.java:convertImportedPackageListToMap() method.
protected static Map<String, ImportedPackage> convertImportedPackageListToMap(List<ImportedPackage> importedPackages) {
Map<String, ImportedPackage> initialPackageImports = new HashMap<String, ImportedPackage>();
for (ImportedPackage importedPackage : importedPackages) {
Assert.isNull(initialPackageImports.put(importedPackage.getPackageName(), importedPackage),
"input packageImports must not contain duplicate items");
}
return initialPackageImports;
}
The way it is coded above, the exception will always be thown if the importedPackages list argument is not empty.
Since the initialPackageImports variable is being initialized to an empty HashMap, the subsequent 'put' operation will always return 'null' upon insertion because the map is empty and there is no previous key!
It seems like the check should be the other way around, if we indeed check for duplicates. If the returned value from 'put' is "NOT NULL", then we know there was already a package under that name imported.
|
|
|
Powered by
FUDForum. Page generated in 0.03651 seconds