[jbosstools-dev] Couple-o-things re: JBDS 4.1.1 and JBDS 5 test failures with org.jboss.tools.esb.core.test
Brian Fitzpatrick
bfitzpat at redhat.com
Tue Oct 4 12:24:25 EDT 2011
Adding that comparator shouldn't have broken a darn thing. All it's used for is sorting the runtimes in an order so that 4.9 comes before 4.10 instead of 4.10 coming before 4.2.
If that's what broke it, then the facet framework is broken.
_______________________________
Brian Fitzpatrick (aka "Fitz")
Senior Software Engineer, SOA-P
JBoss by Red Hat
----- Original Message -----
From: "Alexey Kazakov" <akazakov at exadel.com>
To: jbosstools-dev at lists.jboss.org
Sent: Tuesday, October 4, 2011 10:21:21 AM
Subject: Re: [jbosstools-dev] Couple-o-things re: JBDS 4.1.1 and JBDS 5 test failures with org.jboss.tools.esb.core.test
I can say what changed. We introduced a new custom facet version comparator for ESB.
You can see details in JIRA https://issues.jboss.org/browse/JBIDE-9802
But if to be short...
JBossServerCorePlugin.start() indirectly invokes FacetedProjectFrameworkImpl
FacetedProjectFrameworkImpl starts initialization and loading its metadata including ESB facet comparator
Eclipse starts to start ESB plugin to load the comparator.
ESBCorePlugin.start() indirectly invokes FacetedProjectFrameworkImpl
And here we get a deadlock since FacetedProjectFrameworkImpl.getInstance() is synchronized and invokes recursively in the same thread:
public synchronized static FacetedProjectFrameworkImpl getInstance()
{ if ( instance == null )
{
instance = new FacetedProjectFrameworkImpl();
} return instance;
}
Rob, if I'm ok with firing the addition as a job in the esb.
Actually firing a new job in JBossAS solves the problem in JBT but since we have our new ESB facet version comparator we should make sure that if any third-side plugin loads Faceted Framework in its start method we would not get the same deadlock again.
So I'm fully agree with you that it's better to use an extension point but let's fire a new job as a workaround so far.
I'm assigning JBIDE-9802 to you then.
On 10/04/2011 07:31 AM, Brian Fitzpatrick wrote:
Nothing changed in ESB. That's why I'm concerned as well. But I really don't know anything about this faceted framework and can't offer any constructive feedback.
All we know is that it prevents this test, which runs locally through the PDE and not through the Mavenized test run, from starting this particular plug-in for some mysterious reason.
--Fitz
_______________________________
Brian Fitzpatrick (aka "Fitz")
Senior Software Engineer, SOA-P
JBoss by Red Hat
----- Original Message -----
From: "Max Rydahl Andersen" <max.andersen at redhat.com> To: "Brian Fitzpatrick" <bfitzpat at redhat.com> Cc: "Rob Stryker" <rstryker at redhat.com> , jbosstools-dev at lists.jboss.org Sent: Tuesday, October 4, 2011 8:18:20 AM
Subject: Re: [jbosstools-dev] Couple-o-things re: JBDS 4.1.1 and JBDS 5 test failures with org.jboss.tools.esb.core.test
i'm concerned about what is going on here. This code is ancient (1-2+ years old) is it not ?
What changed ?
About the specifics then I believe any calls out to faceted framework during startup code is dangerous since the faceted framework is probably not fully started yet.
/max
On Oct 4, 2011, at 15:52, Brian Fitzpatrick wrote:
Rob did you apply the patch just in trunk or in 3.2.x as well?
And if you can suggest how to "have esb also fire the addition as a job" I can look into fixing that.
_______________________________
Brian Fitzpatrick (aka "Fitz")
Senior Software Engineer, SOA-P
JBoss by Red Hat
----- Original Message -----
From: "Rob Stryker" <rstryker at redhat.com> To: akazakov at exadel.com Cc: jbosstools-dev at lists.jboss.org Sent: Tuesday, October 4, 2011 1:34:35 AM
Subject: Re: [jbosstools-dev] Couple-o-things re: JBDS 4.1.1 and JBDS 5 test failures with org.jboss.tools.esb.core.test
Just got back from vacation and didn't even see this one. :)
I've applied your patch as it's not important for me to add the listener in the start method. I suspect firing off the ESB extension addition in a job would also be ok... The Extension thing would be better handled as an extension point, I'm sure, but until we can get around to fixing that, I think we're out of luck.
If you think having the esb also fire the addition as a job would help, I can do that :)
What do you think?
On 10/04/2011 02:45 PM, Alexey Kazakov wrote:
Rob, I'm still hopping you will take a look at my patch for JBossAS attached to https://issues.jboss.org/browse/JBIDE-9802 and maybe will suggest some fix for ESB too.
:)
Though I'm not sure these test failures are related to a deadlock I got in JBIDE-9802 , IMHO it's a blocker and we need to fix it.
On 10/03/2011 11:22 PM, Nick Boldt wrote:JBIDE-9802
Caused by: java.lang.NullPointerException at
org.eclipse.wst.common.project.facet.core.ProjectFacetsManager.isProjectFacetDefined(ProjectFacetsManager.java:62) Can you check if the ProjectFacetsManager is defined and not null before
calling it?
Is this a bug in o.e.wst?
Nick
On 10/03/2011 05:18 PM, Brian Fitzpatrick wrote:
Hey Nick et al...
I believe that the issues Alexey has raised with JBIDE-9802 is what's causing the ESB core test failures Nick and I have been trying to track down.
I'm getting a ton of these errors (stack trace below) when I run the JUnit tests for ESB, which seems to be a related issue.
How do we fix the issue in JBIDE-9802 so we can get past the JBIDE-9802 issue and the test failures?
--Fitz
!ENTRY org.eclipse.osgi 4 0 2011-10-03 11:35:25.361
!MESSAGE An error occurred while automatically activating bundle org.jboss.tools.esb.project.core (490).
!STACK 0
org.osgi.framework.BundleException: Exception in org.jboss.tools.esb.core.ESBProjectCorePlugin.start() of bundle org.jboss.tools.esb.project.core.
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:417)
at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:265)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:106)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:453)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:393)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:469)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:338)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:232)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1197)
at org.eclipse.wst.common.project.facet.core.util.internal.Versionable.getVersionComparator(Versionable.java:153)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl.calculateVersionComparisonTables(FacetedProjectFrameworkImpl.java:1658)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl.readMetadata(FacetedProjectFrameworkImpl.java:1386)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl.<init>(FacetedProjectFrameworkImpl.java:188)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl.getInstance(FacetedProjectFrameworkImpl.java:211)
at org.eclipse.wst.common.project.facet.core.ProjectFacetsManager.<clinit>(ProjectFacetsManager.java:37)
at org.eclipse.wst.common.componentcore.internal.util.ComponentImplManager.findFactoryForProject(ComponentImplManager.java:130)
at org.eclipse.wst.common.componentcore.internal.util.ComponentImplManager.createComponent(ComponentImplManager.java:213)
at org.eclipse.wst.common.componentcore.internal.util.ComponentImplManager.createComponent(ComponentImplManager.java:203)
at org.eclipse.wst.common.componentcore.ComponentCore.createComponent(ComponentCore.java:64)
at org.jboss.tools.common.model.util.EclipseResourceUtil.getFirstWebContentResource(EclipseResourceUtil.java:441)
at org.jboss.tools.common.model.util.EclipseResourceUtil.createObjectForResource(EclipseResourceUtil.java:378)
at org.jboss.tools.esb.core.test.ESBModelTest.getFileObject(ESBModelTest.java:526)
at org.jboss.tools.esb.core.test.ESBModelTest.testListener(ESBModelTest.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at org.codehaus.tycho.surefire.osgibooter.OsgiSurefireBooter.run(OsgiSurefireBooter.java:75)
at org.codehaus.tycho.surefire.osgibooter.AbstractUITestApplication$1.run(AbstractUITestApplication.java:25)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at org.codehaus.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:21)
at org.codehaus.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:109)
at org.codehaus.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:27)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
Caused by: java.lang.NullPointerException
at org.eclipse.wst.common.project.facet.core.ProjectFacetsManager.isProjectFacetDefined(ProjectFacetsManager.java:62)
at org.eclipse.wst.common.componentcore.internal.util.VirtualReferenceUtilities.addDefaultExtension(VirtualReferenceUtilities.java:44)
at org.jboss.tools.esb.core.ESBProjectCorePlugin.start(ESBProjectCorePlugin.java:47)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
... 80 more
Root exception:
java.lang.NullPointerException
at org.eclipse.wst.common.project.facet.core.ProjectFacetsManager.isProjectFacetDefined(ProjectFacetsManager.java:62)
at org.eclipse.wst.common.componentcore.internal.util.VirtualReferenceUtilities.addDefaultExtension(VirtualReferenceUtilities.java:44)
at org.jboss.tools.esb.core.ESBProjectCorePlugin.start(ESBProjectCorePlugin.java:47)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:417)
at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:265)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:106)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:453)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:393)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:469)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:338)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:232)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1197)
at org.eclipse.wst.common.project.facet.core.util.internal.Versionable.getVersionComparator(Versionable.java:153)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl.calculateVersionComparisonTables(FacetedProjectFrameworkImpl.java:1658)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl.readMetadata(FacetedProjectFrameworkImpl.java:1386)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl.<init>(FacetedProjectFrameworkImpl.java:188)
at org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl.getInstance(FacetedProjectFrameworkImpl.java:211)
at org.eclipse.wst.common.project.facet.core.ProjectFacetsManager.<clinit>(ProjectFacetsManager.java:37)
at org.eclipse.wst.common.componentcore.internal.util.ComponentImplManager.findFactoryForProject(ComponentImplManager.java:130)
at org.eclipse.wst.common.componentcore.internal.util.ComponentImplManager.createComponent(ComponentImplManager.java:213)
at org.eclipse.wst.common.componentcore.internal.util.ComponentImplManager.createComponent(ComponentImplManager.java:203)
at org.eclipse.wst.common.componentcore.ComponentCore.createComponent(ComponentCore.java:64)
at org.jboss.tools.common.model.util.EclipseResourceUtil.getFirstWebContentResource(EclipseResourceUtil.java:441)
at org.jboss.tools.common.model.util.EclipseResourceUtil.createObjectForResource(EclipseResourceUtil.java:378)
at org.jboss.tools.esb.core.test.ESBModelTest.getFileObject(ESBModelTest.java:526)
at org.jboss.tools.esb.core.test.ESBModelTest.testListener(ESBModelTest.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at org.codehaus.tycho.surefire.osgibooter.OsgiSurefireBooter.run(OsgiSurefireBooter.java:75)
at org.codehaus.tycho.surefire.osgibooter.AbstractUITestApplication$1.run(AbstractUITestApplication.java:25)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at org.codehaus.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:21)
at org.codehaus.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:109)
at org.codehaus.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:27)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
_______________________________
Brian Fitzpatrick (aka "Fitz")
Senior Software Engineer, SOA-P
JBoss by Red Hat
_______________________________________________
jbosstools-dev mailing list jbosstools-dev at lists.jboss.org https://lists.jboss.org/mailman/listinfo/jbosstools-dev _______________________________________________
jbosstools-dev mailing list jbosstools-dev at lists.jboss.org https://lists.jboss.org/mailman/listinfo/jbosstools-dev /max http://about.me/maxandersen _______________________________________________
jbosstools-dev mailing list jbosstools-dev at lists.jboss.org https://lists.jboss.org/mailman/listinfo/jbosstools-dev
_______________________________________________
jbosstools-dev mailing list
jbosstools-dev at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jbosstools-dev
More information about the jbosstools-dev
mailing list