IllegalArgumentException on startup

10 views
Skip to first unread message

Rick Mann

unread,
Oct 12, 2016, 9:54:29 PM10/12/16
to Baratine
I'm trying to build an app based on the Auction app. I've tried to implement the basics for creating a new User, with some slight changes, but I think I'm fairly close.

However, upon starting the server, I get this in the logs:

IllegalArgumentException: 'login' is an unknown
field in AssetInfo[class
com.latencyzero.hoa.UserImpl:User]

What does that mean? My code compiles, and I'm not sure where it's looking for "login". There are so many objects that duplicate data in the Auction app, it's hard to keep track of which is which. In my case, I've named my instance variables slightly differently. In UserImpl, it's "mLogin", but in the DTOs, it's "login". Thing is, my code accesses all the right things, so why is Baratine trying to find "login"?

More context:
QueryMessageDebug_N[addTable,to=anon:DatabaseServiceKelpImpl,state=SENT,result=io.baratine.service.ResultImpl$AdapterMake,@com.caucho.v5.kelp.TableBuilderKelp.build(TableBuilderKelp.java:246)]
java.lang.IllegalArgumentException: 'login' is an unknown field in AssetInfo[class com.latencyzero.hoa.UserImpl:User]
at com.caucho.v5.ramp.vault.MethodParserVault.error(MethodParserVault.java:351)
at com.caucho.v5.ramp.vault.MethodParserVault.fieldTerm(MethodParserVault.java:345)
at com.caucho.v5.ramp.vault.MethodParserVault.parseBy(MethodParserVault.java:260)
at com.caucho.v5.ramp.vault.MethodParserVault.parseFind(MethodParserVault.java:215)
at com.caucho.v5.ramp.vault.MethodParserVault.parse(MethodParserVault.java:84)
at com.caucho.v5.ramp.vault.VaultDriverDataImpl.newMethod(VaultDriverDataImpl.java:717)
at com.caucho.v5.amp.vault.VaultDriverBase.newMethodRec(VaultDriverBase.java:208)
at com.caucho.v5.amp.vault.VaultDriverBase.newMethodRec(VaultDriverBase.java:220)
at com.caucho.v5.amp.vault.VaultDriverBase.newMethod(VaultDriverBase.java:184)
at com.latencyzero.hoa.UserVault__Vault.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at com.caucho.v5.amp.vault.ClassGeneratorVault.create(ClassGeneratorVault.java:141)
at com.caucho.v5.amp.vault.StubGeneratorVault.factoryVault(StubGeneratorVault.java:115)
at com.caucho.v5.amp.vault.StubGeneratorVault.factory(StubGeneratorVault.java:70)
at com.caucho.v5.amp.service.ServiceBuilderImpl.pluginFactory(ServiceBuilderImpl.java:918)
at com.caucho.v5.amp.service.ServiceBuilderImpl.buildService(ServiceBuilderImpl.java:851)
at com.caucho.v5.amp.service.ServiceBuilderImpl.ref(ServiceBuilderImpl.java:774)
at com.caucho.v5.amp.manager.ServicesBuilderImpl$ServiceBuilderStart.ref(ServicesBuilderImpl.java:721)
at com.caucho.v5.amp.manager.ServicesBuilderImpl.get(ServicesBuilderImpl.java:479)
at com.caucho.v5.amp.manager.ServicesBuilderImpl.start(ServicesBuilderImpl.java:441)
at com.caucho.v5.web.webapp.WebAppBuilder.build(WebAppBuilder.java:305)
at com.caucho.v5.web.webapp.WebApp.<init>(WebApp.java:106)
at com.caucho.v5.web.webapp.WebAppBuilder.init(WebAppBuilder.java:186)
at com.caucho.v5.web.webapp.WebAppBuilderFramework.init(WebAppBuilderFramework.java:70)
at com.caucho.v5.web.webapp.WebAppFactory.get(WebAppFactory.java:266)
at com.caucho.v5.web.webapp.WebAppFactory.get(WebAppFactory.java:48)
at com.caucho.v5.deploy2.DeployService2Impl.startImpl(DeployService2Impl.java:285)
at com.caucho.v5.deploy2.DeployService2Impl.restartImpl(DeployService2Impl.java:358)
at com.caucho.v5.deploy2.Strategy2Base.start(Strategy2Base.java:72)
at com.caucho.v5.deploy2.DeployService2Impl.start(DeployService2Impl.java:219)
at com.caucho.v5.amp.stub.MethodStubResult_N.query(MethodStubResult_N.java:273)
at com.caucho.v5.amp.spi.StubStateAmp.query(StubStateAmp.java:263)
at com.caucho.v5.amp.message.QueryWithResultMessage_N.invokeQuery(QueryWithResultMessage_N.java:81)
at com.caucho.v5.amp.message.QueryMessageBase$State$1.invoke(QueryMessageBase.java:364)
at com.caucho.v5.amp.message.QueryMessageBase.invoke(QueryMessageBase.java:275)
at com.caucho.v5.amp.inbox.DeliverInbox.deliver(DeliverInbox.java:104)
at com.caucho.v5.amp.inbox.DeliverInboxDebug.deliver(DeliverInboxDebug.java:63)
at com.caucho.v5.amp.inbox.DeliverInboxDebug.deliver(DeliverInboxDebug.java:40)
at com.caucho.v5.amp.deliver.WorkerDeliverSingleThread.runOneImpl(WorkerDeliverSingleThread.java:115)
at com.caucho.v5.amp.deliver.WorkerDeliverBase.runOneStarted(WorkerDeliverBase.java:313)
at com.caucho.v5.amp.deliver.WorkerDeliverBase.runOne(WorkerDeliverBase.java:218)
at com.caucho.v5.amp.deliver.OutboxImpl.flushAndExecuteLast(OutboxImpl.java:102)
at com.caucho.v5.amp.manager.ServiceManagerProviderCore.flushOutboxAndExecuteLast(ServiceManagerProvideava:139)
at io.baratine.service.ServiceRef.flushOutboxAndExecuteLast(ServiceRef.java:174)
at io.baratine.service.ResultFuture.get(ResultFuture.java:100)
at com.caucho.v5.amp.proxy.MessageFactoryDebug.queryFuture(MessageFactoryDebug.java:262)
at com.caucho.v5.deploy2.DeployService2Sync__AmpProxy.start(Unknown Source)
at com.caucho.v5.deploy2.DeployHandle2Base.start(DeployHandle2Base.java:173)
at com.caucho.v5.web.webapp.HttpBaratine.start(HttpBaratine.java:89)
at com.caucho.v5.http.container.HttpSystem.start(HttpSystem.java:88)
at com.caucho.v5.subsystem.SystemManager.startSystems(SystemManager.java:552)
at com.caucho.v5.subsystem.SystemManager.start(SystemManager.java:519)
at com.caucho.v5.web.builder.WebServerBuilderImpl.build(WebServerBuilderImpl.java:960)
at com.caucho.v5.web.builder.WebServerBuilderBaratine.build(WebServerBuilderBaratine.java:101)
at com.caucho.v5.web.builder.WebServerBuilderImpl.start(WebServerBuilderImpl.java:597)
at io.baratine.web.Web.start(Web.java:388)
at com.latencyzero.hoa.App.main(App.java:193)

