You could decompile the enhanced entity to see where the enhancer went wrong.
-- Thanks, Rick On Fri, Apr 30, 2010 at 10:06 AM, Wes Wannemacher <[email protected]> wrote: > Guys, > > I have an entity that I decided to munge up a little bit... So, > normally, a setter would be coded like this - > > public void setFoo(String foo) { > this.foo = foo; > } > > But, we decided to try to uppercase everything before it goes into the > database. Now the relevant section of code looks like this - > > [code] > private String foo; > > @Column(length=32) > public String getFoo() { > return foo; > } > > public void setFoo(String foo) { > this.foo = (foo == null ? null : foo.toUppsercase()) ; > } > [/code] > > Our build process enhances the entities (using the ant task which > maven calls during the process-classes phase). Then, it unit tests > them, and right away, every entity that we tried to do this with > bombed out. There was an NPE in pcsetEntityName. The relevant portion > of the stack trace is below - > > Caused by: java.lang.NullPointerException > at > com.cdotech.amarg.entities.CDO_CageCode.pcsetCageCode(CDO_CageCode.java:55) > at com.cdotech.amarg.entities.CDO_CageCode.pcClearFields(CDO_CageCode.java) > at com.cdotech.amarg.entities.CDO_CageCode.pcNewInstance(CDO_CageCode.java) > at > org.apache.openjpa.kernel.SaveFieldManager.saveField(SaveFieldManager.java:132) > at org.apache.openjpa.kernel.StateManag > > I tried to look through the PCEnhancer, but I'm not familiar enough to > be effective figuring out the problem. At the same time, since the NPE > happens in the generated byte-code, it's *really* hard to figure out > what's going on. I'd like to provide more information, but this is as > much as I can see. > > For right now, we moved the capitalizing logic out of the entity, but > was wondering if there is a way to move it back to the entity... > > -Wes > > -- > Wes Wannemacher > > Head Engineer, WanTii, Inc. > Need Training? Struts, Spring, Maven, Tomcat... > Ask me for a quote! >
