[Source] [X3D] Final changes approved for Compressed Binary Encoding, implementation testing needed

Don Brutzman brutzman at nps.edu
Wed Jan 11 20:08:57 PST 2012


to: source at web3d mailing list for Xj3D debugging, please

Summary from following thread:  the following node is throwing an
exception in Xj3D.  it is taken from the X3D specification examples.

          <ProtoInstance DEF='Top' name='Rotor'>
            <fieldValue name='stopTime' value='1'/>
            <fieldValue name='children'>
              <Inline url='"ChopperRotor.x3d" "http://www.web3d.org/x3d/content/examples/Basic/X3dSpecification/ChopperRotor.x3d" "ChopperRotor.wrl" "http://www.web3d.org/x3d/content/examples/Basic/X3dSpecification/ChopperRotor.wrl"'/>
            </fieldValue>
            <IS>
              <connect nodeField='rate' protoField='rotorSpeed'/>
            </IS>
          </ProtoInstance>

Our goal is to convert to .x3db binary.  Example scene available at:
http://www.web3d.org/x3d/content/examples/Basic/X3dSpecification/Chopper.x3d

Hypotheses:  one of the <fieldValue> entries is failing, or the IS/connect
is failing, based on this exception:

>       [java] org.web3d.vrml.lang.UnsupportedNodeException: Request for a node that is not part of the specified profile and components for this stream: Rotor
>       [java] 	at org.web3d.vrml.renderer.DefaultNodeFactory.createVRMLNode(DefaultNodeFactory.java:718)
>       [java] 	at xj3d.filter.FieldValueHandler.getFieldType(FieldValueHandler.java:442)

did some trial and error by editing the .x3d scene:
- <ProtoInstance> works in isolation
- simple and complex fieldValue both fail
- <IS><connect> fails
- <IS> without <connect> succeeds

so the problem is definitely manifesting itself in FieldValueHandler
and may be related to node lookups  for profile/component not properly
checking the Proto namespace for defined nodes.



On 1/11/2012 1:21 PM, Don Brutzman wrote:
> cc: CAD which is also working on CBE.
> 
> Hi Kristian, thanks for this report.  Sorry for missing it earlier.
> Hope you had a great holiday!
> 
> On 12/26/2010 5:11 PM, Kristian Sons wrote:
>> Dear Don,
>>
>>>   When everything is complete, Kristian can you test those online examples?
>>
>> I tested the online examples. I can't download following examples, they
>> have a size of 0 bytes:
>>
>> Chopper.x3db
>> GeometricProperties.x3db
>> Prototype.x3db
>> PrototypesPlus.x3db
>> Robot.x3db
>> ShuttlesAndPendulums.x3db
>> X3dHeaderPrototypeSyntaxExamples.x3db
> 
> When .x3db files in the examples have 0 file size, it means that
> Xj3D failed to convert the files.
> 
> Precise exceptions are visible publicly as part of our nightly builds
> of the X3D Example Archives.
> 
> https://savage.nps.edu/jenkins/job/X3dExamplesBasic/lastBuild/consoleFull
> 
> However I see that, for efficiency reasons, it did not repeat prior
> conversions.  I have adjusted the build process to clean and repeat
> all of the compressed binary encoding conversions each night.
> 
> Example output of a failed Xj3D conversion.  All other XML tests
> and conversions are passing for this scene.  It looks like there
> is a problem handling either ExternProtoDeclare or ProtoInstance
> (or possibly both) in this scene.
> 
> http://www.web3d.org/x3d/content/examples/Basic/X3dSpecification/Chopper.x3d
> 
> ============================
>       [echo] /var/lib/jenkins/jobs/X3dExamplesBasic/workspace/Basic/X3dSpecification//Chopper.x3d processing with Xj3D for .x3db binary compression
>       [java] org.web3d.vrml.lang.UnsupportedNodeException: Request for a node that is not part of the specified profile and components for this stream: Rotor
>       [java] 	at org.web3d.vrml.renderer.DefaultNodeFactory.createVRMLNode(DefaultNodeFactory.java:718)
>       [java] 	at xj3d.filter.FieldValueHandler.getFieldType(FieldValueHandler.java:442)
>       [java] 	at xj3d.filter.BaseFilter.startField(BaseFilter.java:433)
>       [java] 	at org.web3d.x3d.jaxp.X3DSAVAdapter.startElement(X3DSAVAdapter.java:1209)
>       [java] 	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
>       [java] 	at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179)
>       [java] 	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:788)
>       [java] 	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
>       [java] 	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
>       [java] 	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
>       [java] 	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
>       [java] 	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
>       [java] 	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
>       [java] 	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
>       [java] 	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
>       [java] 	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
>       [java] 	at xj3d.filter.FileParserReader.parseX3D(FileParserReader.java:486)
>       [java] 	at xj3d.filter.FileParserReader.parse(FileParserReader.java:241)
>       [java] 	at xj3d.filter.CDFFilter.load(CDFFilter.java:722)
>       [java] 	at xj3d.filter.CDFFilter.filter(CDFFilter.java:206)
>       [java] 	at xj3d.filter.CDFFilter.executeFilters(CDFFilter.java:1040)
>       [java] 	at xj3d.filter.CDFFilter.main(CDFFilter.java:1098)
>       [java] Fatal Error: File format error encountered in filter: Unknown filter
>       [java] Request for a node that is not part of the specified profile and components for this stream: Rotor
> ============================
> 
> Looking forward to continued interoperability testing and improving
> capabilities in various tools.
> 
> all the best, Don


all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman



More information about the Source mailing list