-
Bug
-
Resolution: Unresolved
-
P4
-
None
-
6
-
x86
-
windows_xp
FULL PRODUCT VERSION :
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]
A DESCRIPTION OF THE PROBLEM :
NPE occurs when using ZoneView as the view for an Editor Kit. Seems similar to bug 6459965 but with ZoneView instead of AsyncBoxView.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the attached code.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
For the JTextPane to load properly.
ACTUAL -
NullPointerException thrown.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.text.AsyncBoxView.preferenceChanged(AsyncBoxView.java:493)
at javax.swing.text.View.preferenceChanged(View.java:272)
at javax.swing.text.BoxView.preferenceChanged(BoxView.java:269)
at javax.swing.text.FlowView$FlowStrategy.insertUpdate(FlowView.java:356)
at javax.swing.text.FlowView.loadChildren(FlowView.java:126)
at javax.swing.text.CompositeView.setParent(CompositeView.java:122)
at javax.swing.text.FlowView.setParent(FlowView.java:272)
at javax.swing.text.ZoneView$Zone.loadChildren(ZoneView.java:432)
at javax.swing.text.AsyncBoxView.setParent(AsyncBoxView.java:461)
at javax.swing.text.CompositeView.replace(CompositeView.java:200)
at javax.swing.text.BoxView.replace(BoxView.java:164)
at javax.swing.text.View.append(View.java:401)
at javax.swing.text.ZoneView.loadChildren(ZoneView.java:220)
at javax.swing.text.CompositeView.setParent(CompositeView.java:122)
at javax.swing.plaf.basic.BasicTextUI$RootView.setView(BasicTextUI.java:1315)
at javax.swing.plaf.basic.BasicTextUI.setView(BasicTextUI.java:681)
at javax.swing.plaf.basic.BasicTextUI.modelChanged(BasicTextUI.java:670)
at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.propertyChange(BasicTextUI.java:1773)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
at java.awt.Component.firePropertyChange(Component.java:7868)
at javax.swing.text.JTextComponent.setDocument(JTextComponent.java:437)
at javax.swing.JTextPane.setDocument(JTextPane.java:119)
at javax.swing.JEditorPane.setEditorKit(JEditorPane.java:1097)
at javax.swing.JTextPane.setEditorKit(JTextPane.java:481)
at Test.init(Test.java:28)
at Test.<init>(Test.java:13)
at Test$1.run(Test.java:34)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
public class Test extends javax.swing.JFrame {
public Test() {
textPane = new javax.swing.JTextPane();
textPane.setEditorKit(new MyEditorKit());
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Test().setVisible(true);
}
});
}
class MyEditorKit extends javax.swing.text.StyledEditorKit
implements javax.swing.text.ViewFactory {
@Override
public javax.swing.text.ViewFactory getViewFactory() {
return this;
}
public javax.swing.text.View create(javax.swing.text.Element elem) {
String kind = elem.getName();
if ((kind != null) && (kind.equals(javax.swing.text.AbstractDocument.SectionElementName))) {
return new javax.swing.text.ZoneView(elem, javax.swing.text.View.Y_AXIS);
//return new javax.swing.text.AsyncBoxView(elem, javax.swing.text.View.Y_AXIS);
}
javax.swing.text.ViewFactory f = super.getViewFactory();
return f.create(elem);
}
}
private javax.swing.JTextPane textPane;
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Bug 6459965 seems to have a workaround in the comments but not personally tested.
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]
A DESCRIPTION OF THE PROBLEM :
NPE occurs when using ZoneView as the view for an Editor Kit. Seems similar to bug 6459965 but with ZoneView instead of AsyncBoxView.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the attached code.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
For the JTextPane to load properly.
ACTUAL -
NullPointerException thrown.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.text.AsyncBoxView.preferenceChanged(AsyncBoxView.java:493)
at javax.swing.text.View.preferenceChanged(View.java:272)
at javax.swing.text.BoxView.preferenceChanged(BoxView.java:269)
at javax.swing.text.FlowView$FlowStrategy.insertUpdate(FlowView.java:356)
at javax.swing.text.FlowView.loadChildren(FlowView.java:126)
at javax.swing.text.CompositeView.setParent(CompositeView.java:122)
at javax.swing.text.FlowView.setParent(FlowView.java:272)
at javax.swing.text.ZoneView$Zone.loadChildren(ZoneView.java:432)
at javax.swing.text.AsyncBoxView.setParent(AsyncBoxView.java:461)
at javax.swing.text.CompositeView.replace(CompositeView.java:200)
at javax.swing.text.BoxView.replace(BoxView.java:164)
at javax.swing.text.View.append(View.java:401)
at javax.swing.text.ZoneView.loadChildren(ZoneView.java:220)
at javax.swing.text.CompositeView.setParent(CompositeView.java:122)
at javax.swing.plaf.basic.BasicTextUI$RootView.setView(BasicTextUI.java:1315)
at javax.swing.plaf.basic.BasicTextUI.setView(BasicTextUI.java:681)
at javax.swing.plaf.basic.BasicTextUI.modelChanged(BasicTextUI.java:670)
at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.propertyChange(BasicTextUI.java:1773)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
at java.awt.Component.firePropertyChange(Component.java:7868)
at javax.swing.text.JTextComponent.setDocument(JTextComponent.java:437)
at javax.swing.JTextPane.setDocument(JTextPane.java:119)
at javax.swing.JEditorPane.setEditorKit(JEditorPane.java:1097)
at javax.swing.JTextPane.setEditorKit(JTextPane.java:481)
at Test.init(Test.java:28)
at Test.<init>(Test.java:13)
at Test$1.run(Test.java:34)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
public class Test extends javax.swing.JFrame {
public Test() {
textPane = new javax.swing.JTextPane();
textPane.setEditorKit(new MyEditorKit());
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Test().setVisible(true);
}
});
}
class MyEditorKit extends javax.swing.text.StyledEditorKit
implements javax.swing.text.ViewFactory {
@Override
public javax.swing.text.ViewFactory getViewFactory() {
return this;
}
public javax.swing.text.View create(javax.swing.text.Element elem) {
String kind = elem.getName();
if ((kind != null) && (kind.equals(javax.swing.text.AbstractDocument.SectionElementName))) {
return new javax.swing.text.ZoneView(elem, javax.swing.text.View.Y_AXIS);
//return new javax.swing.text.AsyncBoxView(elem, javax.swing.text.View.Y_AXIS);
}
javax.swing.text.ViewFactory f = super.getViewFactory();
return f.create(elem);
}
}
private javax.swing.JTextPane textPane;
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Bug 6459965 seems to have a workaround in the comments but not personally tested.
- relates to
-
JDK-6459965 AsyncBoxView use in Stylepad leads to NullPointerException
-
- Open
-