The intention is that there is always a default monitor. It's not happening in this case though and needs fixing.
Simon On Thu, May 22, 2008 at 9:15 AM, Simon Nash <[EMAIL PROTECTED]> wrote: > Rajini Sivaram wrote: > >> Simon, >> >> Do we actually expect to always find a monitor implementation on the >> classpath? If so, I think we should throw an exception earlier on if no >> monitor implementation was found, rather than a NullPointerException >> masking >> the original exception when something does go wrong. But shouldn't we >> actually tolerate the absence of a monitor implementation, and use >> monitors >> with checks for null? >> >> monitor-logging is not a dependency on host-embedded at the moment. >> itest/contribution-classloader is the only test that fails because it is >> the >> only one which uses the exception code path. >> >> If we are going to write unguarded monitor calls then we need > to be 100% certain that a monitor will always be present. It should > be possible to ensure this by having a default "do nothing" monitor > that is created at startup and can be overridden with a user-written > implementation if one is found. > > I think that enforcing the 100% guarantee is better than writing > null tests before every monitor call. > > Simon > > > >> On 5/22/08, Simon Laws <[EMAIL PROTECTED]> wrote: >> >>> On Wed, May 21, 2008 at 9:33 PM, Simon Nash <[EMAIL PROTECTED]> wrote: >>> >>> I just did a clean checkout and full build. It failed in >>>> itest/contribution-classloader with the following stack trace. >>>> >>>> The problem is caused by a null value in the "monitor" variable >>>> on line 124 of JavaInterfaceProcessor. This does not seem to >>>> happen for other tests. Any ideas? >>>> >>>> Simon >>>> >>>> Running org.apache.tuscany.sca.test.contribution.ContributionTestCase >>>> Created supplychain.customer.JavaCustomerComponentImpl using: SCA >>>> contribution c >>>> lassloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contribut >>>> ion-test/target/contributions/Customer.jar >>>> Created supplychain.retailer.JavaRetailerComponentImpl using: SCA >>>> contribution c >>>> lassloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contribut >>>> ion-test/target/contributions/Retailer.jar >>>> Created supplychain.warehouse.JavaWarehouseComponentImpl using: SCA >>>> contribution >>>> classloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contrib >>>> ution-test/target/contributions/Warehouse.jar >>>> Created supplychain.shipper.JavaShipperComponentImpl using: SCA >>>> contribution cla >>>> ssloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contributio >>>> n-test/target/contributions/Shipper.jar >>>> Work thread Thread[Thread-2,5,main] - Order, submitted, fulfilled, >>>> >>> shipped >>> >>>> Created supplychain.customer.JavaCustomerComponentImpl using: >>>> java.net.URLClassL >>>> [EMAIL PROTECTED] >>>> Created supplychain.retailer.JavaRetailerComponentImpl using: >>>> java.net.URLClassL >>>> [EMAIL PROTECTED] >>>> Created supplychain.warehouse.JavaWarehouseComponentImpl using: >>>> java.net.URLClas >>>> [EMAIL PROTECTED] >>>> Created supplychain.shipper.JavaShipperComponentImpl using: >>>> java.net.URLClassLoa >>>> [EMAIL PROTECTED] >>>> Work thread Thread[Thread-4,5,main] - Order, submitted, fulfilled, >>>> >>> shipped >>> >>>> Created supplychain.illegal.JavaCustomerComponentImpl using: SCA >>>> contribution cl >>>> assloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contributi >>>> on-test/target/contributions/IllegalCustomer.jar >>>> Created supplychain.retailer.JavaRetailerComponentImpl using: SCA >>>> contribution c >>>> lassloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contribut >>>> ion-test/target/contributions/Retailer.jar >>>> Created a retailer from Customer >>>> supplychain.retailer.JavaRetailerComponentImpl@ >>>> 3fac1e22 >>>> Created supplychain.customer.JavaCustomerComponentImpl using: SCA >>>> contribution c >>>> lassloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contribut >>>> ion-test/target/contributions/CompleteSupplyChain.jar >>>> Created supplychain.retailer.JavaRetailerComponentImpl using: SCA >>>> contribution c >>>> lassloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contribut >>>> ion-test/target/contributions/CompleteSupplyChain.jar >>>> Created supplychain.warehouse.JavaWarehouseComponentImpl using: SCA >>>> contribution >>>> classloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contrib >>>> ution-test/target/contributions/CompleteSupplyChain.jar >>>> Created supplychain.shipper.JavaShipperComponentImpl using: SCA >>>> contribution cla >>>> ssloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contributio >>>> n-test/target/contributions/CompleteSupplyChain.jar >>>> Work thread Thread[Thread-6,5,main] - Order, submitted, fulfilled, >>>> >>> shipped >>> >>>> Created supplychain.customer.JavaCustomerComponentImpl using: SCA >>>> contribution c >>>> lassloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contribut >>>> ion-test/target/contributions/CustomerImpl.jar >>>> Created supplychain.retailer.JavaRetailerComponentImpl using: SCA >>>> contribution c >>>> lassloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contribut >>>> ion-test/target/contributions/Retailer.jar >>>> Created supplychain.warehouse.JavaWarehouseComponentImpl using: SCA >>>> contribution >>>> classloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contrib >>>> ution-test/target/contributions/Warehouse.jar >>>> Created supplychain.shipper.JavaShipperComponentImpl using: SCA >>>> contribution cla >>>> ssloader for : >>>> file:/F:/tuscany70/sca/itest/contribution-classloader/contributio >>>> n-test/target/contributions/Shipper.jar >>>> Work thread Thread[Thread-8,5,main] - Order, submitted, fulfilled, >>>> >>> shipped >>> >>>> Tests run: 9, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 3.581 >>>> sec >>>> <<< FA >>>> ILURE! >>>> >>>> >>>> testIllegalStaticClassLoading1(org.apache.tuscany.sca.test.contribution.Contribu >>> >>>> tionTestCase) Time elapsed: 0.219 sec <<< ERROR! >>>> java.lang.NullPointerException >>>> at >>>> org.apache.tuscany.sca.interfacedef.java.xml.JavaInterfaceProcessor.r >>>> esolveJavaInterface(JavaInterfaceProcessor.java:124) >>>> at >>>> org.apache.tuscany.sca.interfacedef.java.xml.JavaInterfaceProcessor.r >>>> esolve(JavaInterfaceProcessor.java:148) >>>> at >>>> org.apache.tuscany.sca.interfacedef.java.xml.JavaInterfaceProcessor.r >>>> esolve(JavaInterfaceProcessor.java:50) >>>> at >>>> org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProc >>>> >>>> >>>> essorExtensionPoint$LazyStAXArtifactProcessor.resolve(DefaultStAXArtifactProcess >>> >>>> orExtensionPoint.java:320) >>>> at >>>> org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactP >>>> rocessor.resolve(ExtensibleStAXArtifactProcessor.java:156) >>>> at >>>> org.apache.tuscany.sca.assembly.xml.BaseAssemblyProcessor.resolveCont >>>> racts(BaseAssemblyProcessor.java:405) >>>> at >>>> org.apache.tuscany.sca.assembly.xml.BaseAssemblyProcessor.resolveCont >>>> racts(BaseAssemblyProcessor.java:364) >>>> at >>>> org.apache.tuscany.sca.assembly.xml.ComponentTypeProcessor.resolve(Co >>>> mponentTypeProcessor.java:356) >>>> at >>>> org.apache.tuscany.sca.assembly.xml.ComponentTypeProcessor.resolve(Co >>>> mponentTypeProcessor.java:59) >>>> at >>>> org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProc >>>> >>>> >>>> essorExtensionPoint$LazyStAXArtifactProcessor.resolve(DefaultStAXArtifactProcess >>> >>>> orExtensionPoint.java:320) >>>> at >>>> org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactP >>>> rocessor.resolve(ExtensibleStAXArtifactProcessor.java:156) >>>> at >>>> org.apache.tuscany.sca.assembly.xml.ComponentTypeDocumentProcessor.re >>>> solve(ComponentTypeDocumentProcessor.java:133) >>>> at >>>> org.apache.tuscany.sca.assembly.xml.ComponentTypeDocumentProcessor.re >>>> solve(ComponentTypeDocumentProcessor.java:47) >>>> at >>>> org.apache.tuscany.sca.contribution.processor.DefaultURLArtifactProce >>>> >>>> >>>> ssorExtensionPoint$LazyURLArtifactProcessor.resolve(DefaultURLArtifactProcessorE >>> >>>> xtensionPoint.java:208) >>>> at >>>> org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactPr >>>> ocessor.resolve(ExtensibleURLArtifactProcessor.java:106) >>>> at >>>> org.apache.tuscany.sca.contribution.service.impl.ContributionServiceI >>>> mpl.processResolvePhase(ContributionServiceImpl.java:519) >>>> at >>>> org.apache.tuscany.sca.contribution.service.impl.ContributionServiceI >>>> mpl.addContribution(ContributionServiceImpl.java:394) >>>> at >>>> org.apache.tuscany.sca.contribution.service.impl.ContributionServiceI >>>> mpl.contribute(ContributionServiceImpl.java:187) >>>> at >>>> org.apache.tuscany.sca.test.contribution.SupplyChain.addContributions >>>> (SupplyChain.java:139) >>>> at >>>> org.apache.tuscany.sca.test.contribution.SupplyChain.setUp(SupplyChai >>>> n.java:111) >>>> at >>>> org.apache.tuscany.sca.test.contribution.ContributionTestCase.testIll >>>> egalStaticClassLoading1(ContributionTestCase.java:300) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. >>>> java:39) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces >>>> sorImpl.java:25) >>>> at java.lang.reflect.Method.invoke(Method.java:585) >>>> at >>>> org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMet >>>> hodRunner.java:99) >>>> at >>>> org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethod >>>> Runner.java:81) >>>> at >>>> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn >>>> dAfterRunner.java:34) >>>> at >>>> org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunne >>>> r.java:75) >>>> at >>>> org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java >>>> :45) >>>> at >>>> org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(Te >>>> stClassMethodsRunner.java:75) >>>> at >>>> org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethod >>>> sRunner.java:36) >>>> at >>>> org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClass >>>> Runner.java:42) >>>> at >>>> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn >>>> dAfterRunner.java:34) >>>> at >>>> org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:5 >>>> 2) >>>> at >>>> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet. >>>> java:62) >>>> at >>>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes >>>> tSet(AbstractDirectoryTestSuite.java:138) >>>> at >>>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Ab >>>> stractDirectoryTestSuite.java:125) >>>> at org.apache.maven.surefire.Surefire.run(Surefire.java:132) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. >>>> java:39) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces >>>> sorImpl.java:25) >>>> at java.lang.reflect.Method.invoke(Method.java:585) >>>> at >>>> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Su >>>> refireBooter.java:308) >>>> at >>>> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.j >>>> ava:879) >>>> >>>> >>>> Results : >>>> >>>> Tests in error: >>>> >>>> >>>> >>>> testIllegalStaticClassLoading1(org.apache.tuscany.sca.test.contribution.Contri >>>> butionTestCase) >>>> >>>> Tests run: 9, Failures: 0, Errors: 1, Skipped: 0 >>>> >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> [ERROR] BUILD FAILURE >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> [INFO] There are test failures. >>>> >>>> >>>> I've go that too now and It's related to a change I made to trap a >>> class >>> not >>> found error. Apologies! I've checked in a fix which seems to make things >>> better but it's a little strange as I'm adding a dependency to the test >>> pom >>> which I believe should come in transitively. Anyhow I'll do another >>> update >>> now and a full build and I'll investigate further. >>> >>> Simon >>> >>> >> >> >> >