You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SaneErrors.java 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.vaadin.tests.components;
  2. import com.vaadin.event.ItemClickEvent;
  3. import com.vaadin.event.ItemClickEvent.ItemClickListener;
  4. import com.vaadin.server.VaadinRequest;
  5. import com.vaadin.ui.AbstractComponent;
  6. import com.vaadin.ui.Button;
  7. import com.vaadin.ui.Button.ClickEvent;
  8. import com.vaadin.ui.Button.ClickListener;
  9. import com.vaadin.ui.Label;
  10. import com.vaadin.ui.Table;
  11. import com.vaadin.ui.Table.RowHeaderMode;
  12. import com.vaadin.ui.VerticalLayout;
  13. public class SaneErrors extends AbstractTestUI {
  14. @Override
  15. protected void setup(VaadinRequest request) {
  16. final Button b = new Button("Show me my NPE!");
  17. b.addClickListener(new ClickListener() {
  18. @Override
  19. public void buttonClick(ClickEvent event) {
  20. throwError();
  21. }
  22. });
  23. /*
  24. * Errors from "legacy variable changes"
  25. */
  26. final Table table = new Table();
  27. table.addItem("Show me my NPE!");
  28. table.setRowHeaderMode(RowHeaderMode.ID);
  29. table.addItemClickListener(new ItemClickListener() {
  30. @Override
  31. public void itemClick(ItemClickEvent event) {
  32. throwError();
  33. }
  34. });
  35. final VerticalLayout content = new VerticalLayout(b, table);
  36. /**
  37. * Button that shows reported exception for TB integration test
  38. */
  39. Button button = new Button("Collect exceptions", new ClickListener() {
  40. @Override
  41. public void buttonClick(ClickEvent event) {
  42. reportException(b, content);
  43. reportException(table, content);
  44. }
  45. private void reportException(final AbstractComponent b,
  46. final VerticalLayout content) {
  47. String message = b.getErrorMessage().getFormattedHtmlMessage();
  48. message = message.replaceAll(".", ".");
  49. message = message.substring(message.indexOf("h2>") + 3,
  50. message.indexOf("
"));
  51. Label label = new Label(message);
  52. content.addComponent(label);
  53. }
  54. });
  55. content.addComponent(button);
  56. setContent(content);
  57. }
  58. private void throwError() {
  59. Object o = null;
  60. o.getClass();
  61. }
  62. @Override
  63. protected String getTestDescription() {
  64. return "Vaadin should by default report exceptions relevant for the developer.";
  65. }
  66. @Override
  67. protected Integer getTicketNumber() {
  68. return 11599;
  69. }
  70. }