public void verify() {
   Employee distEmp = (Employee) getObjectFromDistributedSession(this.query);
   Enumeration enumtr = this.numbers.elements();
   while (enumtr.hasMoreElements()) {
     if (distEmp.getPhoneNumbers().contains(enumtr.nextElement())) {
       throw new org.eclipse.persistence.testing.framework.TestErrorException(
           "Failed to delete private owned objects from distributed cache");
     }
   }
 }
  public void test() {
    UnitOfWork uow = getSession().acquireUnitOfWork();
    UnitOfWork uow2 = getSession().acquireUnitOfWork();

    baseEmp = (Employee) uow.readObject(Employee.class);
    for (int count = 20; count > 0; --count) {
      baseEmp.addPhoneNumber(
          new PhoneNumber(String.valueOf(count), String.valueOf(count), "5555555"));
    }
    uow.commit();

    Runnable runnable1 =
        new Runnable() {
          public void run() {}
        };

    Runnable runnable2 =
        new Runnable() {
          public void run() {
            try {
              for (int count = 20; count > 0; --count) {
                UnitOfWork uow = getSession().acquireUnitOfWork();
                Employee emp = (Employee) uow.readObject(baseEmp);
                emp.getPhoneNumbers();
                uow.revertObject(emp);
              }
            } catch (ConcurrentModificationException ex) {
              exception = true;
            }
          }
        };
    Thread thread1 = new Thread(runnable2);
    thread1.start();
    try {
      for (int count = 20; count > 0; --count) {
        uow = getSession().acquireUnitOfWork();
        Employee emp = (Employee) uow.readObject(baseEmp);
        emp.getPhoneNumbers().remove(0);
        uow.commit();
      }
    } catch (ConcurrentModificationException ex) {
      exception = true;
    }
    try {
      thread1.join();
    } catch (InterruptedException ex) {
    }
  }
 public void setup() {
   super.setup();
   ExpressionBuilder employees = new ExpressionBuilder();
   expression = employees.get("firstName").equal("Charles");
   expression = expression.and(employees.get("lastName").equal("Chanley"));
   // ensure our employee is in one of the distributed caches
   DistributedServer server =
       (DistributedServer) DistributedServersModel.getDistributedServers().get(0);
   Object result = server.getDistributedSession().readObject(Employee.class, expression);
   ((Employee) result).getManagedEmployees();
   ((Employee) result).getPhoneNumbers();
   ((Employee) result).getAddress();
   ((Employee) result).getManager();
   ((Employee) result).getProjects();
   ((Employee) result).getResponsibilitiesList();
 }
  public void setup() {
    Employee emp;
    emp = (Employee) getSomeEmployees().firstElement();
    PhoneNumber empPhoneNumbers = (PhoneNumber) emp.getPhoneNumbers().elementAt(0);

    String ejbqlString =
        "SelecT OBJECT(emp) from Employee emp, in (emp.phoneNumbers) phone "
            + "Where phone.areaCode = \""
            + empPhoneNumbers.getAreaCode()
            + "\"";

    setEjbqlString(ejbqlString);
    setOriginalOject(emp);

    super.setup();
  }
 protected void changeObject() {
   Employee employee = (Employee) this.workingCopy;
   // Direct to field
   employee.setFirstName(new String(employee.getFirstName().getBytes()));
   // Object type
   employee.setGender(new String(employee.getGender().getBytes()));
   // Transformation
   employee.setNormalHours(employee.getNormalHours().clone());
   // Aggregate
   employee.setPeriod(
       new EmploymentPeriod(
           employee.getPeriod().getStartDate(), employee.getPeriod().getEndDate()));
   // One to many private/public
   employee.setPhoneNumbers((Vector) employee.getPhoneNumbers().clone());
   employee.setProjects((Vector) employee.getProjects().clone());
   employee.setManagedEmployees((Vector) employee.getManagedEmployees().clone());
   // Direct collection
   employee.setResponsibilitiesList((Vector) employee.getResponsibilitiesList().clone());
   // One to one private/public
   employee.getAddress();
   employee.getManager();
 }
  public void setup() {
    Employee emp = (Employee) getSomeEmployees().firstElement();

    PhoneNumber phone = (PhoneNumber) emp.getPhoneNumbers().firstElement();
    String areaCode = phone.getAreaCode();
    String firstName = emp.getFirstName();

    setReferenceClass(Employee.class);

    ExpressionBuilder employeeBuilder = new ExpressionBuilder();
    Expression phones = employeeBuilder.anyOf("phoneNumbers");
    Expression whereClause =
        phones
            .get("owner")
            .get("firstName")
            .equal(firstName)
            .and(phones.get("areaCode").equal(areaCode));

    ReportQuery rq = new ReportQuery();
    rq.setSelectionCriteria(whereClause);
    rq.addAttribute("number", phones.get("number"));
    rq.setReferenceClass(Employee.class);

    setOriginalOject(getAttributeFromAll("number", (Vector) getSession().executeQuery(rq)));
    getSession().getIdentityMapAccessor().initializeAllIdentityMaps();

    String ejbqlString;
    ejbqlString =
        "SELECT phone.number FROM Employee employee, IN(employee.phoneNumbers) phone "
            + "WHERE phone.owner.firstName = \""
            + firstName
            + "\" AND phone.areaCode = \""
            + areaCode
            + "\"";

    useReportQuery();
    setEjbqlString(ejbqlString);
    super.setup();
  }