Occasional SPException from GetListItemDataWithCallback

Wrote a new field control today (SharePoint) that queried a specific list in another site collection based on the value of a field from the current list item. This worked great each time I'd test it out and add some additional functionality. When I finished the control, I did a little harder testing by hitting the refresh button in my browser over and over again. Randomly, my control wouldn't render. Other times it would be fine. What's up with that?

If you Google it enough, you'll find that this message generally appears when your CAML is malformed. Well - I used an XmlWriter to build my CAML query (that way my inserted value from the item would be escaped properly for XML), so surely my CAML must be fine if it's working most times??? Right??? Nope. The XmlWriter by default puts in a processing instruction on the first line:

<xml version="1.0" encoding="UTF-8" ?>

Remove this first line and the field controls render each time without error. The specific error I was receiving was:

Microsoft.SharePoint.SPException was caught
Message="Exception occurred. (Exception from HRESULT: 0x80020009 (DISP_E_EXCEPTION))"
at Microsoft.SharePoint.Library.SPRequest.GetListItemDataWithCallback(String bstrUrl, String bstrListName, String bstrViewName, String bstrViewXml, SAFEARRAYFLAGS fSafeArrayFlags, ISP2DSafeArrayWriter pSACallback, ISPDataCallback pPagingCallback, ISPDataCallback pSchemaCallback)

Unable to delete field in SharePoint library

Trying to delete a field in a SharePoint library and get the message "Cannot complete this action. Pleast try again."? This drove me nuts, as even invoking the delete method via the object model gives this message. What I found to allow a delete was pushing down changes via the content type gallery in the site collection (if the field was ever a part of that content type). This can be found by going to the following:
* Site Settings
* Site Content Type Gallery
* Choose Content Type
* Advanced Settings
* Make sure radio button "Update all content types inheriting from this type" is checked
* Click OK

I had several libraries with several fields that had this issue (all fields used to be a part of the content type but had since been orphaned due to changing the definition of the content type in the elements.xml) and now they are all clean and free of these unneeded fields.

If only the error would have told me something meaningful...because trying again was surely never going to fix it.

Terminal Cancer Patient gets restored car

From AutoBlog:
"Tyler Shipman was an 18-year-old Fiero nut from Frazee, Minnesota. In the middle of restoring his favorite car last October he was diagnosed with terminal cancer, and posted a note on a Fiero forum to ask for help with the restoration so that he wouldn't leave his parents with the burden. He got his wish. In the middle of this crazy all and everything, Tyler is more proof that simple humanity still works. We send our best to Tyler's family and friends. Hat tip to Ryan."

Thought I'd reshare this - this is a very special thing.

The right tools for the job

This post is more for my own self-reference later, but others may find it helpful too.

I've been looking to do some modification to the k-member on my car whenever the weather warms up. This will involve removing the k-member before any of the work can be done. Most seem to do this while the engine is removed, but I'd rather not go through that again. I've been doing some reading on how to do this the safest way with the engine still in the car, and here are the tools I'm looking at:

* OTC Spring Compressor 7045B (what the GM dealer uses)
* OTC Tools 4324 Tubular Engine Support
* 4 6-ton pound jack stands

It's not the completed task you're most proud of - it's the tool collection you've amassed. Grunt Grunt.