[x3d-public] SFImage regex; X3DUOM? X3DJSAIL? results from test.nashorn: Unclosed group in regex
John Carlson
yottzumm at gmail.com
Fri Jun 15 00:11:28 PDT 2018
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