Skip to main content


Showing posts from December, 2012

Timeout Setting in Event System Threads

While debugging an Event System in SDL Tridion 2011 SP1, I noticed that every so often my debug session ends unexpectedly with an exception that thread was aborted. Obviously, the thread is taking too long so the event system engine is killing it in order to free up some resources. The problem for me was that it interrupted my debug session. The life span of the thread is quite low - 30 seconds by default. Thanks to Nuno  to point out where the configuration of this thread life span is: in the [Tridion_Home]\config\Tridion.ContentManager.config , in node eventSystem : <eventSystem maxThreadCount="5" threadTimeout ="30" threadNamePrefix="EventSystem" /> Change the threadTimeout to a bigger value (I set mine to 300 seconds). This will give you enough time to do sufficient debugging. Remember to shutdown the Tridion Content Manager COM+ application and restart SDL Tridion services that might be using the Event System. For for information abou

Java Core Service Trouble with DateTime Convertion to java.util.Date

In my previous post  A Core Service Java Client , I was describing how to generate the proxy classes for the Java client. It turns out, however, that the custom bindings I was using for converting DateTime string representations to java.util.Date were not working properly. When I was running my client, all the dates were coming back ' null '. The problem was the default Adapter code generated by wsimport. I saw the conversion too simplistically. The custom bindings that I was using <jxb:bindings version="1.0" xmlns:jxb="" xmlns:xs="">   <jxb:globalBindings generateElementProperty="false">     <jxb:javaType name="java.util.Date" xmlType="xs:dateTime"/>   </jxb:globalBindings> </jxb:bindings> would generate the following adapter code: public class Adapter1 extends XmlAdapter<String, Date> {

SDL Live Content Dark Theme

I've got the bug, people... I'm skinning everything ;-). This time it's the SDL Live Content documentation portal (if you don't have access to it, please contact SDL Customer Support). The extension is available on and it's called " SDL Live Content Documentation Portal Dark Grey " (for both FireFox and Chrome). It's a very simple dark grey theme suitable for dark OS themes : General topic page: Search Results page: Advanced Search dialog: My Forms dialog:

Decode Output TBB

This week's TBB is Decode Output TBB . This super simple TBB performs a HTML decode on the Output Package item. It then overwrites the Output with the decoded value. This decoding is useful when outputing the contents of a Text Block field, for example. By default, this field (not RTF) will be stored as encoded HTML, hence the need to decode it before outputing it in the template. Name Decode Output TBB Type ·     Template in .NET Assembly Description Used to: ·     HTML Decode the Item “Output” from Package; Notes: This generic TBB expects an Item called “Output” in the Package. It decodes its content (performing HTML Decode) and then it updates the item’s value. Parameters n/a Applicable to Any template where an Item called ‘Output’ exists in the Package The Code /// <summary> /// Performs HTML decode on the Output package item value, then rewrites th

It's Only Getting Darker

Continuing my quest on getting a darker UI (see my previous post I Have Gone Dark ), I thought I would share some of my experience. This time it's about Eclipse, Visual Studio and iTunes. Yes, I'm slowly darkening (at least, trying to) all the programs I typically use. Eclipse I am using Eclipse Indigo , so the screen shots below are Indigo specific. I also tried the approach for Eclipse Juno and it works too. Juno has a neat in-built support for theming, while Indigo relies on the Operating System color theme. However, that Juno is so slow, that you need a very decent machine to run it properly. I'm keeping with Eclipse Indigo for now. I installed the plugin Eclipse Color Theme from . There are plenty of color themes there. I ended up using one of the most popular ones, Oblivion. It's very relaxing for eye (compared to most of the other dark themes). Other good themes are Obsidian, Wombat.  And this is what Eclipse looks like. On

I Have Gone Dark

Maybe it's the Holidays, but my mood has gone pretty dark. That is, regarding the look and feel of my computer and Tridion CME, of course. What I did was to dim the lights on the operating system, so I installed Placebo themes for Windows 7 . I went for the Ashtray look -- great name :) My VM looks now like this: But, once you change the theme on Windows, you should 'match' the theme of your applications. Some skin easily, some not. The Office suite has an in-built scheme, which can be set to Black , but it doesn't actually dim the ribbon tool bars -- it looks quite weird. Yahoo Messenger is skinnable, but you can't change the big white panels where you actually 'chat'. Skype is not skinnable at all. For Chrome, there are plenty of grey themes. Now i'm using Pro Grey . But then I got into changing the theme of websites. While very few offer skinnable interfaces (as GMail does), I had to find a way to darken the websites... Enter Stylish -- a pl

Executing in Memory a JSP DCP from Database

This is follow-up of my previous post Executing a JSP DCP Stored in the Database , where I was presenting a proof-of-concept on executing a string representing a JSP DCP stored in the Content Delivery Database. I wasn't too happy with the previous solution, because it was writing the compiled .class to the file system and there was no caching at all (the .class would be recompiled with every request). I can do better than that! :-) So the new version is compiling everything into a memory byte array, then executes the in-memory class. The compiled class is placed into an LRU cache, in order to optimize performance. The entire example is available on Google code project ; below are just the highlights: Custom JSP Tag This is the calling code that initiates the execution of the DCP. public void doTag() throws JspException {     try {         DcpClassLoader loader = new DcpClassLoader( componentUri , componentTemplateUri );         Executable dcpExecutabl