click here for details... Sakai Executive Director Position Search now open
Issue Details (XML | Word | Printable)

Key: SAK-15504
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Blocker Blocker
Assignee: Zhen Qian
Reporter: David Horwitz
Votes: 0
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Sakai

Upgraded site: editing My workspace leads to duplicate Home

Created: 26-Jan-2009 01:22   Updated: 24-Nov-2009 09:03
Component/s: Site Info
Affects Version/s: 2.6.0
Fix Version/s: 2.6.0, 2.7.0

Time Tracking:
Not Specified

2.6.x Status: Resolved
2.5.x Status: None
2.4.x Status: None


 Description  « Hide
On an instalation upgraded from 2-5-x to 2-6-x. If a user edits their "My Workspace" site through Worksite Setup->Edit->Edit tools

they:
1) Get presented with an unchecked "Home" button
2) Checking this leads to a secong "home" tool being added to the site.

I suspect this has to do with a change to how Site Info identifies the home page thats missing from the 2-6-x conversion

 All   Comments   Work Log   Change History   Subversion Commits   git Commits      Sort Order: Ascending order - Click to sort in descending order
Zhen Qian added a comment - 26-Jan-2009 06:37
David,

I don't see this problem from 2-6-x nightly build.

What type of tools are in the "Home" page in your build?

Thanks,

- Zhen

David Horwitz added a comment - 26-Jan-2009 06:50
Hi Zhen,

Yeah - I think it would need to be an instance from a upgraded databse. A typical example:

Page:
+--------------------------------------+-----------+-------+--------+------------+-------+
| PAGE_ID | SITE_ID | TITLE | LAYOUT | SITE_ORDER | POPUP |
+--------------------------------------+-----------+-------+--------+------------+-------+
| e1855d5b-4faf-479d-00d1-d14a9e26a451 | ~dhorwitz | Home | 1 | 1 | 0 |
+--------------------------------------+-----------+-------+--------+------------+-------+
 With the following tools;

+--------------------------------------+--------------------------------------+-----------+------------------------+------------+-------------------------+--------------+
| TOOL_ID | PAGE_ID | SITE_ID | REGISTRATION | PAGE_ORDER | TITLE | LAYOUT_HINTS |
+--------------------------------------+--------------------------------------+-----------+------------------------+------------+-------------------------+--------------+
| 09841808-497c-4736-0057-a1d97440a28f | e1855d5b-4faf-479d-00d1-d14a9e26a451 | ~dhorwitz | sakai.motd | 1 | Vula Announcements | 0,0 |
| 1bc3185f-ebbd-4358-8078-b7dcf6bf17d9 | e1855d5b-4faf-479d-00d1-d14a9e26a451 | ~dhorwitz | sakai.summary.calendar | 2 | Calendar | 0,1 |
| 8d4bcd37-3f29-43fb-00ca-78970ecbee3f | e1855d5b-4faf-479d-00d1-d14a9e26a451 | ~dhorwitz | sakai.rsf.accountinfo | 3 | UCT Account Information | 1,1 |
+--------------------------------------+--------------------------------------+-----------+------------------------+------------+-------------------------+--------------+
3 rows in set (0.01 sec)

Zhen Qian added a comment - 26-Jan-2009 06:59
OK. I think the problem is you have a unique set of tools in your Home page, which is different from the typical set, and hence is not recognized.

Now the fix is to make the Home tool definition to be configurable...

- Zhen

Stephen Marquard added a comment - 26-Jan-2009 09:49
How about setting a property on the Home page in the site? In My Workspaces, we don't want users to be able to remove Home at all (should be selected and greyed-out which I assume toolOrder.xml can do).

Zhen Qian added a comment - 28-Jan-2009 20:46
Fixed in r56935.

Now the tool set on home page can be configured using "wsetup.home.toolids". For example, institution can put the following in the sakai.properties file:

wsetup.home.toolids.count=2
wsetup.home.toolids.1=.....
wsetup.home.toolids.2=.....

However, if the above param is not set, WSetup tool will use default, which is "sakai.iframe.site, sakai.summary.calendar, sakai.synoptic.announcement, sakai.synoptic.chat, sakai.synoptic.messagecenter" for worksites.
Among them, the synoptic tools will be added or dropped from Home page, depending on whether their linked tool exists in the site or not.

Thanks,

- Zhen


Stephen Marquard added a comment - 28-Jan-2009 23:39
Hi Zhen,

I don't think this solution is general enough - we have more than one type of my workspace site, i.e. we have different templates for different account types, and the tools on the Home page differ.

The 'page property' option looks better to me, as this would get inherited from the template when a new my workspace site is created.

Zhen Qian added a comment - 29-Jan-2009 07:11
Stephen,

By "page property" option here, do you mean make the Home tool not removable? The default setting in toolOrder.xml only marks Home as selected but not require. Do you override this option in your installation? It can be handled all in toolOrder.xml, not in WSetup.

However, you've remind me I should really get the home tool id set from the template files based on site type, or user type if this is a workspace site.


Zhen Qian added a comment - 03-Feb-2009 12:44
With r57191, following sequence of looking for tool ids inside Home page is executed:

1. if Home tool is not added or removed, the list of tool ids are obtained from the current page. And if any tool, which is related to a synoptic tool inside the Home page, is removed, the corresponding synoptic tool will be removed too.

2. Otherwise, if Home tool is dropped and added back again, or if this is new site(not including MyWorkspace site, which is not created using Worksite Setup tool) and Home tool is added to the new site:
   
   2.1 if this is a MyWorkspace site, look for template site with id !user.USER_TYPE first. If not found, look for !user site
   
   2.2 else if this is a non-MyWorkspace site, look for template site with id !worksite.SITE_TYPE first, if not found, look for !worksite
   
   2.3 if a template site is found, get tool ids from it.
   
   2.4 if the tool id list is empty, use "wsetup.home.toolids" configuration variable from configure file, if defined.
   
   2.5 if the tool id list is still empty, use OOTB system default:
           for MyWorkspace site, "sakai.motd" or "sakai.iframe.myworkspace";
           for other types of sites "sakai.iframe.site"
           also adding various synoptic view tools, if applicable(corresponding tool is also in site): "sakai.summary.calendar", "sakai.synoptic.announcement", "sakai.synoptic.chat", "sakai.synoptic.messagecenter";

- Zhen

Stephen Marquard added a comment - 22-Feb-2009 04:33
Zhen, there are some problems with this in cafe trunk, or any other build where there's a tool identified in Home in !worksite site, which isn't contained in the build.

To reproduce: run cafe trunk, try to create a new site.

The code needs to check whether the tool referenced in the !worksite template (or any other source e.g. sakai.properties value) is actually present, before trying to add it to a site.

Stephen Marquard added a comment - 22-Feb-2009 04:35
Also I think some of the WARN logging in SiteAction related to this could be dropped to debug - e.g. it would be normal not to have a !worksite.project site by default.

Peter Peterson added a comment - 23-Feb-2009 08:12
Zhen, could you comment the status of this issue? If possible we would like to have this available for the 2.6.0 release.

Zhen Qian added a comment - 23-Feb-2009 10:09
Fixes checked in as r57914 and r57915 according to Stephen's comment above.

For cafe build, unless specified in "wsetup.home.toolids" in sakai.properties, no tool could be found associated with Home page. So Home page will be created as an empty page.

However, if a page is empty, the page link won't be shown while user accesses the site. But this should be filed as an separate JIRA and is out of the ticket scope here.

For any production site with Home tool turned on as default tool, it should have at least one "Home page tool" defined and deployed...

Thanks,

- Zhen

Nancy Wilkison added a comment - 08-Apr-2009 13:41
QA ENVIRONMENT -
vista enterprise, firefox
server http://nightly2.sakaiproject.org:8087/portal

QA SUMMARY -
when editing My Workspace using edit tools,
verify user does not get unchecked Home page or two home pages.

QA RESULTS -
Home page box is checked and only 1 Home page results from
editing.

QA COMMENT -
I can still remove my Home page, if I wish.
I can also get it back but it ends up at the bottom of the left nav tools and
logging on will result in my being on the Profile page as default until
I re-order the tools and put Home back at the top.

Zhen Qian added a comment - 08-Apr-2009 14:01
Nancy,

If the Page Order has never been used for the site, worksite setup will enforce the default OOTB tool order based on the toolOrder.xml file, plus Home tool always on top of the list, and Site Info is always at the bottom.

However, once the user saves from Page Order, the above ordering sequence is no longer enforced. All newly added tool will be put to the bottom of the tool list. Of course, one can reorder them afterwards.


Nancy Wilkison added a comment - 13-Apr-2009 13:41
even if you only use Page Order to re-name something, NOT to change the order?
so simply using Page Order destroys the default order?

Nancy Wilkison added a comment - 15-Apr-2009 14:13 - edited
well...I guess the actual issue of two home pages has been corrected.

QA RESULTS -
pass

Stephen Marquard added a comment - 11-May-2009 01:36
On our 2-6-x production build, this breaks the ability to add new tools to course sites (though not project sites it seems, not sure why).

When you click on Finish from Site Info / Edit Tools, you get an error like this in the logs. Site Info / Organize Tools is unaffected.

