ok...finally was able to figure it out. My assumption was when the "executeQuery()" is called, it would run the sql statement that is present in the VO of page2 (also assumed that the where clause would be appended to the sql statement with the "setWhereClause("PRIMARYKEY = :1");").
For what ever reason, that does not seems to happen. Hence had to explicitly call the setQuery() with the same sql statement in the VO of page2.
Final code looks like: