Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
-<http://localhost:8984/rest/11360/objects/47/2e/63/66/472e6366-627c-42ac-b8fd-f131b48bf3fc> a fedora:Container , fedora:Resource ;
+<http://localhost:8984/rest/11360/objects/47/2e/63/66/472e6366-627c-42ac-b8fd-f131b48bf3fc> a fedora:Container , ldp:Container , ldp:RDFSource , fedora:Resource ;
fedora:Resource ;

 

During execution the following errors were thrown in fedora's terminal:

Code Block
ERROR 18:29:01.923 (FedoraInvalidNamespaceExceptionMapper) NamespaceExceptionMapper caught an exception: Prefix fcr has not been registered
ERROR 18:36:22.781 (velocity) VelocimacroProxy.render() : exception VM = #triples()
 org.eclipse.jetty.io.EofException: null
 at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:192) ~[jetty-io-9.3.1.v20150714.jar:9.2.3.v20140905]
 at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:337) ~[jetty-io-9.3.1.v20150714.jar:9.2.3.v20140905]
 at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:128) ~[jetty-io-9.3.1.v20150714.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:646) ~[jetty-server-9.3.1.v20150714.jar:9.2.3.v20140905]
 at org.eclipse.jetty.util.IteratingCallback.processIterations(IteratingCallback.java:233) ~[jetty-util-9.3.1.v20150714.jar:9.2.3.v20140905]
 at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:193) ~[jetty-util-9.3.1.v20150714.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:457) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:769) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:802) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:139) ~[jetty-server-9.3.1.v20150714.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:132) ~[jetty-server-9.3.1.v20150714.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:347) ~[jetty-server-9.3.1.v20150714.jar:9.2.3.v20140905]
 at org.glassfish.jersey.servlet.internal.ResponseWriter$NonCloseableOutputStreamWrapper.write(ResponseWriter.java:325) ~[jersey-container-servlet-core-2.22.2.jar:na]
 at org.glassfish.jersey.message.internal.CommittingOutputStream.write(CommittingOutputStream.java:229) ~[jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$UnCloseableOutputStream.write(WriterInterceptorExecutor.java:299) ~[jersey-common-2.22.2.jar:na]
 at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) ~[na:1.8.0_31]
 at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:282) ~[na:1.8.0_31]
 at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125) ~[na:1.8.0_31]
 at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:135) ~[na:1.8.0_31]
 at java.io.OutputStreamWriter.write(OutputStreamWriter.java:220) ~[na:1.8.0_31]
 at java.io.Writer.write(Writer.java:157) ~[na:1.8.0_31]
 at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:491) ~[velocity-1.7.jar:1.7]
 at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) ~[velocity-1.7.jar:1.7]
 at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87) ~[velocity-1.7.jar:1.7]
 at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) ~[velocity-1.7.jar:1.7]
 at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:420) ~[velocity-1.7.jar:1.7]
 at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207) [velocity-1.7.jar:1.7]
 at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) ~[velocity-1.7.jar:1.7]
 at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216) ~[velocity-1.7.jar:1.7]
 at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311) [velocity-1.7.jar:1.7]
 at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230) [velocity-1.7.jar:1.7]
 at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207) [velocity-1.7.jar:1.7]
 at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) [velocity-1.7.jar:1.7]
 at org.apache.velocity.Template.merge(Template.java:356) [velocity-1.7.jar:1.7]
 at org.apache.velocity.Template.merge(Template.java:260) [velocity-1.7.jar:1.7]
 at org.fcrepo.http.api.responses.StreamingBaseHtmlProvider.writeTo(StreamingBaseHtmlProvider.java:171) [fcrepo-http-api-4.7.0.jar:4.7.0]
 at org.fcrepo.http.api.responses.StreamingBaseHtmlProvider.writeTo(StreamingBaseHtmlProvider.java:76) [fcrepo-http-api-4.7.0.jar:4.7.0]
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:265) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:250) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:106) [jersey-server-2.22.2.jar:na]
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:86) [jersey-server-2.22.2.jar:na]
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1130) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:711) [jersey-server-2.22.2.jar:na]
 at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:444) [jersey-server-2.22.2.jar:na]
 at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:434) [jersey-server-2.22.2.jar:na]
 at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:329) [jersey-server-2.22.2.jar:na]
 at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.internal.Errors.process(Errors.java:315) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.internal.Errors.process(Errors.java:297) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.internal.Errors.process(Errors.java:267) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) [jersey-common-2.22.2.jar:na]
 at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) [jersey-server-2.22.2.jar:na]
 at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) [jersey-server-2.22.2.jar:na]
 at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) [jersey-container-servlet-core-2.22.2.jar:na]
 at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) [jersey-container-servlet-core-2.22.2.jar:na]
 at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) [jersey-container-servlet-core-2.22.2.jar:na]
 at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) [jersey-container-servlet-core-2.22.2.jar:na]
 at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) [jersey-container-servlet-core-2.22.2.jar:na]
 at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:769) [jetty-servlet-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [jetty-servlet-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [jetty-security-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [jetty-servlet-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.Server.handle(Server.java:497) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248) [jetty-server-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [jetty-io-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:610) [jetty-util-9.2.3.v20140905.jar:9.2.3.v20140905]
 at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:539) [jetty-util-9.2.3.v20140905.jar:9.2.3.v20140905]
 at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31]
 Caused by: java.io.IOException: Broken pipe
 at sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[na:1.8.0_31]
 at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51) ~[na:1.8.0_31]
 at sun.nio.ch.IOUtil.write(IOUtil.java:148) ~[na:1.8.0_31]
 at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:503) ~[na:1.8.0_31]
 at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:172) ~[jetty-io-9.3.1.v20150714.jar:9.2.3.v20140905]
 ... 81 common frames omitted
 ERROR 18:36:22.783 (velocity) Exception in macro #triples called at /views/resource.vsl[line 47, column 21]
 Jan 30, 2017 6:36:22 PM org.glassfish.jersey.server.ServerRuntime$Responder writeResponse
 SEVERE: An I/O error has occurred while writing a response message entity to the container output stream.
 org.glassfish.jersey.server.internal.process.MappableException: org.apache.velocity.exception.VelocityException: VelocimacroProxy.render() : exception VM = #triples()
 at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:92)
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
 at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1130)
 at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:711)
 at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:444)
 at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:434)
 at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:329)
 at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
 at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
 at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
 at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
 at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
 at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
 at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
 at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
 at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
 at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
 at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
 at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
 at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
 at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:769)
 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
 at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125)
 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
 at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
 at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
 at org.eclipse.jetty.server.Server.handle(Server.java:497)
 at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
 at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)
 at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
 at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:610)
 at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:539)
 at java.lang.Thread.run(Thread.java:745)
 Caused by: org.apache.velocity.exception.VelocityException: VelocimacroProxy.render() : exception VM = #triples()
 at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:228)
 at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311)
 at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230)
 at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
 at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
 at org.apache.velocity.Template.merge(Template.java:356)
 at org.apache.velocity.Template.merge(Template.java:260)
 at org.fcrepo.http.api.responses.StreamingBaseHtmlProvider.writeTo(StreamingBaseHtmlProvider.java:171)
 at org.fcrepo.http.api.responses.StreamingBaseHtmlProvider.writeTo(StreamingBaseHtmlProvider.java:76)
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:265)
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:250)
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
 at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:106)
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
 at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:86)
 ... 39 more
 Caused by: org.eclipse.jetty.io.EofException
 at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:192)
 at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:337)
 at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:128)
 at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:646)
 at org.eclipse.jetty.util.IteratingCallback.processIterations(IteratingCallback.java:233)
 at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:193)
 at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:457)
 at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:769)
 at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:802)
 at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:139)
 at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:132)
 at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:347)
 at org.glassfish.jersey.servlet.internal.ResponseWriter$NonCloseableOutputStreamWrapper.write(ResponseWriter.java:325)
 at org.glassfish.jersey.message.internal.CommittingOutputStream.write(CommittingOutputStream.java:229)
 at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$UnCloseableOutputStream.write(WriterInterceptorExecutor.java:299)
 at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
 at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:282)
 at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
 at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:135)
 at java.io.OutputStreamWriter.write(OutputStreamWriter.java:220)
 at java.io.Writer.write(Writer.java:157)
 at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:491)
 at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
 at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
 at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
 at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:420)
 at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
 at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
 at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216)
 ... 53 more
 Caused by: java.io.IOException: Broken pipe
 at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
 at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
 at sun.nio.ch.IOUtil.write(IOUtil.java:148)
 at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:503)
 at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:172)
 ... 81 more



Test 2 Conclusions

  1.  Still some work to do to make round-trips possible, unless the representational differences are considered semantically identical because of the definition of fedora:Container, for example.  It seems unnecessary to have the behavior diverge between turtle and json+ld, though.  
  2.  Datestamps still vary, a known issue, if I understand correctly.
  3. Image Added Unclear what effect the exceptions had on data, if any.


Comments:

  • Generating a config implicitly and then using it on subsequent operations means that those who expect their command-line options to apply only for that command will be surprised.
  • Generating a config to /var means that on certain OS, the config will be lost upon system restart.  So those who rely on the persistence of previous command line options will also be surprised.
  • Generating a config on first execution means that order of operation between otherwise independent calls matters (say, 3 calls, each exporting a different object with different options).
  • I would recommend an explicit --set-config or --write-config option to eliminate these 3 categories of surprise.  

...