Hi Paul Does this (from the Johnzon mailing list yesterday): http://mail-archives.apache.org/mod_mbox/johnzon-dev/201902.mbox/browser sound similar to your issue?
Regards Jon On Tue, Feb 26, 2019 at 12:29 AM Jonathan Gallimore < jonathan.gallim...@gmail.com> wrote: > I'd be pretty surprised if the ear vs war deployment made a difference, > but you never know... feel free to send your working war sample over, it > might just help us bootstrap something. It would be useful to get the full > guru.jini.arch.impl.json.JsonImpl.toObject and > guru.jini.arch.impl.json.JsonImpl.toList methods. Or the whole > guru.jini.arch.impl.json.JsonImpl class, if you're able to share it. We can > help set up something to hammer that code. > > Also, can we get the rest of the stack below > guru.jini.arch.impl.json.JsonImpl.toList/toObject? > > Thanks > > Jon > > On Mon, Feb 25, 2019 at 11:59 PM Paul Carter-Brown > <paul.carter-br...@jini.guru> wrote: > >> Hi Daniel, >> >> For the life of me I cannot recreate the issue in a simple project with a >> WAR. My project is an EAR with multiple WARS. I will continue trying but >> in >> the meantime wondered if anyone has any clues where to look? >> >> Paul Carter-Brown >> Director >> Jini Guru >> m: +27 (0) 83 442 7179 <+27834427179> >> a: 1st Floor, Golf House, Design Quarter, Cnr. William Nicol and Leslie >> Johannesburg, South Africa >> w: jini.guru e: p...@jini.guru >> >> Disclaimer: This message and/or attachment(s) may contain >> privileged, confidential and/or personal information. If you are not the >> intended recipient you may not disclose or distribute any of >> the information contained within this message. In such case you must >> destroy this message and inform the sender of the error. Jini Guru may not >> accept liability for any errors, omissions, information and viruses >> contained in the transmission of this message. Any opinions, conclusions >> and other information contained within this message not related to Jini >> Guru official business is deemed to be that of the individual only and is >> not endorsed by Jini Guru. >> >> >> >> On Mon, Feb 25, 2019 at 7:41 PM Daniel Cunha <daniels...@apache.org> >> wrote: >> >> > Hi Paul, >> > >> > could you share a sample project with your issue? >> > It will help to reproduce and analyze your case. >> > >> > Thank you. >> > >> > Em seg, 25 de fev de 2019 às 14:35, Paul Carter-Brown >> > <paul.carter-br...@jini.guru> escreveu: >> > >> > > Hi, >> > > >> > > I'm using Johnzon in TomEE 8.0.0-M2. In some rest calls, I do my own >> > > marshalling from a string to an Object. Intermittently (maybe 50% of >> the >> > > times I bounce TomEE), after TomEE starts and I send rest requests to >> the >> > > server, threads lock up and I get timeouts. It appears as though the >> > > threads never free up and get stuck in one of two states: >> > > >> > > "TomEE-Exec-1" #228 daemon prio=5 os_prio=0 tid=0x00007fddb0b22800 >> > > nid=0x1e4 in Object.wait() [0x00007fddac4df000] >> > > java.lang.Thread.State: RUNNABLE >> > > at >> > > >> > > >> > >> org.apache.johnzon.core.JsonArrayBuilderImpl.build(JsonArrayBuilderImpl.java:319) >> > > at >> > > >> org.apache.johnzon.core.JsonReaderImpl.readValue(JsonReaderImpl.java:100) >> > > at >> > > >> > > >> > >> org.apache.johnzon.mapper.MappingParserImpl.readObject(MappingParserImpl.java:125) >> > > at org.apache.johnzon.mapper.Mapper.mapObject(Mapper.java:254) >> > > at org.apache.johnzon.mapper.Mapper.readCollection(Mapper.java:202) >> > > at >> org.apache.johnzon.jsonb.JohnzonJsonb.fromJson(JohnzonJsonb.java:190) >> > > at guru.jini.arch.impl.json.JsonImpl.toList(JsonImpl.java:129) >> > > >> > > OR >> > > >> > > "TomEE-Exec-6" #237 daemon prio=5 os_prio=0 tid=0x00007fddb008d000 >> > > nid=0x224 in Object.wait() [0x00007fddb4bce000] >> > > java.lang.Thread.State: RUNNABLE >> > > at >> > > >> > > >> > >> org.apache.johnzon.core.JsonObjectBuilderImpl.add(JsonObjectBuilderImpl.java:122) >> > > at >> > > >> > >> org.apache.johnzon.core.JsonReaderImpl.parseObject(JsonReaderImpl.java:221) >> > > at >> > org.apache.johnzon.core.JsonReaderImpl.readValue(JsonReaderImpl.java:83) >> > > at >> > > >> > > >> > >> org.apache.johnzon.mapper.MappingParserImpl.readObject(MappingParserImpl.java:125) >> > > at org.apache.johnzon.mapper.Mapper.mapObject(Mapper.java:254) >> > > at org.apache.johnzon.mapper.Mapper.readObject(Mapper.java:189) >> > > at org.apache.johnzon.mapper.Mapper.readObject(Mapper.java:184) >> > > at >> org.apache.johnzon.jsonb.JohnzonJsonb.fromJson(JohnzonJsonb.java:58) >> > > at guru.jini.arch.impl.json.JsonImpl.toObject(JsonImpl.java:124) >> > > >> > > The more requests I send the more threads end up in one of these 2 >> > states. >> > > This happens irrespective of the string I am marshalling to an object >> and >> > > irrespective of the class I am trying to marshal to. >> > > The threads are not in a loop as the CPU remains low and if I run >> jstack >> > > over and over these threads remain in the same state. >> > > See how the threads are RUNNABLE and yet are in Object.wait(). I >> cannot >> > > understand what is going on as both those lines of code seem innocent >> > > enough so what are they waiting for??? >> > > >> > > I can then bounce the JVM and it can work flawlessly and then bounce >> it >> > > again and the issue can happen. Its as though there is a race >> condition >> > in >> > > the boot process that puts things into a weird state. >> > > >> > > in guru.jini.arch.impl.json.JsonImpl I create the jsonb as follows. >> I've >> > > tried sharing a single instance as well as creating a new one on each >> > call >> > > - with no change in results: >> > > >> > > JsonbConfig config = new JsonbConfig() >> > > .withPropertyVisibilityStrategy(new >> > > PropertyVisibilityStrategy() { >> > > @Override >> > > public boolean isVisible(Field field) { >> > > return Modifier.isPublic(field.getModifiers()) >> > > || >> > > Modifier.isProtected(field.getModifiers()); >> > > } >> > > >> > > @Override >> > > public boolean isVisible(Method method) { >> > > return >> Modifier.isPublic(method.getModifiers()); >> > > } >> > > }) >> > > .withAdapters(new ZonedDateTimeAdapter()); >> > > jsonb = JsonbBuilder.newBuilder().withConfig(config).build(); >> > > >> > > >> > > >> > > Paul Carter-Brown >> > > Director >> > > Jini Guru >> > > m: +27 (0) 83 442 7179 <+27834427179> >> > > a: 1st Floor, Golf House, Design Quarter, Cnr. William Nicol and >> Leslie >> > > Johannesburg, South Africa >> > > w: jini.guru e: p...@jini.guru >> > > >> > > Disclaimer: This message and/or attachment(s) may contain >> > > privileged, confidential and/or personal information. If you are not >> the >> > > intended recipient you may not disclose or distribute any of >> > > the information contained within this message. In such case you must >> > > destroy this message and inform the sender of the error. Jini Guru may >> > not >> > > accept liability for any errors, omissions, information and viruses >> > > contained in the transmission of this message. Any opinions, >> conclusions >> > > and other information contained within this message not related to >> Jini >> > > Guru official business is deemed to be that of the individual only >> and is >> > > not endorsed by Jini Guru. >> > > >> > >> > >> > -- >> > Daniel "soro" Cunha >> > https://twitter.com/dvlc_ >> > >> >