[windup-dev] Furnace not finding Windup FileService

Lincoln Baxter, III lincoln at redhat.com
Mon Mar 23 10:23:09 EDT 2015


Hey Ian, 

(Adding windup-dev.) 

I'm not really sure what this issue could be, but it worries me that you needed to add a method to FurnaceService. What did you add? You can't ask Furnace for an instance of a type that is not a Service. (It wouldn't know how to construct it.) 

The last error you received worries me specifically because it makes me think that there is something funky going on with the ClassLoader hierarchy itself, and that is never good; however, it could be due to some kind of quirk with what you added (it also may be a bug), so I think I need to see what you are doing. 

Could you show me where this code is so that I can take a look? 

Thanks! 
~Lincoln 

----- Original Message -----

From: "Ian Tewksbury" <itewk at redhat.com> 
To: "Lincoln Baxter" <lbaxter at redhat.com> 
Cc: "Robb Greathouse" <robb.greathouse at redhat.com> 
Sent: Sunday, March 22, 2015 9:57:36 PM 
Subject: Re: Furnace not finding Windup FileService 

Licoln, 

Got passed those previous errors. New error now: 



!ENTRY org.eclipse.core.jobs 4 2 2015-03-22 21:52:59.403 
!MESSAGE An internal error occurred during: "Validating". 
!STACK 0 
java.lang.LinkageError: loader constraint violation: loader (instance of org/jboss/tools/forge/core/internal/furnace/CompositeFurnaceClassLoader) previously initiated loading for a different type with name "org/jboss/forge/furnace/util/Predicate" 
at java.lang.Class.getDeclaredMethods0(Native Method) 
at java.lang.Class.privateGetDeclaredMethods(Class.java:2615) 
at java.lang.Class.getDeclaredMethods(Class.java:1860) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.SecurityActions.getDeclaredMethods(SecurityActions.java:30) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.RuntimeSupport.findMethod2(RuntimeSupport.java:134) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.RuntimeSupport.findMethod(RuntimeSupport.java:65) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.RuntimeSupport.find2Methods(RuntimeSupport.java:53) 
at org.jboss.windup.exec.configuration.WindupConfiguration_$$_javassist_5effd6de-6f27-4c9d-9f94-b9492b06844c.<clinit>(WindupConfiguration_$$_javassist_5effd6de-6f27-4c9d-9f94-b9492b06844c.java) 
at sun.misc.Unsafe.ensureClassInitialized(Native Method) 
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43) 
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140) 
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:1057) 
at java.lang.reflect.Field.getFieldAccessor(Field.java:1038) 
at java.lang.reflect.Field.set(Field.java:741) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.setField(ProxyFactory.java:525) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:508) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:492) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:428) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:400) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback$3.call(ClassLoaderAdapterCallback.java:987) 
at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.enhance(ClassLoaderAdapterCallback.java:900) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.enhanceResult(ClassLoaderAdapterCallback.java:253) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.access$200(ClassLoaderAdapterCallback.java:37) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback$2.call(ClassLoaderAdapterCallback.java:124) 
at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.invoke(ClassLoaderAdapterCallback.java:96) 
at org.jboss.forge.furnace.services.Imported_$$_javassist_34707ba1-98fb-4b8a-93ed-559398be971b.get(Imported_$$_javassist_34707ba1-98fb-4b8a-93ed-559398be971b.java) 
at org.jboss.tools.forge.core.furnace.FurnaceService.lookup(FurnaceService.java:96) 
at org.jboss.tools.windup.core.WindupService.getServiceFromFurnace(WindupService.java:485) 
at org.jboss.tools.windup.core.WindupService.generateGraph(WindupService.java:226) 
at org.jboss.tools.windup.core.WindupService.getGraph(WindupService.java:301) 
at org.jboss.tools.windup.core.WindupService.getInlineHints(WindupService.java:103) 
at org.jboss.tools.windup.core.internal.validators.WindupValidator.validate(WindupValidator.java:81) 
at org.eclipse.wst.validation.Validator$V2.validate(Validator.java:1159) 
at org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:704) 
at org.eclipse.wst.validation.internal.ValManager$1.visit(ValManager.java:665) 
at org.eclipse.wst.validation.internal.ValManager.accept(ValManager.java:810) 
at org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:669) 
at org.eclipse.wst.validation.internal.ValidationRunner.execute(ValidationRunner.java:134) 
at org.eclipse.wst.validation.internal.ValidationRunner.validate(ValidationRunner.java:68) 
at org.eclipse.wst.validation.ui.internal.ManualValidationRunner.runInWorkspace(ManualValidationRunner.java:83) 
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 



Blue Skies, 
~Ian 

----- Original Message -----

From: "Ian Tewksbury" <itewk at redhat.com> 
To: "Lincoln Baxter" <lbaxter at redhat.com> 
Cc: "Robb Greathouse" <robb.greathouse at redhat.com> 
Sent: Sunday, March 22, 2015 7:49:28 PM 
Subject: Re: Furnace not finding Windup FileService 

Licncoln, 

I added some new API to the FurnaceService to be able to lookup a type which got me passed the below errors. 

Now I am running into: 



