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.

Robustness.java 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.vaadin.tests.robustness;
  2. import com.vaadin.automatedtests.util.Log;
  3. import com.vaadin.tests.util.RandomComponents;
  4. import com.vaadin.ui.Button;
  5. import com.vaadin.ui.ComponentContainer;
  6. import com.vaadin.ui.Label;
  7. import com.vaadin.ui.Window;
  8. import com.vaadin.ui.Button.ClickEvent;
  9. public abstract class Robustness extends com.vaadin.Application implements
  10. Button.ClickListener {
  11. static int totalCount = 0;
  12. int count = 0;
  13. final Window main = new Window("Robustness tests by featurebrowser");
  14. Button close = new Button("Close application");
  15. Button remove = new Button("Remove all components");
  16. Button create = new Button("Create");
  17. Label label = new Label();
  18. ComponentContainer stressLayout;
  19. RandomComponents randomComponents = new RandomComponents();
  20. @Override
  21. public void init() {
  22. createNewView();
  23. }
  24. public void createNewView() {
  25. setMainWindow(main);
  26. main.removeAllComponents();
  27. main.addComponent(label);
  28. main.addComponent(close);
  29. main.addComponent(remove);
  30. main.addComponent(create);
  31. close.addListener(this);
  32. remove.addListener(this);
  33. create.addListener(this);
  34. remove.setDescription("After this garbage collector should"
  35. + " be able to collect every component"
  36. + " inside stressLayout.");
  37. close.setDebugId("close");
  38. remove.setDebugId("remove");
  39. create.setDebugId("create");
  40. }
  41. public void buttonClick(ClickEvent event) {
  42. if (event.getButton() == create) {
  43. create();
  44. } else if (event.getButton() == remove) {
  45. main.removeAllComponents();
  46. close.removeListener(this);
  47. remove.removeListener(this);
  48. create.removeListener(this);
  49. close = null;
  50. remove = null;
  51. create = null;
  52. label = null;
  53. stressLayout = null;
  54. System.out.println("main.getLayout()=" + main.getLayout());
  55. System.out.println(Log.getMemoryStatistics());
  56. } else if (event.getButton() == close) {
  57. System.out.println("Before close, memory statistics:");
  58. System.out.println(Log.getMemoryStatistics());
  59. close();
  60. // Still valueUnbound (session expiration) needs to occur for GC to
  61. // do its work
  62. System.out.println("After close, memory statistics:");
  63. System.out.println(Log.getMemoryStatistics());
  64. }
  65. }
  66. public abstract void create();
  67. }