I stripped out most dependencies and removed large amounts of code until it worked and then started adding the latest version of dependencies back in as I uncommented the code and they became necessary for compilation and testing.
I reached the end of this process without the error resurfacing.
These are the differences in my dependency list:
$ diff.exe orig.txt new.txt
3,4c3
< [INFO] cglib:cglib:jar:3.1:compile
< [INFO] cglib:cglib-nodep:jar:2.1_3:test
---
> [INFO] cglib:cglib-nodep:jar:2.2.2:test
14,15c13,14
< [INFO] commons-io:commons-io:jar:1.3.1:compile
< [INFO] commons-lang:commons-lang:jar:2.4:compile
---
> [INFO] commons-io:commons-io:jar:1.3.2:compile
> [INFO] commons-lang:commons-lang:jar:2.3:compile
47d45
< [INFO] org.apache.tomcat:jsp-api:jar:6.0.13:test
49d46
< [INFO] org.apache.tomcat:servlet-api:jar:6.0.13:test
51,54c48,49
< [INFO] org.aspectj:aspectjrt:jar:1.7.4:compile
< [INFO] org.easymock:easymock:jar:2.3:test
< [INFO] org.easymock:easymockclassextension:jar:2.2.2:test
< [INFO] org.eclipse.persistence:javax.persistence:jar:2.0.0:compile
---
> [INFO] org.easymock:easymock:jar:3.2:test
> [INFO] org.eclipse.persistence:eclipselink:jar:2.3.0:test
63,68c58,61
< [INFO] org.ow2.asm:asm:jar:4.2:compile
< [INFO] org.ow2.easybeans:easybeans-jpa-eclipselink:pom:1.2.1:compile
< [INFO] org.permacode:permacode:jar:1.0.0:compile
< [INFO] org.slf4j:jcl-over-slf4j:jar:1.7.6:runtime
< [INFO] org.slf4j:slf4j-api:jar:1.7.6:compile
< [INFO] org.slf4j:slf4j-simple:jar:1.6.1:compile
---
> [INFO] org.objenesis:objenesis:jar:1.3:test
> [INFO] org.ow2.easybeans:easybeans-jpa-eclipselink-dependency:pom:1.2.4:test
> [INFO] org.permacode:atomic-test-jar:jar:1.0.1:test
> [INFO] org.permacode:permacode:jar:1.0.1:compile
76c69
< [INFO] org.springframework:spring-test:jar:2.5.6:compile
---
> [INFO] org.springframework:spring-test:jar:3.2.8.RELEASE:test
78,79d70
< [INFO] org.springframework.data:spring-data-commons:jar:1.7.1.RELEASE:compile
< [INFO] org.springframework.data:spring-data-jpa:jar:1.5.1.RELEASE:compile
This is the maven dependency:list output so these are all my dependencies plus the resolved dependencies.
So cglib.jar is out and cglib-nodep is a later version.
Suspiciously, spring-test.jar is also updated because I explicitly depend on it now, otherwise it reverts to that older version. However that on its own doesn't create problems.
It's obviously not my priority to go back now and work out which of these changes solved the issue, I guess it could have been either or both of @raphw or @jhadesdev 's answers.