CAD ファイルの load で java.lang.IllegalArgumentException: URI scheme is not "file" 発生

DXF 形式の CAD ファイルの読み込み (com.aspose.cad.Image#load()) で java.lang.IllegalArgumentException: URI scheme is not “file” 発生します。

例外が発生するプログラムは Spring Boot で作成した Web アプリケーションであり、ビルドツールである Gradle で Web アプリケーションを起動した場合 (gradlew bootRun など) は例外が発生しないのですが、アプリケーションを実行可能 Jar ファイル形式にして java -jar コマンドで起動すると発生します。

スタックトレースは以下のとおりです (プロジェクトに関連するパッケージ名は *** に変換しています)。

Caused by: java.lang.ExceptionInInitializerError: null
        at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
        at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
        at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300)
        at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103)
        at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200)
        at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549)
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
        at com.aspose.cad.internal.ak.aq.b(Unknown Source)
        at com.aspose.cad.internal.ak.aq.a(Unknown Source)
        at com.aspose.cad.internal.ak.y.a(Unknown Source)
        at com.aspose.cad.internal.N.c.a(Unknown Source)
        at com.aspose.cad.internal.eU.aW.a(Unknown Source)
        at com.aspose.cad.internal.eU.aW.a(Unknown Source)
        at com.aspose.cad.fileformats.cad.cadobjects.CadObjectBase.getStaticProperties_internalized(Unknown Source)
        at com.aspose.cad.fileformats.cad.cadobjects.CadObjectBase.a(Unknown Source)
        at com.aspose.cad.internal.ht.a.a(Unknown Source)
        at com.aspose.cad.internal.ht.f.b(Unknown Source)
        at com.aspose.cad.internal.ht.f.a(Unknown Source)
        at com.aspose.cad.fileformats.cad.cadtables.CadVportTableObject.a(Unknown Source)
        at com.aspose.cad.internal.gE.i.a(Unknown Source)
        at com.aspose.cad.internal.gE.i.a(Unknown Source)
        at com.aspose.cad.internal.gE.e.i(Unknown Source)
        at com.aspose.cad.internal.gE.e.C(Unknown Source)
        at com.aspose.cad.internal.gE.e.s(Unknown Source)
        at com.aspose.cad.internal.lV.r.a(Unknown Source)
        at com.aspose.cad.Image.a(Unknown Source)
        at com.aspose.cad.Image.load(Unknown Source)
        at ***.PdfConverterFromCad.convert(PdfConverterFromCad.java:32)
        at ***.QuotationRequestService.convertPdf(QuotationRequestService.java:848)
        at ***.QuotationRequestService.createPdfOnFileUpload(QuotationRequestService.java:691)
        at ***.QuotationRequestRestController.uploadFile(QuotationRequestRestController.java:587)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
        at org.springframework.aop.aspectj.AspectJAfterAdvice.invoke(AspectJAfterAdvice.java:49)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:173)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
        at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:58)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:173)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:385)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)
        at ***.QuotationRequestRestController$$SpringCGLIB$$0.uploadFile(<generated>)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:259)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:192)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:920)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:830)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
        ... 97 common frames omitted
Caused by: java.lang.IllegalArgumentException: URI scheme is not "file"
        at java.base/java.io.File.<init>(File.java:423)
        at com.aspose.cad.internal.lF.c.a(Unknown Source)
        at com.aspose.cad.internal.lF.c.a(Unknown Source)
        at com.aspose.cad.internal.gE.a.f(Unknown Source)
        at com.aspose.cad.internal.gE.a.e(Unknown Source)
        at com.aspose.cad.internal.gE.a.d(Unknown Source)
        at com.aspose.cad.internal.gE.a.<clinit>(Unknown Source)
        ... 160 common frames omitted

@KNK_seki,
こんにちは、
デモ プロジェクトを作成してここに添付していただけますか。こちらでもテストしてみます。

デモプロジェクトを作成しましたので添付します。

./gradlew bootRun では期待通り動作しますが、./gradlew build で jar ファイルをビルドし、build/libs 以下にできた jar ファイルを java -jar コマンドで実行すると例外が発生することを確認いただけると思います。

demo.zip (107.0 KB)

@KNK_seki,
ありがとうございます。このケースを調査するために CADJAVA-11967 を作成しました。