При попытке преобразовать таблицу стилей я получаю следующую ошибку от Java 1.8.0_251. Тем не менее, такое же преобразование таблицы стилей без каких-либо проблем с Java 1.8.0_241. Я получаю сообщение об ошибке, когда строка tFactory.newTransformer (stylesheet); выполняется.
Также использование xalan 2.7.2 вместо Java 1.8.0._251 также работает, но эта версия os xalan действительно старая.
Кто-нибудь сталкивался с чем-то подобным? Если да, то как решить?
SimpleNotWorking04.xsl https://drive.google.com/file/d/1pUiMvVtVBmBvCwfPXNW__pXVCiS4c3RV/view?usp=sharing
SimpleWorking04.xsl https://drive.google.com/file/d/1OsOflQzGErvVFVsrmriqa0gbODS2OWi5/view?usp=sharing
Если вы различаете два вышеуказанных файла, это всего лишь одна пустая строка, добавленная в SimpleNotWorking04.xsl, которая дает эту ошибку.
ОБРАТИТЕ ВНИМАНИЕ, что число после «Not targeting» (например, Not targeting 10980 :) изменится в зависимости от содержимого XSL .
com.sun.org.apache.bcel.internal.generic.ClassGenException: Not
targeting 10980: nop[0](1), but null ERROR:Not targeting 10980:
nop[0](1), but null
at com.sun.org.apache.bcel.internal.generic.BranchInstruction.updateTarget(BranchInstruction.java:217)
at com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator.outline(MethodGenerator.java:1738)
at com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator.outlineChunks(MethodGenerator.java:1169)
at com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator.getGeneratedMethods(MethodGenerator.java:1899)
at com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator.addMethod(ClassGenerator.java:137)
at com.sun.org.apache.xalan.internal.xsltc.compiler.Mode.compileNamedTemplate(Mode.java:557)
at com.sun.org.apache.xalan.internal.xsltc.compiler.Mode.compileTemplates(Mode.java:566)
at com.sun.org.apache.xalan.internal.xsltc.compiler.Mode.compileApplyTemplates(Mode.java:825)
at com.sun.org.apache.xalan.internal.xsltc.compiler.Stylesheet.compileModes(Stylesheet.java:622)
at com.sun.org.apache.xalan.internal.xsltc.compiler.Stylesheet.translate(Stylesheet.java:735)
at com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC.compile(XSLTC.java:478)
at com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC.compile(XSLTC.java:553)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:947)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:761)
at simpletest.SimpleTest.main(SimpleTest.java:24) ERROR: 'Could not compile stylesheet' FATAL ERROR: 'Not targeting 10980:
nop[0](1), but null'
:Not targeting 10980: nop[0](1), but null
Код простой, как показано ниже.
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.TransformerConfigurationException;
import java.io.File;
public class SimpleTest {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try{
StreamSource stylesheet = new StreamSource(new File("SimpleNotWorking04.xsl"));
TransformerFactory tFactory =TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(stylesheet);
}
catch(TransformerConfigurationException tce) {
System.out.println("ERROR:"+tce.getMessage());
}
catch(Exception e){
System.out.println("ERROR:"+e.getMessage());
}
catch(Throwable t){
System.out.println("ERROR:"+t.getMessage());
}
System.out.println("Done transformation!!");
}
}