Thanks!

--
Rick Mann
rm...@latencyzero.com


Alex Rojkov

unread,
Oct 12, 2016, 10:12:33 PM10/12/16
to Rick Mann, Baratine
Look at the .UserVault class and check that finder methods map to fields.

For example findByLogin is going to strip findBy and look for 'login'
field on an asset.

Since you've renamed it to mLogin the validation tells you don't have
the field referenced by the finder.

Alex
> --
> You received this message because you are subscribed to the Google Groups "Baratine" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to baratine-io...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Rick Mann

unread,
Oct 12, 2016, 10:17:51 PM10/12/16
to Baratine
Ah, that's where it's getting "login," I see. Thank you. Is there an @FindBy("mLogin") annotation? Would that be reasonable?

Thanks.
--
Rick Mann
rm...@latencyzero.com


Alex Rojkov

unread,
Oct 12, 2016, 10:20:11 PM10/12/16
to Rick Mann, Baratine
May be, but there is no such annotation at the moment. As we get more
feedback we will look into adding things.
Alex

Rick Mann

unread,
Oct 12, 2016, 10:21:42 PM10/12/16
to Baratine
Okay, that's fine for now. Now I gotta figure out how to get the REST service to respond. I'll post a different thread.
--
Rick Mann
rm...@latencyzero.com


Reply all
Reply to author
Forward
0 new messages