The problem that I have faced when using third party frameworks (JD, ORM, others) are
1. Bt their very nature, they tend to include code that I might never have any use for, but which can contain bugs. So I have to be often clever enough to bypas the bug(s) , but yet extract the required functionality
2. Very little documentation when they are open source.Whatever documenation there is, normally talks about only what works and very often you would want to know about what does not work.Here is a case in point.
If you hav used JBOSS MQ series(I am refering to the one bundled with JBOSS 3.0.8) , there is a strange problem. A QueueListener that you have registered receives messages whenever some code posts a message to the Queue.This is normal behaviour. However,if JMS server node restarts for whatever reason, the connection factory and connections are stale and so we obtain fresh connection after closing the old listener.We are still able to receive messages on the new connection.
However there is a clock daemon that runs(don't know where, possibly inside the listener?) which checks for the validty of the connection and throws some spyJmsException every one minute with a message that the ping task failed etc.This is fine when JBOSS is down.But this stacktrace is printed even when normalcy is restored.
You might ask, so what is the big deal? It works , does it not? Yes, but if my UAT is dependent on my showing a clean log to the client after a 12 hour load test, I need to hack the log4J file so that the messages emitted by the [Connection Monitor Thread] of JBOSS are not logged at all
Even the $10 documentaion of JBOSS does not contain any reference to this
So I will state my point slightly differently
1. If you have the money, go for an implemenation or framework that you know will be supported or that (even open source) where you have extensive experience
2. If you don't have the money, build one yourself. Simple , initially just concentrating on your immediate needs and slowly developing this to a full fledged framework