2009-05-11 10:12:25,718 WARN TP-Processor406 org.sakaiproject.db.impl.BasicSqlService - Sql.dbWrite(): error code: 1048 sql: insert into SAKAI_SITE_TOOL (TOOL_ID, PAGE_ID, SITE_ID, REGISTRATION, PAGE_ORDER, TITLE, LAYOUT_HINTS) values (?,?,?,?,?,?,?) binds: b9544986-3905-4430-b5a9-dc5e2f3f0a89 789d8f2f-7448-4d2b-8c60-17bb8617aa21 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 null 5 null null
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'REGISTRATION' cannot be null
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1011)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2046)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1964)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1949)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
        at org.sakaiproject.db.impl.BasicSqlService.dbWrite(BasicSqlService.java:1205)
        at org.sakaiproject.db.impl.BasicSqlService.dbWrite(BasicSqlService.java:1039)
        at org.sakaiproject.site.impl.DbSiteService$DbStorage.saveTx(DbSiteService.java:345)
        at org.sakaiproject.site.impl.DbSiteService$DbStorage$1.run(DbSiteService.java:263)
        at org.sakaiproject.db.impl.BasicSqlService.transact(BasicSqlService.java:328)
        at org.sakaiproject.site.impl.DbSiteService$DbStorage.save(DbSiteService.java:259)
        at org.sakaiproject.site.impl.BaseSiteService.doSave(BaseSiteService.java:880)
        at org.sakaiproject.site.impl.BaseSiteService.save(BaseSiteService.java:807)
        at org.sakaiproject.site.cover.SiteService.save(SiteService.java:165)
        at org.sakaiproject.site.tool.SiteAction.commitSite(SiteAction.java:8783)
        at org.sakaiproject.site.tool.SiteAction.saveFeatures(SiteAction.java:8486)
        at org.sakaiproject.site.tool.SiteAction.doSave_revised_features(SiteAction.java:5864)

Anthony Whyte added a comment - 11-May-2009 04:52
Raising status to a blocker. David and I are reverting the fix out of the 2.6.x and 2.6.0 branches and I will cut an rc04 tag today.

David Horwitz added a comment - 11-May-2009 04:55
removed from 2-6-x and 2-6-0 with r62181

Zhen Qian added a comment - 11-May-2009 06:50
I cannot replicate the problem. I have tested on qa3-us, nightly trunk build with HSQL and nightly 2.6.x build, but all performed fine now.

Angela Joyce Henry added a comment - 11-May-2009 20:27 - edited
QA ENVIRONMENT
Sakai QA Network qa1-za (svn tags/sakai-2.6.0-rc03) using MySQL/InnoDB - Built: 05/11/09 12:08 - Sakai Revision: 62169 - Server localhost (Vista Ultimate, Firefox 3.x)

QA SUMMARY
Could not replicate the problem. Home tool is checked but not greyed out. It can be unchecked and removed entirely from the list of tools. When it is re-checked, it becomes visible in the list of tools once more, as expected.



Zhen Qian added a comment - 12-May-2009 07:44
I will close this for now baed on Angela's observation.

Stephen Marquard added a comment - 12-May-2009 12:56
I don't see the point of closing this. The code is demonstrated to cause problems in at least one site. This should not get merged back into 2-6-x or a 2.6.0 release until it's fixed.

Zhen Qian added a comment - 12-May-2009 13:08
Stephen:

Could you please find out what tool triggered this message?

TOOL_ID, PAGE_ID, SITE_ID
b9544986-3905-4430-b5a9-dc5e2f3f0a89 789d8f2f-7448-4d2b-8c60-17bb8617aa21 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623


Stephen Marquard added a comment - 14-May-2009 06:37
Looks like it was trying to add something into the Home page with a null tool reg:

mysql> select * from SAKAI_SITE_TOOL WHERE TOOL_ID='b9544986-3905-4430-b5a9-dc5e2f3f0a89';
Empty set (0.01 sec)

mysql> select * from SAKAI_SITE_PAGE WHERE PAGE_ID='789d8f2f-7448-4d2b-8c60-17bb8617aa21';
+--------------------------------------+--------------------------------------+-------+--------+------------+-------+
| PAGE_ID | SITE_ID | TITLE | LAYOUT | SITE_ORDER | POPUP |
+--------------------------------------+--------------------------------------+-------+--------+------------+-------+
| 789d8f2f-7448-4d2b-8c60-17bb8617aa21 | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Home | 1 | 1 | 0 |
+--------------------------------------+--------------------------------------+-------+--------+------------+-------+
1 row in set (0.00 sec)

