[Building Sakai] Saving a site property in 2.8.x

Erik Froese erik.froese at gmail.com
Wed Nov 16 07:15:32 PST 2011


Here you go steve. Thanks for looking into this. Let me know if you
need any more info.

https://jira.sakaiproject.org/browse/KNL-825

On Tue, Nov 15, 2011 at 7:54 PM, Erik Froese <erik.froese at gmail.com> wrote:
> I had the same problem with the 5.1.16 driver with 5.5.10 as well.
>
> On Tue, Nov 15, 2011 at 3:41 PM, Carl Hall <carl at hallwaytech.com> wrote:
>> I poked Aaron about this and he's using 5.5.10 server with 5.1.16 driver.
>> Makes me wonder if the 5.1.18 driver is problematic.
>>
>> On Tue, Nov 15, 2011 at 3:14 PM, Steve Swinsburg <steve.swinsburg at gmail.com>
>> wrote:
>>>
>>> Hi Erik,
>>> Could you raise this as a Jira? Something for us to look at for future
>>> support of 5.5 perhaps.
>>>
>>> Cheers,
>>> Steve
>>>
>>> Sent from my iPhone
>>>
>>> On 16/11/2011, at 5:35, Erik Froese <erik.froese at gmail.com> wrote:
>>>
>>> > I fixed it so I figured I'd report.
>>> >
>>> > I downgraded MySQL from 5.5.10 to 5.1.59 and started from a fresh
>>> > database.
>>> > I was using mysql-connector-java-5.1.18.
>>> >
>>> > Erik
>>> >
>>> > On Mon, Nov 14, 2011 at 5:30 PM, Erik Froese <erik.froese at gmail.com>
>>> > wrote:
>>> >> I'm trying to save a property on a Site object in Sakai 2.8.x and I
>>> >> think I'm running into a unicode problem.
>>> >>
>>> >> First I set the property on a SiteEdit before it is sent through the
>>> >> SiteService.
>>> >>
>>> >> // sEdit is a SiteEdit Object
>>> >> ResourcePropertiesEdit rp = sEdit.getPropertiesEdit();
>>> >> rp.addProperty(STATE_SITE_ACCESS_SHOPPING_ALLOWED_FUNCTIONS,
>>> >> StringUtils.join(allowedFunctions, "|"));
>>> >>
>>> >> Later the sEdit is saved by calling SiteService.save(site). I'm
>>> >> modifying the SiteAction class (yikes!) so its taking care of calling
>>> >> save(sEdit)
>>> >>
>>> >> What should happen is we should see a statement issued to MySQL like
>>> >> this:
>>> >> insert into SAKAI_SITE_PROPERTY( SITE_ID, NAME, VALUE ) values
>>> >> ("3b1c5adf-29b6-40b3-954f-a9f841a92411", "shopping-allowed-functions",
>>> >> "annc.read|asn.read|calendar.read")
>>> >>
>>> >> What I see instead is this:
>>> >>
>>> >>  insert into SAKAI_SITE_PROPERTY( SITE_ID, NAME, VALUE ) values
>>> >>
>>> >> (x'33623163356164662D323962362D343062332D393534662D613966383431613932343131',x'73746174655F736974655F6163636573735F73686F7070696E675F616C6C6F7765645F66756E6374696F6E73',x'616E6E632E726561647C61736E2E726561647C63616C656E6461722E72656164')
>>> >>
>>> >> As far as I can tell this is caused by
>>> >> BasicSqlService.prepareStatement setting the statement parameters
>>> >> using setBytes.
>>> >>
>>> >> This causes the constraint violation since the SITE_ID doesn't match
>>> >> anything in SAKAI_SITE.
>>> >>
>>> >> I see this in catalina.out
>>> >> Caused by:
>>> >> com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
>>> >> Cannot add or update a child row: a foreign key constraint fails
>>> >> (`sakai`.`sakai_site_property`, CONSTRAINT
>>> >> `sakai_site_property_ibfk_1` FOREIGN KEY (`SITE_ID`) REFERENCES
>>> >> `SAKAI_SITE` (`SITE_ID`))
>>> >>
>>> >> Has anyone else run into this? Any pointers?
>>> >>
>>> >> Thanks
>>> >>
>>> >> Erik
>>> >>
>>> > _______________________________________________
>>> > sakai-dev mailing list
>>> > sakai-dev at collab.sakaiproject.org
>>> > http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>> >
>>> > TO UNSUBSCRIBE: send email to
>>> > sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>> > "unsubscribe"
>>> _______________________________________________
>>> sakai-dev mailing list
>>> sakai-dev at collab.sakaiproject.org
>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>
>>> TO UNSUBSCRIBE: send email to
>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>> "unsubscribe"
>>
>>
>


More information about the sakai-dev mailing list