Hi,
I have an unusual situation where the behaviour of what is apparently the
same configuration of my app differs on two different systems. When I
deploy my app to a clients server there is one action that produces no
effects whereas on my development machine it works as expected.
The norma; effect is to add new objects to a collection, each click of the
action should create a new collection member.
At the client site all other action buttons work as expected, only one has
the problem. All I can think that is unusual about this one compared to
all the others is that it has no parameters.
I've made a copy of the database as the clients sit'e, imported that at
home and everything works.
I am using the Isis security module, but I don't think that is causing a
problem, the action button is not greyed out as inactivated.
I've used three different browsers at the client's site, all have the same
issue.
The action is simple
@Action
public RecurringActivity addNextScheduledActivity() {
if (getChildActivities().size() == 0) {
if (getStartDateTime() == null) {
container.warnUser("Please set 'Start date time' for this
Recurring Activity (as starting time from which to schedule more activity
events)");
} else {
ActivityEvent obj =
container.newTransientInstance(ActivityEvent.class);
obj.setParentActivity(this);
obj.setName(getName());
obj.setAbbreviatedName(getAbbreviatedName());
//set time one second ahead for comparison inequality
obj.setStartDateTime(getStartDateTime().plusSeconds(1));
getChildActivities().add(obj);
container.persistIfNotAlready(obj);
container.flush();
}
} else {
// find last event from which to schedule next
// first should be last in chronological order
DateTime origin =
getChildActivities().first().getStartDateTime();
ActivityEvent obj =
container.newTransientInstance(ActivityEvent.class);
obj.setParentActivity(this);
obj.setName(getName());
obj.setAbbreviatedName(getAbbreviatedName());
switch (getPeriodicity()) {
case DAILY:
obj.setStartDateTime(origin.plusDays(1));
break;
case WEEKLY:
obj.setStartDateTime(origin.plusDays(7));
break;
case FORTNIGHTLY:
obj.setStartDateTime(origin.plusDays(14));
break;
case MONTHLY:
obj.setStartDateTime(origin.plusDays(28));
break;
case BIMONTHLY:
obj.setStartDateTime(origin.plusDays(56));
break;
}
getChildActivities().add(obj);
container.persistIfNotAlready(obj);
container.flush();
}
return this;
}
I can start adding some debug messages to this code, but is there a smarter
way to find out happens at the client and server sides?
I guess one distinct difference is that in my development environment the
client and server are on the same machine, but in deployment they aren't.
Thanks for any advice.
Steve Cameron