Or just write a PropertyAccessor implementation for Scala vars? That should do the trick.
Cheers, Viktor On Wed, Sep 10, 2008 at 3:22 PM, Derek Chen-Becker <[EMAIL PROTECTED]>wrote: > Two lines lower it looks like it's trying to fetch the value > (ClassValidator.getMemberValue), but name_$eq is the setter for a value, not > the getter. That's probably why it's coming up with the error "wrong number > of arguments". You might try adding an explicit "getter" for the property > you want to validate and put the annotation there to see if that works. The > @BeanProperty Scala annotation might be enough to force the use ofr get/set > by the Validator framework. Just a guess at this point. > > Derek > > > On Wed, Sep 10, 2008 at 3:47 AM, Tim Perrett <[EMAIL PROTECTED]> wrote: > >> >> Out of interest, I tried playing around with hibernate-validator on >> this demo to see if it works, and (as you can see below), it doesnt. >> >> Any ideas why its doing this? >> >> Looking at the compiled bytecode, its trying to invoke the synthesized >> method "name_$eq(String x$1)", and for some reason, failing to call it >> properly. >> >> Anyone else's input would be interesting :) >> >> Cheers >> >> Tim >> >> >> >> >> ------------------------------------------------------------------------------- >> Test set: com.foo.jpaweb.model.TestJPAWeb >> >> ------------------------------------------------------------------------------- >> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.598 >> sec <<< FAILURE! >> save_stuff(com.foo.jpaweb.model.TestJPAWeb) Time elapsed: 1.554 sec >> <<< ERROR! >> java.lang.IllegalStateException: Could not get property value >> at >> org.hibernate.validator.ClassValidator.getMemberValue(ClassValidator.java: >> 537) >> at >> >> org.hibernate.validator.ClassValidator.getInvalidValues(ClassValidator.java: >> 383) >> at >> >> org.hibernate.validator.ClassValidator.getInvalidValues(ClassValidator.java: >> 351) >> at >> >> org.hibernate.validator.event.ValidateEventListener.validate(ValidateEventListener.java: >> 139) >> at >> >> org.hibernate.validator.event.ValidateEventListener.onPreInsert(ValidateEventListener.java: >> 172) >> at >> >> org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java: >> 119) >> at >> >> org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java: >> 42) >> at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250) >> at >> >> org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java: >> 298) >> at >> >> org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java: >> 181) >> at >> >> org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java: >> 107) >> at >> >> org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java: >> 49) >> at >> >> org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java: >> 131) >> at >> >> org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java: >> 87) >> at >> >> org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java: >> 38) >> at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618) >> at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592) >> at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596) >> at >> >> org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java: >> 213) >> at com.foo.jpaweb.model.TestJPAWeb.save_stuff(TestJPAWeb.scala:34) >> 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:585) >> at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59) >> at >> org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java: >> 98) >> at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java: >> 79) >> at >> >> org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java: >> 87) >> at >> org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java: >> 77) >> at >> org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42) >> at >> >> org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java: >> 88) >> at >> >> org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java: >> 51) >> at org.junit.internal.runners.JUnit4ClassRunner >> $1.run(JUnit4ClassRunner.java:44) >> at >> org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java: >> 27) >> at >> org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java: >> 37) >> at >> org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java: >> 42) >> 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 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:585) >> at >> >> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java: >> 338) >> at >> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java: >> 997) >> Caused by: java.lang.IllegalArgumentException: Invoking name_$eq with >> wrong parameters >> at >> >> org.hibernate.annotations.common.reflection.java.JavaXMethod.invoke(JavaXMethod.java: >> 39) >> at >> org.hibernate.validator.ClassValidator.getMemberValue(ClassValidator.java: >> 534) >> ... 45 more >> Caused by: java.lang.IllegalArgumentException: wrong number of >> arguments >> 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:585) >> at >> >> org.hibernate.annotations.common.reflection.java.JavaXMethod.invoke(JavaXMethod.java: >> 33) >> >> >> >> > > > > -- Viktor Klang Senior Systems Analyst --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---