Packets: Absolutely rudimentary new finalize() API tests
[senf.git] / Packets / MPEGDVBBundle / TLVPacket.ct
index 1b965a4..ea91f80 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
 // Copyright (C) 2007
-// Fraunhofer Institute for Open Communication Systems (FOKUS) 
-// Competence Center NETwork research (NET), St. Augustin, GERMANY 
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
 //     Thorsten Horstmann <tho@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
@@ -43,10 +43,15 @@ prefix_ void senf::TLVPacketType<TypeParser, LengthParser>::dump(packet p, std::
 template <class TypeParser, class LengthParser>
 prefix_ void senf::TLVPacketType<TypeParser, LengthParser>::finalize(packet p)
 {
-    PacketData::size_type size = p.next().data().size();
-    if ( size > LengthParser::max_value )
-        throw(UnsuportedTLVPacketException());
-    p->length() = size;
+    try {
+        PacketData::size_type size = p.next().data().size();
+        if ( size > LengthParser::max_value )
+            throw(UnsuportedTLVPacketException());
+        p->length() = size;
+    }
+    catch (InvalidPacketChainException & ex) {
+        ;
+    }
 }
 
 template <class TypeParser, class LengthParser>