Hello,
I've got some problems when using backslashes in recent versions of Clover ETL, i.e. in releases 2-3-2 and 2-3-3.
the following java code:
arr = str.split("\\|");
in an embedded java reformat class is not compilable.
it seems the new release doesn't handle backslashes as before.
in TL language it is not possible to refer to a property containing windows file paths. example: mystring = "${path}", where path could be "C:\somepath\somefile.txt"
release 2-1-3 worked properly in both cases.
thank you for any suggestion.
I've got some problems when using backslashes in recent versions of Clover ETL, i.e. in releases 2-3-2 and 2-3-3.
the following java code:
arr = str.split("\\|");
in an embedded java reformat class is not compilable.
it seems the new release doesn't handle backslashes as before.
in TL language it is not possible to refer to a property containing windows file paths. example: mystring = "${path}", where path could be "C:\somepath\somefile.txt"
release 2-1-3 worked properly in both cases.
thank you for any suggestion.
-
Hello, I try to be more precise on my problem..
this is a sample graph:
<?xml version="1.0" encoding="UTF-8"?>
<Graph name="path_problems">
<Global>
<Metadata id="myMetadata">
<Record name="" recordSize="-1" type="delimited">
<Field delimiter="|" name="field1" nullable="true" type="string"/>
<Field delimiter="\n" name="field2" nullable="true" type="string"/>
</Record>
</Metadata>
<Property fileURL="workspace.prm" id="GraphParameter0"/>
</Global>
<Phase number="0">
<Node enabled="enabled" fileURL="./inputfile.txt" id="INPUT" type="DELIMITED_DATA_READER"/>
<Node enabled="enabled" id="REF" type="REFORMAT">
<attr name="transform">
//#TL
function transform(){
$0.field1 := "${path}";
$0.field2 := $0.field2;
}
</attr>
</Node>
<Node enabled="enabled" fileURL="./outputfile.txt" id="OUTPUT" type="DELIMITED_DATA_WRITER"/>
<Edge debugMode="false" fromNode="INPUT:0" id="EDGE01" inPort="0 (REF)" metadata="myMetadata" outPort="0 (INPUT)" toNode="REF:0"/>
<Edge debugMode="false" fromNode="REF:0" id="EDGE02" inPort="0 (OUTPUT)" metadata="myMetadata" outPort="0 (REF)" toNode="OUTPUT:0"/>
</Phase>
</Graph>
when in properties file there is:
path=C:\onefile.txt
I got "C:onefile.txt", exactly what I expect, but if in properties file there is:
path=C:\\onefile.txt
I got the following error ->
DEBUG [WatchDog] - Opening input file ./inputfile.txt
DEBUG [WatchDog] - Reading input file ./inputfile.txt
DEBUG [WatchDog] - INPUT ...OK
ERROR [WatchDog] - org.jetel.interpreter.ParseException: unterminated string literal at line 5, column 22.
ERROR [WatchDog] - REF ...FAILED !
org.jetel.interpreter.ParseException: unterminated string literal at line 5, column 22.
at org.jetel.component.WrapperTL.init(WrapperTL.java:171)
at org.jetel.component.RecordTransformTL.init(RecordTransformTL.java:76)
at org.jetel.component.RecordTransformFactory.createTransform(RecordTransformFactory.java:99)
at org.jetel.component.Reformat.init(Reformat.java:236)
at org.jetel.graph.Phase.init(Phase.java:161)
at org.jetel.graph.runtime.WatchDog.executePhase(WatchDog.java:562)
at org.jetel.graph.runtime.WatchDog.run(WatchDog.java:164)
Caused by: org.jetel.interpreter.ParseException: unterminated string literal at line 5, column 22.
at org.jetel.interpreter.TransformLangParser.LitExp(TransformLangParser.java:1796)
at org.jetel.interpreter.TransformLangParser.PrimaryExpression(TransformLangParser.java:1590)
at org.jetel.interpreter.TransformLangParser.PostfixExpression(TransformLangParser.java:1384)
at org.jetel.interpreter.TransformLangParser.UnaryExpression(TransformLangParser.java:1515)
at org.jetel.interpreter.TransformLangParser.MultiplicativeExpression(TransformLangParser.java:1237)
at org.jetel.interpreter.TransformLangParser.AdditiveExpression(TransformLangParser.java:1157)
at org.jetel.interpreter.TransformLangParser.RelationalExpression(TransformLangParser.java:1037)
at org.jetel.interpreter.TransformLangParser.EqualityExpression(TransformLangParser.java:977)
at org.jetel.interpreter.TransformLangParser.ConditionalAndExpression(TransformLangParser.java:935)
at org.jetel.interpreter.TransformLangParser.ConditionalOrExpression(TransformLangParser.java:893)
at org.jetel.interpreter.TransformLangParser.Mapping(TransformLangParser.java:855)
at org.jetel.interpreter.TransformLangParser.FunctionDeclaration(TransformLangParser.java:538)
at org.jetel.interpreter.TransformLangParser.CompilationUnit(TransformLangParser.java:359)
at org.jetel.interpreter.TransformLangParser.Start(TransformLangParser.java:178)
at org.jetel.component.WrapperTL.init(WrapperTL.java:165)
... 6 more
ERROR [WatchDog] - !!! Phase finished with error - stopping graph run !!!
INFO [WatchDog] - -----------------------** Summary of Phases execution **---------------------
INFO [WatchDog] - Phase# Finished Status RunTime(sec) MemoryAllocation(KB)
INFO [WatchDog] - 0 N/A
INFO [WatchDog] - ------------------------------** End of Summary **---------------------------
INFO [main] - WatchDog thread finished - total execution time: 5 (sec)
FATAL [main] - Unexpected result when executing graph !
did anybody else find the same?
Thank you in advance for your suggestion
Please sign in to leave a comment.
Comments 1