title: Possible causes for "StreamCorruptedException: invalid stream header"
body: <p>I (try to) use drools to process my pricing rules. But when I try to execute the rules the following exception is thrown:</p>
  
  <pre><code>java.lang.RuntimeException: KnowledgeAgent exception while trying to deserialize KnowledgeDefinitionsPackage  
       at org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:418)
       at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:120)
       at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:109)
       at com.sapienter.jbilling.server.pluggableTask.PluggableTask.readKnowledgeBase(PluggableTask.java:115)
       at com.sapienter.jbilling.server.rule.RulesBaseTask.executeRules(RulesBaseTask.java:57)
       at com.sapienter.jbilling.server.item.tasks.RulesPricingTask2.getPrice(RulesPricingTask2.java:81)
       at com.sapienter.jbilling.server.item.ItemBL.getPrice(ItemBL.java:357)
  [...many not so interesting lines...]
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
       at java.lang.Thread.run(Thread.java:619)
   Caused by: java.io.StreamCorruptedException: invalid stream header: 3C3F786D
       at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)
       at java.io.ObjectInputStream.&lt;init&gt;(ObjectInputStream.java:280)
       at org.drools.common.DroolsObjectInputStream.&lt;init&gt;(DroolsObjectInputStream.java:55)
       at org.drools.common.DroolsObjectInputStream.&lt;init&gt;(DroolsObjectInputStream.java:49)
       at org.drools.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:189)
       at org.drools.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:158)
       at org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:408)
       ... 88 more
  </code></pre>
  
  <p>As all the code is from a library I guess the problem is not in the code but in my project setup/use of jars/use of rules/whatever. What are the typical reasons for this exception? What should I looking for to find the reason for the exception? Someone has a strategy to pinpoint the problem?</p>
  
  <p><strong>Update:</strong>
  Interesting ... my application seems to work anyway. Looks like it recovers from the error. So, maybe a bug in the library of my project? Not nice to see the error logged at every startup, but don't seem to be critical. Hmmm ...</p>