[x3d-public] SFImage regex; X3DUOM? X3DJSAIL? results from test.nashorn: Unclosed group in regex
John Carlson
yottzumm at gmail.com
Fri Jun 15 00:12:32 PDT 2018
Attached.
John
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: build.out.txt
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180615/a1020035/attachment-0001.txt>
-------------- next part --------------
> On Jun 15, 2018, at 12:11 AM, John Carlson <yottzumm at gmail.com> wrote:
>
> Don, you?re definitely running test.nashorn folder. You need to run test.nashorn from the java folder.
>
> See attached errors from running from nashorn folder. This is expected.
> John
>
>> On Jun 14, 2018, at 10:43 PM, Don Brutzman <brutzman at nps.edu> wrote:
>>
>> Let me try to help figure this out:
>>
>> On 6/14/2018 5:50 PM, John Carlson wrote:
>>> ~johncarlson/Downloads/apache-ant-1.10.3/bin/ant test.nashorn
>>> Buildfile: /Users/johncarlson/Downloads/www.web3d.org/x3d/stylesheets/java/build <http://www.web3d.org/x3d/stylesheets/java/build>
>>> [taskdef] Could not load definitions from resource net/sf/antcontrib/antcontri
>>> test.nashorn:
>>> [echo] ===========================================
>>> [echo] ant nashorn/build.xml test.nashorn
>>> [taskdef] Could not load definitions from resource net/sf/antcontrib/antcontri
>>
>> I just checked your nashorn/ sudirectory tree. I have the same version as checked in sourceforge.
>>
>>> test.nashorn:
>>> [echo] Compile:
>>> [javac] Compiling 1 source file to /Users/johncarlson/Downloads/www.web3d.or <http://www.web3d.or>
>>> [echo] Copy:
>>> [copy] Copying 1 file to /Users/johncarlson/Downloads/www.web3d.org/x3d/sty <http://www.web3d.org/x3d/sty>
>>> [copy] Copying /Users/johncarlson/Downloads/www.web3d.org/x3d/stylesheets/j <http://www.web3d.org/x3d/stylesheets/j>
>>> [copy] Copying 1 file to /Users/johncarlson/Downloads/www.web3d.org/x3d/sty <http://www.web3d.org/x3d/sty>
>>> [copy] Copying /Users/johncarlson/Downloads/www.web3d.org/x3d/stylesheets/j <http://www.web3d.org/x3d/stylesheets/j>
>>> [echo] Run:
>>> [java] parameter: source file HelloWorldProgramOutput.x3d filesize 21195 by
>>> [java] parameter: "-tojs" for conversion to X3DJSONLD JavaScript source
>>> [java] parameter: "-toFile" "nashorn/examples/HelloWorldProgramOutput.Nasho
>>> [java] convert to JS JavaScript:
>>> [java] Warning: toFileJavaScript() is overwriting prior file nashorn/exampl
>>> [java] Script DEF=colorTypeConversionScript contains CDATA source-code text
>>> [java] Script DEF=MaterialModulatorScript contains CDATA source-code text,
>>> [java] TypeError: input.readAllBytes is not a function
>>> [java] Error: Cannot read file [/Users/johncarlson/Downloads/www.web3d.org/ <http://www.web3d.org/>
>>> [java] org.web3d.x3d.sai.X3DException: ScriptException when processing file
>>> [java] at org.web3d.x3d.jsail.Core.X3DObject.toFileJavaScript(X3DObject
>>> [java] at org.web3d.x3d.jsail.CommandLine.run(CommandLine.java:628)
>>> [java] at org.web3d.x3d.jsail.CommandLine.main(CommandLine.java:163)
>>> [java] [Error] TODO problem handling local exception within CommandLine, ex
>>> [java] parameter: source file HelloWorldProgramOutput.x3d filesize 21195 by
>>> [java] parameter: "-toJSON" for conversion to JSON encoding
>>> [java] parameter: "-toFile" "nashorn/examples/HelloWorldProgramOutput.Java.
>>> [java] convert to JSON:
>>> [java] Warning: toFileStylesheetConversion(X3dToJson.xslt) is overwriting p
>>> [java] Script DEF=colorTypeConversionScript contains CDATA source-code text
>>> [java] Script DEF=MaterialModulatorScript contains CDATA source-code text,
>>> [java] file conversion successful: HelloWorldProgramOutput.Java.json (40043
>>> [java] parameter: source file HelloWorldProgramOutput.x3d filesize 21195 by
>>> [java] parameter: "-toX3D" for conversion to X3D encoding
>>> [java] parameter: "-toFile" "nashorn/examples/HelloWorldProgramOutput.Java.
>>> [java] convert to X3D:
>>> [java] Warning: toFileX3D() is overwriting prior file nashorn/examples/Hell
>>> [java] file conversion successful: HelloWorldProgramOutput.Java.x3d (21195
>>> [echo] ===========================================
>>> [echo] HelloWorldProgramOutput.Java.x3d
>>> [xmlvalidate] 1 file(s) have been successfully validated.
>>> [xmlvalidate] 1 file(s) have been successfully validated.
>>> [echo] matches HelloWorldProgramOutput.x3d: true
>>> [echo] ===========================================
>>> [echo] ===========================================
>>> [echo] HelloWorldProgramOutput.Java.json
>>> [echo] matches HelloWorldProgramOutput.json: false
>>> [echo] ===========================================
>>
>> Got this far OK. The next lines in nashorn/build.xml are
>>
>> <echo message="script:"/>
>> <!-- [... snip...] -->
>> <exec executable="jjs">
>> <arg value="-J-Djava.class.path=${java.dir}/jars/X3DJSAIL.3.3.full.jar"/>
>> <arg value="${nashorn.examples.dir}/HelloWorldProgramOutput.Nashorn.js"/>
>> </exec>
>>
>>> [echo] script:
>>> [exec] Exception in thread "main" java.lang.ExceptionInInitializerError
>>> [exec] at java.lang.Class.forName0(Native Method)
>>> [exec] at java.lang.Class.forName(Class.java:348)
>>> [exec] at jdk.nashorn.internal.runtime.Context.findClass(Context.java:1
>>> [exec] at jdk.nashorn.internal.objects.NativeJava.simpleType(NativeJava
>>> [exec] at jdk.nashorn.internal.objects.NativeJava.type(NativeJava.java:
>>> [exec] at jdk.nashorn.internal.objects.NativeJava.type(NativeJava.java:
>>> [exec] at jdk.nashorn.internal.objects.NativeJava.type(NativeJava.java:
>>> [exec] at jdk.nashorn.internal.scripts.Script$1$X3Dautoclass.:program(n
>>> [exec] at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(Script
>>> [exec] at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunc
>>> [exec] at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntim
>>> [exec] at jdk.nashorn.internal.runtime.Context.evaluateSource(Context.j
>>> [exec] at jdk.nashorn.internal.runtime.Context.load(Context.java:839)
>>> [exec] at jdk.nashorn.internal.objects.Global.load(Global.java:1545)
>>> [exec] at jdk.nashorn.internal.scripts.Script$HelloWorldProgramOutput_N
>>> [exec] at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(Script
>>> [exec] at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunc
>>> [exec] at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntim
>>> [exec] at jdk.nashorn.tools.Shell.apply(Shell.java:471)
>>> [exec] at jdk.nashorn.tools.Shell.runScripts(Shell.java:400)
>>> [exec] at jdk.nashorn.tools.Shell.run(Shell.java:179)
>>> [exec] at jdk.nashorn.tools.Shell.main(Shell.java:143)
>>> [exec] at jdk.nashorn.tools.Shell.main(Shell.java:119)
>>> [exec] Caused by: java.util.regex.PatternSyntaxException: Unclosed group ne
>>> [exec] (((\d|[1-9]\d+)(\s+(\d|[1-9]\d+)){2}(\s+((0x([a-f]|[A-F}|\d]){1,8})|
>>> [exec]
>>> [exec] at java.util.regex.Pattern.error(Pattern.java:1957)
>>> [exec] at java.util.regex.Pattern.accept(Pattern.java:1815)
>>> [exec] at java.util.regex.Pattern.group0(Pattern.java:2910)
>>> [exec] at java.util.regex.Pattern.sequence(Pattern.java:2053)
>>> [exec] at java.util.regex.Pattern.expr(Pattern.java:1998)
>>> [exec] at java.util.regex.Pattern.compile(Pattern.java:1698)
>>> [exec] at java.util.regex.Pattern.<init>(Pattern.java:1351)
>>> [exec] at java.util.regex.Pattern.compile(Pattern.java:1028)
>>> [exec] at org.web3d.x3d.jsail.fields.MFImageObject.<clinit>(MFImageObje
>>> [exec] ... 23 more
>>> [exec] Result: 1
>>
>> my output is differrent but still erroneous:
>>
>> ===========================================
>> script:
>> ../nashorn/examples/HelloWorldProgramOutput.Nashorn.js:1 TypeError: Cannot load script from nashorn/node/X3Dautoclass.js
>> Result: 102
>>
>> got a few other output errors too. that error log is attached.
>>
>> the partial regex above is truncated, looks like the first part of MFImage regex (or possibly SFImage). Full version from X3Dv4 schema:
>>
>> <xs:simpleType name="MFImage">
>> <xs:annotation>
>> <xs:appinfo>
>> <!-- problem with pattern validation of default value 0 0 0 -->
>> <xs:pattern value="(((\d|[1-9]\d+)(\s+(\d|[1-9]\d+)){2}(\s+((0x([a-f]|[A-F}|\d]){1,8})|[1-9]\d+|\d))*(\s)*(,)?(\s)*)*"/>
>> MFImage is an array of SFImage values.
>> </xs:appinfo>
>> <xs:documentation source="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/fieldsDef.html#SFImageAndMFImage"/>
>> </xs:annotation>
>> <xs:restriction base="xs:string">
>> <xs:minLength value="5"/>
>> </xs:restriction>
>> </xs:simpleType>
>>
>> hmmm. the fragment above [a-f]|[A-F} looks unbalanced. checking with regex101.com shows that it is indeed incorrect.
>>
>> fragments replaced with [a-f]|[A-F] and fixed another unmatched parenthesis in MFImage. they both pass regex101 validation now.
>>
>> just learned about static initializers in Java and then added regex confirmation in each of the field objects. that should reduce the number of future surprises we experience. example:
>>
>> ============================================================================================================
>> http://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/fields/SFVec3fObject.html#initialize--
>> ============================================================================================================
>>
>> // https://stackoverflow.com/questions/6454482/how-can-i-add-javadoc-to-a-static-initializer-in-java
>>
>> // static initializer
>> static {
>> try {
>> // verify pattern is compiling OK, report exception if not
>> java.util.regex.Pattern.compile(REGEX);
>>
>> // verify DEFAULT_VALUE matches pattern OK, report if not
>> if ((new SFVec3fObject(DEFAULT_VALUE)).matches() == false)
>> {
>> System.err.println("SFVec3fObject.initialize() problem: failed to match default value DEFAULT_VALUE " + DEFAULT_VALUE);
>> }
>> }
>> catch (java.util.regex.PatternSyntaxException exception)
>> {
>> System.err.println("Exception in SFVec3f initialization testing, regex pattern compilation failure");
>> System.err.println("REGEX = " + REGEX);
>> System.err.println(exception.getDescription());
>> }
>> }
>> ============================================================================================================
>> ============================================================================================================
>>
>> all checked in, now uploading x3d-4.0.xsd schema, X3DUOM v4, X3D Regular Expressions, X3DJSAIL. should be done in a couple of hours.
>>
>> and so, back to you!
>>
>> 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
>>
>> <nashorn.examples.build.out.txt>
>
More information about the x3d-public
mailing list