Is anyone using AutoBean in a JRE environment successfully? When trying a very simple test I get a NPE when I try to use AutoBeanCodex.encode(myAutoBean)
My Bean interfaces look like this: public static interface Point { Long getX(); Long getY(); void setX(Long x); void setY(Long y); } public static interface PointList { String getName(); void setName(String name); List<Point> getPoints(); void setPoints(List<Point> points); } I'll omit the implementations for brevity but they are just standard objects with some getters/setters. My bean factory: public static interface MyFactory extends AutoBeanFactory { AutoBean<Point> point(); AutoBean<Point> point(Point instance); AutoBean<PointList> pointList(); AutoBean<PointList> pointList(PointList instance); } I can create the AutoBean<Point> , AutoBean<PointList> ok from my factory. I can use AutoBeanCodex to encode a Point, and it emits the correct Json. If I try an encode a PointList object however, AutoBeanCodex.encode() throws a NPE. Its certainly the List<Point> which is causing it, as if I remove it, it works ok. And If I make PointList contain a few direct references to Point beans, that also works (so if PointList has 'Point getPointA()', 'Point getPointB()', it does encode everything correctly.) Am I missing something obvious? The code to test is below. public void listtest() { Point o = new PointImpl(); Point n = new PointImpl(); PointList plist = new PointListImpl(); List<Point> points = new ArrayList<Point>(); o.setX(20L); o.setY(30L); n.setY(60L); n.setX(80L); points.add(o); points.add(n); plist.setName("OH"); plist.setPoints(points); MyFactory fact = AutoBeanFactorySource.create(MyFactory.class); AutoBean<PointList> alist = fact.pointList(plist); System.out.println("Splittable Payload:" + AutoBeanCodex.encode(alist).getPayload()); } java.lang.NullPointerException at com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.doEncode(AutoBeanCodexImpl.java:558) at com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl$ObjectCoder.encode(AutoBeanCodexImpl.java:321) at com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl$CollectionCoder.encode(AutoBeanCodexImpl.java:163) at com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl$PropertyGetter.encodeProperty(AutoBeanCodexImpl.java:413) at com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl$PropertyGetter.visitReferenceProperty(AutoBeanCodexImpl.java:389) at com.google.web.bindery.autobean.shared.AutoBeanVisitor.visitCollectionProperty(AutoBeanVisitor.java:229) at com.google.web.bindery.autobean.vm.impl.ProxyAutoBean.traverseProperties(ProxyAutoBean.java:300) at com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.traverse(AbstractAutoBean.java:166) at com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.accept(AbstractAutoBean.java:101) at com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.doEncode(AutoBeanCodexImpl.java:558) at com.google.web.bindery.autobean.shared.AutoBeanCodex.encode(AutoBeanCodex.java:83) at temp.AutoBeanListTest.listtest(AutoBeanListTest.java:111) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.junit.runners.ParentRunner.run(ParentRunner.java:292) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.