Announcement Announcement Module
No announcement yet.
Spring 3.1.1 compilation Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Spring 3.1.1 compilation


    I'm trying to compile Spring 3.1.1 to verify a patch, and am running into problems. Even without my patch, a clean checkout + 'ant -f build-spring-framework/build.xml' fails in the ORM module. The beginning of the failure log is included below.

    Does this ring any bells? I know I'm being a bit old-school here; the patch works fine against the gradle-based Spring 3.2 build. But we're using 3.1.1 currently, so I'm interested in patching for both 3.2 and the old line.

    Is there any easy "right" way to just bypass the ORM module and only compile / test what I need, or is it an all-or-nothing proposition?

    The patch impacts spring-core, spring-web, and spring-webmvc.



        [junit] Testsuite: org.springframework.orm.hibernate3.HibernateJtaTransactionTests
        [junit] Tests run: 36, Failures: 0, Errors: 8, Time elapsed: 0.319 sec
        [junit] ------------- Standard Error -----------------
        [junit] SLF4J: slf4j-api 1.6.x (or later) is incompatible with this binding.
        [junit] SLF4J: Your binding is version 1.5.5 or earlier.
        [junit] SLF4J: Upgrade your binding to version 1.6.x. or 2.0.x
        [junit] ------------- ---------------- ---------------
        [junit] Testcase: testJtaTransactionCommitWithPreBound(org.springframework.orm.hibernate3.HibernateJtaTransactionTests):	Caused an ERROR
        [junit] org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;
        [junit] java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;
        [junit] 	at org.slf4j.LoggerFactory.bind(
        [junit] 	at org.slf4j.LoggerFactory.performInitialization(
        [junit] 	at org.slf4j.LoggerFactory.getILoggerFactory(
        [junit] 	at org.slf4j.LoggerFactory.getLogger(
        [junit] 	at org.slf4j.LoggerFactory.getLogger(
        [junit] 	at org.hibernate.engine.QueryParameters.<clinit>(
        [junit] 	at java.lang.Class.forName0(Native Method)
        [junit] 	at java.lang.Class.forName(
        [junit] 	at $Proxy12.<clinit>(Unknown Source)
        [junit] 	at java.lang.reflect.Constructor.newInstance(
        [junit] 	at java.lang.reflect.Proxy.newProxyInstance(
        [junit] 	at org.easymock.internal.JavaProxyFactory.createProxy(
        [junit] 	at org.easymock.internal.MocksControl.createMock(
        [junit] 	at org.easymock.MockControl.<init>(
        [junit] 	at org.easymock.MockControl.createControl(
        [junit] 	at org.springframework.orm.hibernate3.HibernateJtaTransactionTests.doTestJtaTransactionCommitWithPreBound(
        [junit] 	at org.springframework.orm.hibernate3.HibernateJtaTransactionTests.testJtaTransactionCommitWithPreBound(

  • #2
    You need to update the SLF4J dependency from 1.5.3 to 1.6.1 the test and orm modules in ivy.xml:

    <dependency org="org.slf4j" name="com.springsource.slf4j.jcl" rev="1.5.3" conf="test->runtime"/>
    <dependency org="org.slf4j" name="com.springsource.slf4j.jcl" rev="1.6.1" conf="test->runtime"/>

    Probably got missed while porting to 1.6 or some backport patch.