+1 let’s do a while (instances < 2 && !timeout) and then timeout after like 3 seconds or something
-------- Chris Mattmann chris.mattm...@gmail.com From: Imesha Sudasingha <ime...@apache.org> Reply-To: <dev@oodt.apache.org> Date: Wednesday, October 2, 2019 at 11:07 PM To: dev <dev@oodt.apache.org> Cc: Chris Mattmann <mattm...@apache.org>, Tom Barber <t...@spicule.co.uk> Subject: Re: [EXTERNAL] Re: [VOTE] OODT 1.9 RC 4 Their is an uncertainty attached to the failing test case. The test case does the following, - Fires and even named "long" which should initialize two workflow instances of the type "longWorkflow" (according to events.xml). - Within the test case, we get the number of workflow instances from workflow manager (directly, not through client) - Then assert if it is 2 The problem is, the time gap between firing the event and getting number of instances may not be enough to get 2 workflow instances to get created. Therefore we get only 1 instance sometimes and the test fails. So the consistent solution will be to add a timeout between firing even and checking number of instances. What do you think? On Wed, 2 Oct 2019 at 22:34, Tom Barber <t...@spicule.co.uk> wrote: Imesha, isn’t the the exact opposite of the test result you just fixed? On 2 October 2019 at 17:38:21, Chris Mattmann (mattm...@apache.org) wrote: OK tests are still failing. Sigh. [INFO] Running org.apache.oodt.cas.workflow.system.TestAvroRpcWorkflowManager [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.643 s <<< FAILURE! - in org.apache.oodt.cas.workflow.system.TestAvroRpcWorkflowManager [ERROR] testGetWorkflowInstances(org.apache.oodt.cas.workflow.system.TestAvroRpcWorkflowManager) Time elapsed: 1.617 s <<< FAILURE! junit.framework.AssertionFailedError: expected:<2> but was:<1> at org.apache.oodt.cas.workflow.system.TestAvroRpcWorkflowManager.testGetWorkflowInstances(TestAvroRpcWorkflowManager.java:71) also it hung and I had to quit: [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.527 s - in org.apache.oodt.cas.workflow.engine.TestThreadPoolWorkflowEngine [INFO] Running org.apache.oodt.cas.workflow.engine.TestAsynchronousLocalEngineRunner [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.625 s - in org.apache.oodt.cas.workflow.engine.TestAsynchronousLocalEngineRunner [INFO] Running org.apache.oodt.cas.workflow.engine.TestTaskRunner ^C[INFO] [INFO] Results: [INFO] [ERROR] Failures: [ERROR] TestAvroRpcWorkflowManager.testGetWorkflowInstances:71 expected:<2> but was:<1> [INFO] [ERROR] Tests run: 115, Failures: 1, Errors: 0, Skipped: 9 [INFO] pomodoro:oodt mattmann$ pomodoro:oodt mattmann$ git branch * (HEAD detached at 1.9-rc4) 0.12-release 1.2.1 OODT-967 OODT-972 OODT-973 OODT-978 asf-site development feature/zookeeper-config master merge-avro-dynworkflow regex-exclude-merge release-1.2.3 site-dev upreadme pomodoro:oodt mattmann$ pomodoro:oodt mattmann$ java -version openjdk version "1.8.0_212" OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_212-b03) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.212-b03, mixed mode) pomodoro:oodt mattmann$ mvn -V Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T12:00:29-07:00) Maven home: /usr/local/Cellar/maven/3.6.1/libexec Java version: 1.8.0_212, vendor: AdoptOpenJDK, runtime: /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre Default locale: en_US, platform encoding: UTF-8 OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac" [INFO] Scanning for projects... From: Tom Barber <t...@spicule.co.uk> Reply-To: <dev@oodt.apache.org> Date: Wednesday, October 2, 2019 at 9:18 AM To: <dev@oodt.apache.org>, Chris Mattmann <mattm...@apache.org> Subject: Re: [EXTERNAL] Re: [VOTE] OODT 1.9 RC 4 https://github.com/apache/oodt/commits/1.9 You can see Imesha’s fix in the list from 2 days ago. Which test failed? On 2 October 2019 at 17:12:54, Chris Mattmann (mattm...@apache.org) wrote: OK another build failure, note in Workflow this time. I am on the 1.9 detached tag: [INFO] CAS File Manager Browser Web App ................... SKIPPED [INFO] CAS Workflow Manager Monitor Web App ............... SKIPPED [INFO] CAS Product Server Web Application ................. SKIPPED [INFO] CAS Workflow REST Services ......................... SKIPPED [INFO] Process Control System Operator Interface Webapp ... SKIPPED [INFO] OODT Process Control System JAX-RS service layer ... SKIPPED [INFO] Apache OODT ........................................ SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 06:43 min [INFO] Finished at: 2019-10-02T09:08:20-07:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.0:test (default-test) on project cas-workflow: There are test failures. [ERROR] [ERROR] Please refer to /Users/mattmann/git/oodt/workflow/target/surefire-reports for the individual test results. [ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream. [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn <goals> -rf :cas-workflow pomodoro:oodt mattmann$ git branch * (HEAD detached at 1.9) 0.12-release 1.2.1 OODT-967 OODT-972 OODT-973 OODT-978 asf-site development feature/zookeeper-config master merge-avro-dynworkflow regex-exclude-merge release-1.2.3 site-dev Is there a possibility Tom didn’t push Imesha’s fix and create a new tag? From: Chris Mattmann <mattm...@apache.org> Date: Wednesday, October 2, 2019 at 9:08 AM To: "dev@oodt.apache.org" <dev@oodt.apache.org> Cc: Chris Mattmann <mattm...@apache.org> Subject: Re: [EXTERNAL] Re: [VOTE] OODT 1.9 RC 4 It is building further now and I already had brew cask. I am going to update the wiki with the export command to build b/c it is something we will want to capture. Speaking of which I don’t have perms to edit the wiki anymore. Imesha or Tom can you can me perms? From: Imesha Sudasingha <ime...@apache.org> Reply-To: "dev@oodt.apache.org" <dev@oodt.apache.org> Date: Tuesday, October 1, 2019 at 6:42 PM To: dev <dev@oodt.apache.org> Cc: Chris Mattmann <mattm...@apache.org> Subject: Re: [EXTERNAL] Re: [VOTE] OODT 1.9 RC 4 Hi Chris, I think from jdk 10 or 11, xml related libraries (jaxb) have been removed from default libraries. That's why you should be getting that error. By the look, it seems like an XML related issue. Thanks, Imesha On Wed, 2 Oct 2019, 3:21 am Tom Barber, <t...@spicule.co.uk> wrote: brew tap caskroom/versions brew cask install java8 I think export JAVA_HOME=`/usr/libexec/java_home -v 1.8` On 1 October 2019 at 22:42:42, Mattmann, Chris A (US 1761) ( chris.a.mattm...@jpl.nasa.gov.invalid) wrote: Any links to install one that old on mac? Sent from my iPhone On Oct 1, 2019, at 2:28 PM, Tom Barber <t...@spicule.co.uk> wrote: 8, 9 I think will be okay 10+ will be questionable due the change in API and jars that need upgrading for compatibility. On 1 October 2019 at 21:58:35, Chris Mattmann (mattm...@apache.org) wrote: OK so I need JDK8 to build, is that right? From: Tom Barber <t...@spicule.co.uk> Reply-To: <dev@oodt.apache.org> Date: Tuesday, October 1, 2019 at 1:57 PM To: <dev@oodt.apache.org>, Chris Mattmann <mattm...@apache.org>, Imesha Sudasingha <ime...@apache.org> Subject: Re: [VOTE] OODT 1.9 RC 4 Yeah, I’m amazed you got that far through with 12. I know from other apps migrating from 8 through 12 is a right PITA and something we should look at for 2.0. On 1 October 2019 at 21:48:08, Chris Mattmann (mattm...@apache.org) wrote: Pom shouldn’t be a blocker. Here is my Java version am I using the right one? pomodoro:oodt mattmann$ java -version openjdk version "12.0.1" 2019-04-16 OpenJDK Runtime Environment (build 12.0.1+12) OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing) pomodoro:oodt mattmann$ Should I switch? From: Tom Barber <t...@spicule.co.uk> Reply-To: <dev@oodt.apache.org> Date: Tuesday, October 1, 2019 at 1:41 PM To: <dev@oodt.apache.org>, Imesha Sudasingha <ime...@apache.org> Subject: Re: [VOTE] OODT 1.9 RC 4 Results : Tests run: 65, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 14.723 s [INFO] Finished at: 2019-10-01T22:39:58+02:00 [INFO] Final Memory: 15M/353M [INFO] ------------------------------------------------------------------------ (superset) bugg@spicule-dev:~/oodt/commons> So I can’t replicate Chris’ test failure either, and you’re right Imesha the pom asc appears to be a copy of the pom, but I’ve not touched it so I don’t know why that would be. Does a missing pom asc mean a failed release? I’ve honestly no idea. It would be easier to fix these in 2.x. Tom On 1 October 2019 at 19:36:43, Imesha Sudasingha (ime...@apache.org) wrote: Hi Tom, Thanks for the release. Builds fine for me. One concern: oodt-1.9.pom.asc seems to be a copy of the pom itself. Not the signature Could you check that? Thanks, Imesha On Tue, 1 Oct 2019 at 10:32, Chris Mattmann <mattm...@apache.org> wrote: Release checks out, but I get a test error: Running org.apache.oodt.commons.util.XMLTest Tests run: 9, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.323 sec <<< FAILURE! Running org.apache.oodt.commons.io.FixedBufferOutputStreamTest Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.031 sec Running org.apache.oodt.commons.MultiServerTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.177 sec Running org.apache.oodt.commons.util.Base64Test Tests run: 1, Failures: Here is the RC verify checksums and MD5, and SIG: pomodoro:apache-oodt-1.9 mattmann$ /Users/mattmann/bin/stage_apache_rc apache-oodt 1.9-src https://dist.apache.org/repos/dist/dev/oodt/ % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 14.6M 100 14.6M 0 0 1869k 0 0:00:08 0:00:08 --:--:-- 1948k % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 473 100 473 0 0 2654 0 --:--:-- --:--:-- --:--:-- 2657 pomodoro:apache-oodt-1.9 mattmann$ ls apache-oodt-1.9-src.zip apache-oodt-1.9-src.zip.asc pomodoro:apache-oodt-1.9 mattmann$ $HOME/bin/verify_gpg_sigs Verifying Signature for file apache-oodt-1.9-src.zip.asc gpg: assuming signed data in 'apache-oodt-1.9-src.zip' gpg: Signature made Mon Sep 30 06:40:14 2019 PDT gpg: using RSA key AC57783AB30355CA gpg: Can't check signature: No public key pomodoro:apache-oodt-1.9 mattmann$ curl -O https://raw.githubusercontent.com/apache/oodt/master/KEYS % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 26954 100 26954 0 0 68787 0 --:--:-- --:--:-- --:--:-- 68936 pomodoro:apache-oodt-1.9 mattmann$ gpg --import < KEY -bash: KEY: No such file or directory pomodoro:apache-oodt-1.9 mattmann$ gpg --import < KEYS gpg: key 70F09CC6B876884A: "Chris Mattmann (CODE SIGNING KEY) < mattm...@apache.org>" not changed gpg: key 170B657EF9D98BFA: public key "Sean Colin-Patrick Kelly (CODE SIGNING KEY) <ke...@apache.org>" imported gpg: key 11911679FF5B0BD5: public key "David Woollard (CODE SIGNING KEY) < wooll...@apache.org>" imported gpg: key A5DBC0182C47D568: public key "Paul Michael Ramirez (CODE SIGNING KEY) <prami...@apache.org>" imported gpg: key 7189700880EF652D: public key "Andrew Hart (CODE SIGNING KEY) < ah...@apache.org>" imported gpg: key D8167171783CE7BB: public key "Tom Barber (CODE SIGNING KEY) < magicaltr...@apache.org>" imported gpg: key 4EAAF8B60C1E654B: "Chris Mattmann (CODE SIGNING KEY - Apr 2016) < mattm...@apache.org>" not changed gpg: key 2B12271BFD01FEDB: "Chris Mattmann <mattm...@apache.org>" not changed gpg: key AC57783AB30355CA: public key "Tom Barber < magicaltr...@apache.org>" imported gpg: Total number processed: 9 gpg: imported: 6 gpg: unchanged: 3 pomodoro:apache-oodt-1.9 mattmann$ ls KEYS apache-oodt-1.9-src.zip apache-oodt-1.9-src.zip.asc pomodoro:apache-oodt-1.9 mattmann$ $HOME/bin/verify_gpg_sigs Verifying Signature for file apache-oodt-1.9-src.zip.asc gpg: assuming signed data in 'apache-oodt-1.9-src.zip' gpg: Signature made Mon Sep 30 06:40:14 2019 PDT gpg: using RSA key AC57783AB30355CA gpg: Good signature from "Tom Barber <magicaltr...@apache.org>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 65C4 6FC2 31C7 756A E60D B307 AC57 783A B303 55CA pomodoro:apache-oodt-1.9 mattmann$ verify_md5_sigs -bash: verify_md5_sigs: command not found pomodoro:apache-oodt-1.9 mattmann$ verify_md5_checksums -bash: verify_md5_checksums: command not found pomodoro:apache-oodt-1.9 mattmann$ $HOME/bin/verify_md5_checksums md5sum: '*.tar.gz': No such file or directory md5sum: '*.bz2': No such file or directory md5sum: '*.tgz': No such file or directory apache-oodt-1.9-src.zip: OK pomodoro:apache-oodt-1.9 mattmann$ Can you please recheck why the test is failing? pomodoro:oodt mattmann$ cat commons/target/surefire-reports/TEST-org.apache.oodt.commons.util.XMLTest.xml <?xml version="1.0" encoding="UTF-8" ?> <testsuite tests="9" failures="1" name="org.apache.oodt.commons.util.XMLTest" time="0.319" errors="0" skipped="0"> <properties> <property name="java.runtime.name" value="OpenJDK Runtime Environment"/> <property name="java.vm.version" value="12.0.1+12"/> <property name="sun.boot.library.path" value="/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home/lib"/> <property name="maven.multiModuleProjectDirectory" value="/Users/mattmann/git/oodt"/> <property name="java.vm.vendor" value="Oracle Corporation"/> <property name="java.vendor.url" value="https://java.oracle.com/"/> <property name="guice.disable.misplaced.annotation.check" value="true"/> <property name="path.separator" value=":"/> <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/> <property name="java.util.logging.config.file" value="/Users/mattmann/git/oodt/commons/src/test/resources/test.logging.properties"/> <property name="user.country" value="US"/> <property name="sun.java.launcher" value="SUN_STANDARD"/> <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/> <property name="user.dir" value="/Users/mattmann/git/oodt/commons"/> <property name="java.vm.compressedOopsMode" value="Zero based"/> <property name="java.runtime.version" value="12.0.1+12"/> <property name="java.awt.graphicsenv" value="sun.awt.CGraphicsEnvironment"/> <property name="basedir" value="/Users/mattmann/git/oodt/commons"/> <property name="os.arch" value="x86_64"/> <property name="java.io.tmpdir" value="/var/folders/n5/1d_k3z4s2293q8ntx_n8sw54mm5n_8/T/"/> <property name="line.separator" value=" "/> <property name="java.vm.specification.vendor" value="Oracle Corporation"/> <property name="os.name" value="Mac OS X"/> <property name="classworlds.conf" value="/usr/local/Cellar/maven/3.6.1/libexec/bin/m2.conf"/> <property name="sun.jnu.encoding" value="UTF-8"/> <property name="java.library.path" value="/Users/mattmann/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/> <property name="maven.conf" value="/usr/local/Cellar/maven/3.6.1/libexec/conf"/> <property name="jdk.debug" value="release"/> <property name="java.class.version" value="56.0"/> <property name="java.specification.name" value="Java Platform API Specification"/> <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/> <property name="os.version" value="10.14.6"/> <property name="library.jansi.path" value="/usr/local/Cellar/maven/3.6.1/libexec/lib/jansi-native"/> <property name="user.home" value="/Users/mattmann"/> <property name="user.timezone" value="America/Los_Angeles"/> <property name="file.encoding" value="UTF-8"/> <property name="java.specification.version" value="12"/> <property name="user.name" value="mattmann"/> <property name="java.class.path" value="/usr/local/Cellar/maven/3.6.1/libexec/boot/plexus-classworlds-2.6.0.jar"/> <property name="java.vm.specification.version" value="12"/> <property name="sun.arch.data.model" value="64"/> <property name="sun.java.command" value="org.codehaus.plexus.classworlds.launcher.Launcher clean install"/> <property name="java.home" value="/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home"/> <property name="user.language" value="en"/> <property name="java.specification.vendor" value="Oracle Corporation"/> <property name="awt.toolkit" value="sun.lwawt.macosx.LWCToolkit"/> <property name="java.vm.info" value="mixed mode, sharing"/> <property name="java.version" value="12.0.1"/> <property name="java.vendor" value="Oracle Corporation"/> <property name="maven.home" value="/usr/local/Cellar/maven/3.6.1/libexec"/> <property name="localRepository" value="/Users/mattmann/.m2/repository"/> <property name="file.separator" value="/"/> <property name="java.version.date" value="2019-04-16"/> <property name="java.vendor.url.bug" value=" https://bugreport.java.com/bugreport/"/> <property name="sun.io.unicode.encoding" value="UnicodeBig"/> <property name="sun.cpu.endian" value="little"/> </properties> <testcase name="testDOM" time="0.281"> <failure message="Stringified DOM document CRC mismatch, got value = 2790989364" type="junit.framework.AssertionFailedError">junit.framework.AssertionFailedError: Stringified DOM document CRC mismatch, got value = 2790989364 at junit.framework.Assert.fail(Assert.java:57) at junit.framework.Assert.assertTrue(Assert.java:22) at junit.framework.TestCase.assertTrue(TestCase.java:192) at org.apache.oodt.commons.util.XMLTest.testDOM(XMLTest.java:62) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at junit.framework.TestCase.runTest(TestCase.java:176) at junit.framework.TestCase.runBare(TestCase.java:141) at junit.framework.TestResult$1.protect(TestResult.java:122) at junit.framework.TestResult.runProtected(TestResult.java:142) at junit.framework.TestResult.run(TestResult.java:125) at junit.framework.TestCase.run(TestCase.java:129) at junit.framework.TestSuite.runTest(TestSuite.java:252) at junit.framework.TestSuite.run(TestSuite.java:247) at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86) 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:165) at org.apache.maven.surefire.Surefire.run(Surefire.java:107) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:285) at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:976) </failure> </testcase> <testcase name="testDump" time="0.004"/> <testcase name="testDocumentCreation" time="0.001"/> <testcase name="testSAXParser" time="0.003"/> <testcase name="testAddObject" time="0.001"/> <testcase name="testAddString" time="0.001"/> <testcase name="testUnwrappedText" time="0.002"/> <testcase name="testGetDOMImplementation" time="0.004"/> <testcase name="testEscape" time="0"/> </testsuite>pomodoro:oodt mattmann$ Cheers, Chris From: Tom Barber <t...@spicule.co.uk> Reply-To: <dev@oodt.apache.org> Date: Monday, September 30, 2019 at 6:57 AM To: <dev@oodt.apache.org> Subject: [VOTE] OODT 1.9 RC 4 Hi Folks, I have posted a 4th release candidate for the Apache OODT 1.9 release. The source code is at: https://dist.apache.org/repos/dist/dev/oodt/ For more detailed information, see the included CHANGES.txt file for details on release contents and latest changes. The release was made using the OODT release process, documented on the Wiki here: https://cwiki.apache.org/confluence/display/OODT/Release+Process The release was made from the OODT 1.9 tag (a825085) at: https://github.com/apache/oodt/tree/1.9 A staged Maven repository is available at: https://repository.apache.org/content/repositories/orgapacheoodt-1023 Please vote on releasing these packages as Apache OODT 1.9. The vote is open for at least the next 72 hours. Only votes from OODT PMC are binding, but folks are welcome to check the release candidate and voice their approval or disapproval. The vote passes if at least three binding +1 votes are cast. [ ] +1 Release the packages as Apache OODT <version> [ ] -1 Do not release the packages because... Thanks! Tom P.S. Here is my +1. -- Spicule Limited is registered in England & Wales. Company Number: 09954122. Registered office: First Floor, Telecom House, 125-135 Preston Road, Brighton, England, BN1 6AF. VAT No. 251478891. All engagements are subject to Spicule Terms and Conditions of Business. This email and its contents are intended solely for the individual to whom it is addressed and may contain information that is confidential, privileged or otherwise protected from disclosure, distributing or copying. Any views or opinions presented in this email are solely those of the author and do not necessarily represent those of Spicule Limited. The company accepts no liability for any damage caused by any virus transmitted by this email. If you have received this message in error, please notify us immediately by reply email before deleting it from your system. Service of legal notice cannot be effected on Spicule Limited by email. -- Spicule Limited is registered in England & Wales. Company Number: 09954122. Registered office: First Floor, Telecom House, 125-135 Preston Road, Brighton, England, BN1 6AF. VAT No. 251478891. All engagements are subject to Spicule Terms and Conditions of Business. This email and its contents are intended solely for the individual to whom it is addressed and may contain information that is confidential, privileged or otherwise protected from disclosure, distributing or copying. Any views or opinions presented in this email are solely those of the author and do not necessarily represent those of Spicule Limited. The company accepts no liability for any damage caused by any virus transmitted by this email. If you have received this message in error, please notify us immediately by reply email before deleting it from your system. Service of legal notice cannot be effected on Spicule Limited by email. -- Spicule Limited is registered in England & Wales. Company Number: 09954122. Registered office: First Floor, Telecom House, 125-135 Preston Road, Brighton, England, BN1 6AF. VAT No. 251478891. All engagements are subject to Spicule Terms and Conditions of Business. This email and its contents are intended solely for the individual to whom it is addressed and may contain information that is confidential, privileged or otherwise protected from disclosure, distributing or copying. Any views or opinions presented in this email are solely those of the author and do not necessarily represent those of Spicule Limited. The company accepts no liability for any damage caused by any virus transmitted by this email. If you have received this message in error, please notify us immediately by reply email before deleting it from your system. Service of legal notice cannot be effected on Spicule Limited by email. -- Spicule Limited is registered in England & Wales. Company Number: 09954122. Registered office: First Floor, Telecom House, 125-135 Preston Road, Brighton, England, BN1 6AF. VAT No. 251478891. All engagements are subject to Spicule Terms and Conditions of Business. This email and its contents are intended solely for the individual to whom it is addressed and may contain information that is confidential, privileged or otherwise protected from disclosure, distributing or copying. Any views or opinions presented in this email are solely those of the author and do not necessarily represent those of Spicule Limited. The company accepts no liability for any damage caused by any virus transmitted by this email. If you have received this message in error, please notify us immediately by reply email before deleting it from your system. Service of legal notice cannot be effected on Spicule Limited by email. -- Spicule Limited is registered in England & Wales. Company Number: 09954122. Registered office: First Floor, Telecom House, 125-135 Preston Road, Brighton, England, BN1 6AF. VAT No. 251478891. All engagements are subject to Spicule Terms and Conditions of Business. This email and its contents are intended solely for the individual to whom it is addressed and may contain information that is confidential, privileged or otherwise protected from disclosure, distributing or copying. Any views or opinions presented in this email are solely those of the author and do not necessarily represent those of Spicule Limited. The company accepts no liability for any damage caused by any virus transmitted by this email. If you have received this message in error, please notify us immediately by reply email before deleting it from your system. Service of legal notice cannot be effected on Spicule Limited by email. -- Spicule Limited is registered in England & Wales. Company Number: 09954122. Registered office: First Floor, Telecom House, 125-135 Preston Road, Brighton, England, BN1 6AF. VAT No. 251478891. All engagements are subject to Spicule Terms and Conditions of Business. This email and its contents are intended solely for the individual to whom it is addressed and may contain information that is confidential, privileged or otherwise protected from disclosure, distributing or copying. Any views or opinions presented in this email are solely those of the author and do not necessarily represent those of Spicule Limited. The company accepts no liability for any damage caused by any virus transmitted by this email. If you have received this message in error, please notify us immediately by reply email before deleting it from your system. Service of legal notice cannot be effected on Spicule Limited by email. -- Spicule Limited is registered in England & Wales. Company Number: 09954122. Registered office: First Floor, Telecom House, 125-135 Preston Road, Brighton, England, BN1 6AF. VAT No. 251478891. All engagements are subject to Spicule Terms and Conditions of Business. This email and its contents are intended solely for the individual to whom it is addressed and may contain information that is confidential, privileged or otherwise protected from disclosure, distributing or copying. Any views or opinions presented in this email are solely those of the author and do not necessarily represent those of Spicule Limited. The company accepts no liability for any damage caused by any virus transmitted by this email. If you have received this message in error, please notify us immediately by reply email before deleting it from your system. Service of legal notice cannot be effected on Spicule Limited by email.