mysql> select * from SAKAI_SITE_PAGE WHERE SITE_ID='4b73f7c9-385d-42d1-87c8-8f1cd1bfe623';
+--------------------------------------+--------------------------------------+----------------+--------+------------+-------+
| PAGE_ID | SITE_ID | TITLE | LAYOUT | SITE_ORDER | POPUP |
+--------------------------------------+--------------------------------------+----------------+--------+------------+-------+
| 044f90a2-2e05-4f99-a920-0d66af9dbe4d | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Search | 0 | 6 | 0 |
| 14827f44-bed4-4d00-ae3c-c16759131d76 | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Gradebook | 0 | 8 | 0 |
| 222f6b13-26fe-4561-a31d-2d74f07d5f43 | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Participants | 0 | 4 | 0 |
| 33d7764f-74c7-4812-9a89-f3430b12684c | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Resources | 0 | 5 | 0 |
| 598c93e2-5cd8-42a7-9cc5-ed579cc0e9f4 | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Site Setup | 0 | 11 | 0 |
| 789d8f2f-7448-4d2b-8c60-17bb8617aa21 | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Home | 1 | 1 | 0 |
| 8824d546-d222-433c-82f9-6f9e4fa076c9 | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Forums | 0 | 3 | 0 |
| 9c9dd6f7-c267-471f-99b4-b55c9516d101 | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Announcements | 0 | 2 | 0 |
| b10eeaa1-5d79-4f54-a839-99c0cf055379 | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Polls | 0 | 10 | 0 |
| f64907fe-671e-4634-92ac-5d91d27a1b4b | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Section Info | 0 | 9 | 0 |
| fc1f546c-916c-41b0-bc84-4468e5128330 | 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | Course Outline | 0 | 7 | 0 |
+--------------------------------------+--------------------------------------+----------------+--------+------------+-------+
11 rows in set (0.00 sec)

mysql> select * from SAKAI_SITE WHERE SITE_ID='4b73f7c9-385d-42d1-87c8-8f1cd1bfe623';
+--------------------------------------+---------------+--------+------------+-------------+----------+----------+------+-----------+----------+---------+-----------+--------------------------------------+--------------------------------------+---------------------+---------------------+------------+---------+---------------------+
| SITE_ID | TITLE | TYPE | SHORT_DESC | DESCRIPTION | ICON_URL | INFO_URL | SKIN | PUBLISHED | JOINABLE | PUBVIEW | JOIN_ROLE | CREATEDBY | MODIFIEDBY | CREATEDON | MODIFIEDON | IS_SPECIAL | IS_USER | CUSTOM_PAGE_ORDERED |
+--------------------------------------+---------------+--------+------------+-------------+----------+----------+------+-----------+----------+---------+-----------+--------------------------------------+--------------------------------------+---------------------+---------------------+------------+---------+---------------------+
| 4b73f7c9-385d-42d1-87c8-8f1cd1bfe623 | BUS2020F,2009 | course | NULL | NULL | NULL | NULL | NULL | 1 | 0 | 1 | NULL | 00f822b4-f351-491e-b925-035656f65618 | 00f822b4-f351-491e-b925-035656f65618 | 2009-02-10 14:36:32 | 2009-03-10 10:05:52 | 0 | 0 | 0 |
+--------------------------------------+---------------+--------+------------+-------------+----------+----------+------+-----------+----------+---------+-----------+--------------------------------------+--------------------------------------+---------------------+---------------------+------------+---------+---------------------+
1 row in set (0.01 sec)

Zhen Qian added a comment - 14-May-2009 06:43
Stephen,

What is the usual tool set for the Home page there? Looks like the site has Announcements which would have synoptic view there. What is the Participants tool? And Course Outline?


Stephen Marquard added a comment - 14-May-2009 07:26
I found the problem. At some point we wanted to disable all the Messages & Forums synoptic tools on site home pages because of a temporary performance issue, so we ran:

update SAKAI_SITE_TOOL SET REGISTRATION='sakai.synoptic.messagecenter.site' where REGISTRATION='sakai.synoptic.messagecenter';

hence the Home page for the site had a tool in it with an invalid tool registration. Normally this is harmless because the portal doesn't render anything there for an unknown tool.

However, something in the changed SiteAction code led to that invalid tool registration being translated into a null registration when the Home page was saved when a new tool was added to the site.

So the immediate cause of this was inconsistent data in our db and the problem is this unreproduceable in OOTB builds.

However, the same situation could arise if synoptic tools were present in an installation, and the tool was later removed from the build, so it would be advisable to fix the underlying issue in SiteAction so that invalid tool reg. ids are not fatal.

Zhen Qian added a comment - 14-May-2009 08:37
Reopen according to Stephen's comment above

Zhen Qian added a comment - 14-May-2009 08:38
r62384 address the invalid tool id issue.

Peter Peterson added a comment - 14-May-2009 21:11
Is this issue fixed? If so please test and close, so we can get this into rc04 if possible.

David Horwitz added a comment - 15-May-2009 03:56
closed based on code review

Peter Peterson added a comment - 28-Sep-2009 12:43
In 2.6.0; removed 2.6.x as fix version in order to assure a clean 2.6.1 filter.