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
-~----------~----~----~----~------~----~------~--~---

Reply via email to