Actually... getStartNode marked with @Nonnull, as well as getExecution(),
so one of them is null. Execution maybe?

On Tue, Mar 22, 2016 at 8:17 AM Sergei Egorov <[email protected]> wrote:

> Hi Michael,
>
> Wow, interesting finding!
>
> I checked with the sources and looks like it's not an issue of the plugin
> itself, but StepEndNode. Jackson in plugin configured to serialize only
> pre-configured fields/methods, and any new object in the domain will not
> affect it.
>
> What I see here is that StepEndNode::getTypeDisplayName throws an NPE.
> From StepEndNode's source code, I see that there are no checks for
> getStartNode() result, and for some reason it's null. This is a good place
> to start if you want to figure out what's wrong in your setup (even better
> if you can put conditional breakpoint on getTypeDisplayName and
> "getStartNode() == null", because I see (in code) that it might be null,
> but getTypeDisplayName is not null-safe.
>
> On Tue, Mar 22, 2016 at 8:00 AM Michael Neale <[email protected]>
> wrote:
>
>> As luck would have it, I notice this is tripped by by having global lib
>> variables added in (basically, DSLs). Is there a JIRA project for this?
>>
>> (not a huge thing, I can't imagine many would run into this, but it looks
>> like it gets upset if not all the things are serializable).
>>
>> Caused by: com.fasterxml.jackson.databind.JsonMappingException: (was
>> java.lang.NullPointerException) (through reference chain:
>> org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode["typeDisplayName"])
>>
>> at
>> com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:141)
>>
>> at
>> com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3559)
>>
>> at
>> com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:2909)
>>
>> at
>> com.github.bsideup.jenkins.pipeline.ui.view.PipelineViewApi.doNodes(PipelineViewApi.java:75)
>>
>> ... 89 more
>>
>> Caused by: java.lang.IllegalArgumentException: (was
>> java.lang.NullPointerException) (through reference chain:
>> org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode["typeDisplayName"])
>>
>> at
>> com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:3459)
>>
>> at
>> com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:3378)
>>
>> at
>> com.github.bsideup.jenkins.pipeline.ui.view.PipelineViewApi$2.apply(PipelineViewApi.java:78)
>>
>> at
>> com.github.bsideup.jenkins.pipeline.ui.view.PipelineViewApi$2.apply(PipelineViewApi.java:75)
>>
>> at com.google.common.collect.Iterators$8.next(Iterators.java:812)
>>
>> at
>> com.fasterxml.jackson.databind.ser.std.IterableSerializer.serializeContents(IterableSerializer.java:89)
>>
>> at
>> com.fasterxml.jackson.databind.ser.std.IterableSerializer.serialize(IterableSerializer.java:74)
>>
>> at
>> com.fasterxml.jackson.databind.ser.std.IterableSerializer.serialize(IterableSerializer.java:12)
>>
>> at
>> com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:130)
>>
>> ... 92 more
>>
>> On Tuesday, March 22, 2016 at 10:49:54 AM UTC+11, Michael Neale wrote:
>>>
>>> Very cool, and I like the use of react!
>>>
>>> On Monday, March 21, 2016 at 5:52:04 PM UTC+11, Sergei Egorov wrote:
>>>>
>>>> Hey everyone,
>>>>
>>>> Yesterday I decided to publish sources for my pipeline visualization
>>>> plugin: https://github.com/bsideup/jenkins-pipeline-view
>>>>
>>>> <https://lh3.googleusercontent.com/-t28IjO2m73U/Vu-VVrauoEI/AAAAAAAAAyI/tiF8TH7YVCYiqI4n78DvC0FQ21ir46LNg/s1600/screenshot.png>
>>>>
>>>>
>>>> What's cool about it?
>>>> First of all, it *can handle any graph* provided by pipeline because
>>>> it uses very powerful *JS graph library* to position steps.
>>>> Also, it's a *React* application, written in *ES7* (not even ES6!),
>>>> with ImmutableJS and RxJS inside - so hipsters will be happy :D But in
>>>> fact, it means that it's damn easy to develop this plugin and provide more
>>>> functionality.
>>>> I use *Webpack* to bundle everything (JS, CSS, fonts, images, SVG
>>>> icons) in one single pipe.js file. *No Jenkins JS Modules*, no
>>>> conflicts, no impact on others. Even CSS will not conflict because of
>>>> *CSS-modules* ( http://glenmaddern.com/articles/css-modules )
>>>> All icons are SVG ones and look good on any screen, retina or not, and
>>>> any zoom level.
>>>>
>>>> I use Jackson on the backend side to serialize FlowNodes and their
>>>> actions. *Why Jackson?* Because it was much easier to implement
>>>> serialization of selected (non-exposed) fields and class info included
>>>> compared to Stapler. I saw something were done about classinfo in Stapler,
>>>> but at the moment of creation of this plugin, it wasn't delivered to
>>>> Jenkins core yet. Also, *almost none of the Pipeline actions are
>>>> @Expose-d*.
>>>>
>>>> I use *gradle-jpi-plugin* instead of Maven because it's much easier to
>>>> describe some complex build process with Gradle, especially when frontend
>>>> build is involved. In fact, it's just one line:
>>>>
>>>> https://github.com/bsideup/jenkins-pipeline-view/blob/954b895b6574cdf34815ff94a4a8db3ad3811aeb/build.gradle#L61
>>>>
>>>>
>>>> Future development
>>>> Will I continue to develop it? Definitely! Here, *at ZeroTurnaround*,
>>>> we use Jenkins a lot, and eventually we will migrate to the pipelines, and
>>>> proper visualization of the process is a must for us. And feel free to
>>>> contribute as well, it's really a good chance to learn *modern JS
>>>> stack* as well :)
>>>>
>>>>
>>>>
>>>> Best regards,
>>>> Sergei Egorov
>>>>
>>> --
>> 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].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/jenkinsci-dev/0697c884-91ad-4716-809e-3c40cf5e35da%40googlegroups.com
>> <https://groups.google.com/d/msgid/jenkinsci-dev/0697c884-91ad-4716-809e-3c40cf5e35da%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAAJdKXmA%2Bcyg5RywrVDZGbPLmbMNPriMxW6sPWdzX5HOgBR34A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to