thank you, "unproxy" worked great. Not sure why it wasn't there already as I didn't change this area, apparently it was unlikely to receive a proxy in this method. Sanne
2010/12/1 Emmanuel Bernard <emman...@hibernate.org>: > This exception in general can have a bunch of causes. > > In you case though, in Hibernate Search there are several tools at your > disposal. All in HibernateHelper. > For the most part they abstract away Hibernate calls for when we will make > Hibernate Search fully independent of Hibernate Core. > > unproxy: returns this or the underlying implementation behind the proxy > (could initialize the proxy by side effect) > getClass: returns the entity class (even in case of proxies) > initialize: intialize the proxy or the collection > isInitialized: returns true if the proxy or the collection is initialized > getClassFromWork: returns the entity class for a given work (probably should > be put somewhere else when we abstract Hibernate truly. > > Emmanuel > > On 30 nov. 2010, at 21:20, Sanne Grinovero wrote: > >> Hello, >> I'm blocked by the exception mentioned in the subject, this is also >> affecting my work in Search: >> with the new design I need the object identifier more often than before, and >> even our own org.hibernate.search.test.proxy.ProxyTest fails. >> >> Searching for similar exceptions I found many users asking for help >> about the same error, also some >> comments are quite recent so it would be nice to find a general solution: >> >> HHH-5280 >> HHH-3399 >> HHH-1953 >> HHH-4064 >> https://forum.hibernate.org/viewtopic.php?t=979408 >> >> The error is that I'm invoking getId() via reflection, but the entity >> instance is actually a javassist proxy. >> >> Shouldn't org.hibernate.annotations.common.reflection.java.JavaXProperty >> "shield" our code from this kind >> of complexities? >> >> Suggestions to proceed? >> Sanne >> >> stacktrace follows: >> >> org.hibernate.HibernateException: Error while indexing in Hibernate >> Search (before transaction completion) >> at >> org.hibernate.search.backend.impl.EventSourceTransactionContext$DelegateToSynchronizationOnBeforeTx.doBeforeTransactionCompletion(EventSourceTransactionContext.java:175) >> at >> org.hibernate.engine.ActionQueue$BeforeTransactionCompletionProcessQueue.beforeTransactionCompletion(ActionQueue.java:543) >> at >> org.hibernate.engine.ActionQueue.beforeTransactionCompletion(ActionQueue.java:216) >> at >> org.hibernate.impl.SessionImpl.beforeTransactionCompletion(SessionImpl.java:571) >> at >> org.hibernate.jdbc.JDBCContext.beforeTransactionCompletion(JDBCContext.java:250) >> at >> org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:138) >> at >> org.hibernate.search.test.proxy.ProxyTest.testProxy(ProxyTest.java:63) >> 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:597) >> at junit.framework.TestCase.runTest(TestCase.java:154) >> at >> org.hibernate.testing.junit.functional.annotations.HibernateTestCase.runTest(HibernateTestCase.java:97) >> at >> org.hibernate.testing.junit.functional.annotations.HibernateTestCase.runBare(HibernateTestCase.java:85) >> at junit.framework.TestResult$1.protect(TestResult.java:106) >> at junit.framework.TestResult.runProtected(TestResult.java:124) >> at junit.framework.TestResult.run(TestResult.java:109) >> at junit.framework.TestCase.run(TestCase.java:118) >> at junit.framework.TestSuite.runTest(TestSuite.java:208) >> at junit.framework.TestSuite.run(TestSuite.java:203) >> at >> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) >> at >> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) >> Caused by: java.lang.IllegalStateException: Could not get property value >> at >> org.hibernate.search.util.ReflectionHelper.getMemberValue(ReflectionHelper.java:94) >> at >> org.hibernate.search.engine.DocumentBuilderIndexedEntity.getIndexingId(DocumentBuilderIndexedEntity.java:699) >> at >> org.hibernate.search.engine.WorkPlan$PerClassWork.recurseContainedIn(WorkPlan.java:136) >> at >> org.hibernate.search.engine.WorkPlan.recurseContainedIn(WorkPlan.java:69) >> at >> org.hibernate.search.engine.AbstractDocumentBuilder.processSingleContainedInInstance(AbstractDocumentBuilder.java:773) >> at >> org.hibernate.search.engine.AbstractDocumentBuilder.processContainedInInstances(AbstractDocumentBuilder.java:322) >> at >> org.hibernate.search.engine.WorkPlan$PerEntityWork.processContainedIn(WorkPlan.java:268) >> at >> org.hibernate.search.engine.WorkPlan$PerClassWork.processContainedIn(WorkPlan.java:130) >> at >> org.hibernate.search.engine.WorkPlan.processContainedIn(WorkPlan.java:62) >> at >> org.hibernate.search.backend.impl.BatchedQueueingProcessor.prepareWorks(BatchedQueueingProcessor.java:150) >> at >> org.hibernate.search.backend.impl.PostTransactionWorkQueueSynchronization.beforeCompletion(PostTransactionWorkQueueSynchronization.java:86) >> at >> org.hibernate.search.backend.impl.EventSourceTransactionContext$DelegateToSynchronizationOnBeforeTx.doBeforeTransactionCompletion(EventSourceTransactionContext.java:172) >> ... 25 more >> Caused by: java.lang.IllegalArgumentException: Invoking id with wrong >> parameters >> at >> org.hibernate.annotations.common.reflection.java.JavaXProperty.invoke(JavaXProperty.java:84) >> at >> org.hibernate.search.util.ReflectionHelper.getMemberValue(ReflectionHelper.java:91) >> ... 36 more >> Caused by: java.lang.IllegalArgumentException: object is not an >> instance of declaring class >> 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:597) >> at >> org.hibernate.annotations.common.reflection.java.JavaXProperty.invoke(JavaXProperty.java:74) >> ... 37 more >> _______________________________________________ >> hibernate-dev mailing list >> hibernate-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/hibernate-dev > > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev