-
Bug
-
Resolution: Unresolved
-
P3
-
8, 9, 10, 11, 13, 14, 15
import java.beans.*;
public class InhTest {
public static class C extends CBase {
private int x;
@BeanProperty(
hidden = false,
preferred = false,
description = "C x Description"
)
@Override
public int getX() { return x; }
@Override
public void setX(int v) { x = v; }
}
public static class CBase {
private int x;
@BeanProperty(
hidden = true,
preferred = true,
description = "CBase x Description"
)
public int getX() { return x; }
public void setX(int v) { x = v; }
}
public static class D extends DBase {
private int x;
@Override
public int getX() { return x; }
@Override
public void setX(int v) { x = v; }
}
public static class DBeanInfo extends SimpleBeanInfo {
@Override
public BeanDescriptor getBeanDescriptor() {
return new BeanDescriptor(D.class, null);
}
@Override
public PropertyDescriptor[] getPropertyDescriptors() {
PropertyDescriptor[] p = new PropertyDescriptor[1];
try {
p[0] = new PropertyDescriptor ("x", D.class, "getX", null);
p[0].setHidden(false);
p[0].setPreferred(false);
p[0].setShortDescription("D x Description");
}
catch(IntrospectionException e) {
e.printStackTrace();
}
return p;
}
@Override
public EventSetDescriptor[] getEventSetDescriptors() { return new EventSetDescriptor[0]; }
@Override
public MethodDescriptor[] getMethodDescriptors() {
MethodDescriptor[] m = new MethodDescriptor[1];
try {
m[0] = new MethodDescriptor(D.class.getMethod("setX", new Class[] {int.class}));
m[0].setDisplayName("");
}
catch( NoSuchMethodException | SecurityException e) {}
return m;
}
@Override
public int getDefaultPropertyIndex() { return -1; }
@Override
public int getDefaultEventIndex() { return -1; }
@Override
public java.awt.Image getIcon(int iconKind) { return null; }
}
public static class DBase {
private int x;
public int getX() { return x; }
public void setX(int v) { x = v; }
}
public static class DBaseBeanInfo extends SimpleBeanInfo {
@Override
public BeanDescriptor getBeanDescriptor() {
return new BeanDescriptor(DBase.class, null);
}
@Override
public PropertyDescriptor[] getPropertyDescriptors() {
PropertyDescriptor[] p = new PropertyDescriptor[1];
try {
p[0] = new PropertyDescriptor ("x", DBase.class, "getX", null);
p[0].setHidden(true);
p[0].setPreferred(true);
p[0].setShortDescription("DBase x Description");
}
catch(IntrospectionException e) {
e.printStackTrace();
}
return p;
}
@Override
public EventSetDescriptor[] getEventSetDescriptors() { return new EventSetDescriptor[0]; }
@Override
public MethodDescriptor[] getMethodDescriptors() {
MethodDescriptor[] m = new MethodDescriptor[1];
try {
m[0] = new MethodDescriptor(DBase.class.getMethod("setX", new Class[] {int.class}));
m[0].setDisplayName("");
}
catch( NoSuchMethodException | SecurityException e) {}
return m;
}
@Override
public int getDefaultPropertyIndex() { return -1; }
@Override
public int getDefaultEventIndex() { return -1; }
@Override
public java.awt.Image getIcon(int iconKind) { return null; }
}
static void Test(Class<?> c) throws Exception {
System.out.println("test " + c.getSimpleName() + ":");
BeanInfo i = Introspector.getBeanInfo(c, Object.class);
PropertyDescriptor d = i.getPropertyDescriptors()[0];
System.out.println(d.getShortDescription());
System.out.println(d.isHidden());
System.out.println(d.isPreferred());
System.out.println("");
}
public static void main(String[] args) throws Exception {
Test(C.class);
Test(D.class);
}
}
Output (Win 7, JDK9b72):
test C:
C x Description
true
true
test D:
D x Description
false
false
So it seems that the base description for C was overwritten; but the "hidden" and "preferred" info - was not.
the expected (?) output for C:
test C:
C x Description
false
false
(as for D)
- duplicates
-
JDK-8134465 Two java/beans/Introspector test failing across platforms
- Closed
- relates to
-
JDK-8134521 Problem list failing java/beans/Introspector test
- Resolved
-
JDK-8155021 [TEST] create one more inheritance test for @BeanProperty
- Resolved
-
JDK-8132669 @BeanInfo: what is the priority of bean info if the annotated class extends some class having a user-defined BeanInfo class?
- Open
-
JDK-8133563 @SwingContainer annotation: should we inherit the info?
- Open
-
JDK-8132566 [TESTBUG] add regression test for inherited classes with the new bean annotations.
- Resolved