Summer'15でgetContentの処理はコールアウトとして扱われるように変更されました。
コールアウトとして動作する PageReference getContent() および getContentAsPDF() メソッド
この変更により影響を受ける例としてVisualforcePDFを添付ファイルに保存するようなケースが考えれます。Developer環境で試してみたところ次のエラーが発生しました。
「You have uncommitted work pending. Please commit or rollback before calling out」というエラーです。ヘルプによると同じトランザクション内で DML (Insert / Update / Upsert / Delete) 発行後にコールアウトを行なう事で発生するエラーと説明があります。
「You have uncommitted work pending. Please commit or rollback before calling out」エラーについて
今回、Developer環境で試した処理ではコールアウト処理(getContent)を実行する前にINSERTやUPDATEなどは行っていなかったため、何が原因のエラーなのかと考えていたのですが、いろいろ試しながら調べてみた結果、原因はロールバックでした。
普段あまり気にする必要が無かったので忘れていましたが、ロールバックもDML処理としてカウントされています。ロールバック処理を無くすことで上記のエラーは発生しなくなりました。
ただ・・同様の処理でもエラーが発生しなかったケースがありました。(ロールバック処理を入れていてもエラーが発生しませんでした。)
似ているだけで、細かい処理は違うのでロールバック以外に何かエラーの原因になることがあるのかと思ったのですが、原因は重要な更新のgetContentに関する変更が有効化されていなかったことでした。
Summer'15になったら自動で有効化されてる気分になっていましたが、9月頃までは自動で反映されません。DML処理の後にgetContentをつかってもエラーにならない場合は、重要な更新を確認してみるといいと思います。
ということでVisualforce PDFをgetContentで添付ファイルなどに登録するような処理を実装する場合は、ロールバックや他オブジェクトのDML処理とは一緒にしないようにしましょう。