Hi,

I am on the same stage as you are. Have you figured out a way to put into 
those fields when going to the config page again?

Thanks

On Monday, August 20, 2012 9:23:29 AM UTC-7, ThomasBrouwer wrote:
>
> On, and the strange this is that the data is stored inside my objects, 
> they're just not put into those fields when going to the config page 
> again...
>
> On Monday, August 20, 2012 2:20:53 PM UTC+1, ThomasBrouwer wrote:
>>
>> Hi there!
>>
>> I'm trying to find the right code to store the inputs of a repeatable 
>> element into the same list. This is required because this is nested inside 
>> another repeatable element.
>>
>> Currently my jelly code is:
>>       <f:repeatable field="categories" minimum="0">
>>         <table width="100%">
>>           <f:entry title="Category Name" field="categoryName">
>>             <f:textbox />
>>           </f:entry>
>>           
>>           <f:entry title="Labels">
>>           <f:repeatable field="allLabels" minimum="0">
>>           <table width="100%">
>>           <f:entry title="Label name" field="labelNames">
>>           <f:textbox />
>>           </f:entry>
>>           </table>
>>           <div align="right">
>>           <f:repeatableDeleteButton/>
>>         </div>
>>           </f:repeatable>
>>           </f:entry>
>>           
>>         </table>
>>         <div align="right">
>>           <f:repeatableDeleteButton/>
>>         </div>
>>       </f:repeatable> 
>>
>> where the important bit is the labels fields.
>> The configure function in the DescriptorImpl class is:
>>         @Override
>>         public boolean configure(StaplerRequest req, JSONObject formData) 
>> throws FormException {
>>             req.bindJSON(this, formData);
>>             save();
>>             return true;
>>         }
>>
>> and the info is stored in another class ThrottleCategory with constructor:
>>         @DataBoundConstructor
>>         public ThrottleCategory(String categoryName,
>>                                 Integer maxConcurrentPerNode,
>>                                 Integer maxConcurrentTotal,
>>                                 List<String> allLabels) {
>>             this.maxConcurrentPerNode = maxConcurrentPerNode == null ? 0 
>> : maxConcurrentPerNode;
>>             this.maxConcurrentTotal = maxConcurrentTotal == null ? 0 : 
>> maxConcurrentTotal;
>>             this.categoryName = categoryName;
>>             this.allLabels = allLabels;
>>         }
>>
>> This all gives me an error suggesting the data from the list fields are 
>> in the wrong format or such:
>>
>> Exception: java.lang.IllegalArgumentException: Failed to instantiate 
>> class 
>> hudson.plugins.throttleconcurrents.ThrottleJobProperty$ThrottleCategory 
>> from 
>> {"allLabels":[{"labelNames":"label_1"},{"labelNames":"label_2"}],"categoryName":"category_1"}
>>  
>> Stacktrace:
>>
>> javax.servlet.ServletException: java.lang.IllegalArgumentException: Failed 
>> to instantiate class 
>> hudson.plugins.throttleconcurrents.ThrottleJobProperty$ThrottleCategory from 
>> {"allLabels":[{"labelNames":"label_1"},{"labelNames":"label_2"}],"categoryName":"category_1"}
>>      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:616)
>>      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
>>      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488)
>>      at org.kohsuke.stapler.Stapler.service(Stapler.java:162)
>>      at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
>>      at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
>>      at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
>>      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
>>      at 
>> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
>>      at 
>> hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
>>      at 
>> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
>>      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
>>      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
>>      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
>>      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
>>      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
>>      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
>>      at 
>> hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
>>      at 
>> hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
>>      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
>>      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
>>      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
>>      at 
>> org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
>>      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
>>      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
>>      at 
>> hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
>>      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
>>      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
>>      at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
>>      at 
>> winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215)
>>      at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138)
>>      at 
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>      at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
>>      at 
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>      at 
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>      at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.IllegalArgumentException: Failed to instantiate class 
>> hudson.plugins.throttleconcurrents.ThrottleJobProperty$ThrottleCategory from 
>> {"allLabels":[{"labelNames":"label_1"},{"labelNames":"label_2"}],"categoryName":"category_1"}
>>      at 
>> org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:633)
>>      at 
>> org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:669)
>>      at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:387)
>>      at 
>> hudson.plugins.throttleconcurrents.ThrottleJobProperty$DescriptorImpl.configure(ThrottleJobProperty.java:150)
>>      at jenkins.model.Jenkins.configureDescriptor(Jenkins.java:2686)
>>      at jenkins.model.Jenkins.doConfigSubmit(Jenkins.java:2649)
>>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>      at 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>      at 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at 
>> org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
>>      at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
>>      at 
>> org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
>>      at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
>>      at 
>> org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
>>      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
>>      ... 37 more
>> Caused by: java.lang.IllegalArgumentException: Failed to convert the 
>> allLabels parameter of the constructor public 
>> hudson.plugins.throttleconcurrents.ThrottleJobProperty$ThrottleCategory(java.lang.String,java.lang.Integer,java.lang.Integer,java.util.List)
>>      at 
>> org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:627)
>>      ... 52 more
>> Caused by: java.lang.IllegalArgumentException: Failed to instantiate class 
>> java.lang.String from {"labelNames":"label_1"}
>>      at 
>> org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:633)
>>      at 
>> org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:678)
>>      at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:377)
>>      at 
>> org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:625)
>>      ... 52 more
>> Caused by: org.kohsuke.stapler.NoStaplerConstructorException: There's no 
>> @DataBoundConstructor on any constructor of class java.lang.String
>>      at 
>> org.kohsuke.stapler.RequestImpl.loadConstructorParamNames(RequestImpl.java:485)
>>      at org.kohsuke.stapler.RequestImpl.access$100(RequestImpl.java:76)
>>      at 
>> org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:612)
>>      ... 55 more
>>
>>
>> What am I missing here/doing wrong?
>>
>> Thank you!
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to