From ea850ec2359245e8cd8ba05d8f93d7631877c6b4 Mon Sep 17 00:00:00 2001 From: Koen Aers Date: Sat, 1 Jul 2023 13:38:39 +0200 Subject: [PATCH] HBX-2390: Create a JBoss Tools adaptation layer in Hibernate Tools - Add new test case 'org.hibernate.tool.orm.jbt.wrp.ValueWrapperFactoryTest#testGetKey()' - Fix bug in method 'org.hibernate.tool.orm.jbt.wrp.ValueWrapperFactory.ValueWrapperInvocationHandler#invoke(...)' Signed-off-by: Koen Aers --- .../tool/orm/jbt/wrp/ValueWrapperFactory.java | 2 +- .../tool/orm/jbt/wrp/ValueWrapperFactoryTest.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/ValueWrapperFactory.java b/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/ValueWrapperFactory.java index 3986e32f1a..5161d71803 100644 --- a/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/ValueWrapperFactory.java +++ b/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/ValueWrapperFactory.java @@ -120,7 +120,7 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl Method valueClassMethod = lookupMethodInValueClass(extendedValue, method); if (valueClassMethod != null) { result = valueClassMethod.invoke(extendedValue, args); - if (result != null && valueClassMethod.getReturnType().isAssignableFrom(Value.class)) { + if (result != null && Value.class.isAssignableFrom(method.getReturnType())) { result = ValueWrapperFactory.createValueWrapper((Value)result); } } else { diff --git a/jbt/src/test/java/org/hibernate/tool/orm/jbt/wrp/ValueWrapperFactoryTest.java b/jbt/src/test/java/org/hibernate/tool/orm/jbt/wrp/ValueWrapperFactoryTest.java index f15779d222..393b410334 100644 --- a/jbt/src/test/java/org/hibernate/tool/orm/jbt/wrp/ValueWrapperFactoryTest.java +++ b/jbt/src/test/java/org/hibernate/tool/orm/jbt/wrp/ValueWrapperFactoryTest.java @@ -5,6 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertSame; import org.hibernate.mapping.BasicValue; +import org.hibernate.mapping.KeyValue; import org.hibernate.mapping.List; import org.hibernate.mapping.Value; import org.hibernate.tool.orm.jbt.util.DummyMetadataBuildingContext; @@ -43,4 +44,15 @@ public void testGetCollectionElement() { assertNull(valueWrapper.getCollectionElement()); } + @Test + public void testGetKey() { + List valueTarget = new List(DummyMetadataBuildingContext.INSTANCE, null); + KeyValue keyValue = new BasicValue(DummyMetadataBuildingContext.INSTANCE); + ValueWrapper valueWrapper = ValueWrapperFactory.createValueWrapper(valueTarget); + valueTarget.setKey(keyValue); + assertSame(keyValue, ((Wrapper)valueWrapper.getKey()).getWrappedObject()); + valueTarget.setKey(null); + assertNull(valueWrapper.getKey()); + } + }