java.lang.NoClassDefFoundError: com/tinkerpop/frames/FramedGraph 
at java.lang.Class.getDeclaredMethods0(Native Method) 
at java.lang.Class.privateGetDeclaredMethods(Class.java:2615) 
at java.lang.Class.getDeclaredMethods(Class.java:1860) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.SecurityActions.getDeclaredMethods(SecurityActions.java:30) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.getMethods(ProxyFactory.java:1121) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.getMethods(ProxyFactory.java:1096) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.makeSortedMethodList(ProxyFactory.java:803) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.computeSignature(ProxyFactory.java:810) 
at org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:398) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback$3.call(ClassLoaderAdapterCallback.java:987) 
at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.enhance(ClassLoaderAdapterCallback.java:900) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.enhanceResult(ClassLoaderAdapterCallback.java:277) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.access$200(ClassLoaderAdapterCallback.java:37) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback$2.call(ClassLoaderAdapterCallback.java:124) 
at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42) 
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.invoke(ClassLoaderAdapterCallback.java:96) 
at org.jboss.windup.graph.GraphContextFactory_$$_javassist_2a504b60-d6e3-450e-87b5-f41eb849ab81.create(GraphContextFactory_$$_javassist_2a504b60-d6e3-450e-87b5-f41eb849ab81.java) 
at org.jboss.tools.windup.core.WindupService.generateGraph(WindupService.java:235) 
at org.jboss.tools.windup.core.WindupService.getGraph(WindupService.java:303) 
at org.jboss.tools.windup.core.WindupService.getInlineHints(WindupService.java:103) 
at org.jboss.tools.windup.core.internal.validators.WindupValidator.validate(WindupValidator.java:81) 
at org.eclipse.wst.validation.Validator$V2.validate(Validator.java:1159) 
at org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:704) 
at org.eclipse.wst.validation.internal.ValManager$1.visit(ValManager.java:665) 
at org.eclipse.wst.validation.internal.ValManager.accept(ValManager.java:810) 
at org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:669) 
at org.eclipse.wst.validation.internal.ValidationRunner.execute(ValidationRunner.java:134) 


at org.eclipse.wst.validation.internal.ValidationRunner.validate(ValidationRunner.java:68) 
at org.eclipse.wst.validation.ui.internal.ManualValidationRunner.runInWorkspace(ManualValidationRunner.java:83) 
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 
Caused by: java.lang.ClassNotFoundException: com.tinkerpop.frames.FramedGraph cannot be found by org.jboss.tools.windup.runtime_3.1.0.qualifier 
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:432) 
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345) 
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337) 
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
... 32 more 




I have verified that the Furnace add on 'org-jboss-windup-graph-windup-graph' is being loaded and contains the windup-frames JAR so I am not clear why furnace is not able to load the class. 




Ideas? 




Blue Skies, 

~Ian 

----- Original Message -----

From: "Ian Tewksbury" <itewk at redhat.com> 
To: "Lincoln Baxter" <lbaxter at redhat.com> 
Cc: "Robb Greathouse" <robb.greathouse at redhat.com> 
Sent: Sunday, March 22, 2015 5:18:55 AM 
Subject: Re: Furnace not finding Windup FileService 

Lioncoln, 

Looking here, http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/releases/org.jboss.forge.furnace.container/cdi-impl/2.10.1.Final/org/jboss/forge/furnace/container/cdi/impl/WeldServiceRegistry.java#WeldServiceRegistry.getExportedInstances%28java.lang.Class%29 , and debuging through eclipse without source, I have figured out it is choking on like 189. It appears this #getExportedInstances method is only for loading beans. I see a #getExportedType which is what I am guessing I need, but the only Furnace API I see is FurnaceService.INSTANCE.lookup(clazz) which ends up doing this bean lookup rather then a type lookup. Am I missing something here? Is there just missing API to look up a type and not a bean via Furnace? 

Blue Skies, 
~Ian 

----- Original Message -----

From: "Ian Tewksbury" <itewk at redhat.com> 
To: "Lincoln Baxter" <lbaxter at redhat.com>, "Robb Greathouse" <robb.greathouse at redhat.com> 
Sent: Sunday, March 22, 2015 4:57:43 AM 
Subject: Furnace not finding Windup FileService 

Lincoln, 

I can not figure out why Furnance is reporting that it can not find the Windup FileService despite the fact that it is reporting it loaded the graph-api addon. Any ideas? 

Please see attached for the log. It clearly shows the graph-api addon being loaded. And I have verified that addon contains the graph-api.jar which contains the FileService. I have tried to debug the furnace stuff but I keep running into source not found issues and getting lost. I have been able to tell that ImportedImpl#getExportedInstances is getting called and it is looping over the graph-api addon. But it does not seem to find the class in there, but I have not been able to debug into furnace beyond that point. 

Looking at the variable state the WeldServiceRegistery instance for the graph-api addon shows the FIleService there. For some reason it is just not being retrevied. I have attached a screenshoot of the variable state from within ImportedImpl#getExportedInstances. Can you think of any reason serviceRegistry.getExportedInstances(type) would be failing giving all of this? 


~Ian 




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/windup-dev/attachments/20150323/7d87a2a0/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: windup.png
Type: image/png
Size: 172297 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/windup-dev/attachments/20150323/7d87a2a0/attachment-0001.png 


More information about the windup-dev mailing list