I had an ClassCastException in one of my property getters. Ok, admitted, it was my fault, but it is not very nice that Seam completely eats up this exception. Nothing about it in the logs, absolutely nothing.

Just useful hints like "don't @Begin in a long running conversation, try join=true" and so on. Of course I know that exceptions can cause totally different followup exceptions, so I am used to ignore exceptions I don't understand, searching for collateral exceptions I understand better. But there were none, just this "use join" thing.

So I went into deep - how could the conversation context be lost? I stepped through half of Seam. For two days. Then I found my component being inexpectedly "removed" from conversation context.

This remove was called from RemoveInterceptor.removeIfNecessary, and in that method, I was able to have a look at the root causing exception.

I could not really figure out why this exception isn't logged at all, but I think it would clearly better if it was ...

I was able to call printStackTrace in the debugger, so I can give you a strack trace of the original exception. Perhaps it helps: