Eclipse Moxy is ignoring @XmlNamedObjectGraph in some circumstances
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I have a lot of classes that are converted to XML using eclipse MOXy @XmlNamedObjectGraphs to generate. They mostly seem to behave themselves, except for one class - TaskSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="full",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( value="task", subgraph="simple" ),
@XmlNamedAttributeNode( "cron" ),
@XmlNamedAttributeNode( "enabled" ),
@XmlNamedAttributeNode( "endDate" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( "period" ),
@XmlNamedAttributeNode( value="region", subgraph="simple" ),
@XmlNamedAttributeNode( value="productGroup", subgraph="simple" ),
@XmlNamedAttributeNode( value="user", subgraph="simple" ),
@XmlNamedAttributeNode( "scheduleType" ),
@XmlNamedAttributeNode( "startDate" ),
@XmlNamedAttributeNode( value="parameterGroup", subgraph="full" )
),
@XmlNamedObjectGraph(
name="simple",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" )
),
@XmlNamedObjectGraph(
name="child_group", // used when as a child of a group - some fields dont apply
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( value="region", subgraph="simple" ),
@XmlNamedAttributeNode( value="productGroup", subgraph="simple" ),
@XmlNamedAttributeNode( value="task", subgraph="simple" ),
@XmlNamedAttributeNode( value="parameterGroup", subgraph="full" )
)
)
public class TaskSchedule extends AbstractBusinessEntity
protected Task task;
protected String cron;
protected Boolean enabled;
protected Date endDate;
protected String name;
protected ExecutionPeriod period;
protected Region region;
protected ProductGroup productGroup;
protected TaskScheduleType scheduleType;
protected Date startDate;
protected TaskParameterGroup parameterGroup;
protected User user;
// get/set methods
Things work OK when I convert the schedule to XML, if that schedule is the top-level element to be converted (ie the 'full' graph is used). However I also have other classes - TaskGroup and TaskGroupSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="full",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( value="createdBy", subgraph="simple" ),
@XmlNamedAttributeNode( "createdOn" ),
@XmlNamedAttributeNode( value="schedules", subgraph="simple" ),
),
@XmlNamedObjectGraph(
name="simple",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" )
)
)
public class TaskGroup extends AbstractBusinessEntity
protected String name;
protected User createdBy;
protected Date createdOn;
protected Set<TaskGroupSchedule> schedules;
// get/set methods
TaskGroupSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="child",
attributeNodes =
@XmlNamedAttributeNode( "id" ),
@XmlNamedAttributeNode( "className" ),
@XmlNamedAttributeNode( value="schedule", subgraph="child_group" ),
@XmlNamedAttributeNode( "sequence" ),
@XmlNamedAttributeNode( "enabled" ),
@XmlNamedAttributeNode( "stopOnError" ),
@XmlNamedAttributeNode( "delayBeforeNext" ),
)
)
public class TaskGroupSchedule extends AbstractManagedData implements IEnableable, IRegional, Sequenceable
protected TaskGroup parent;
protected TaskSchedule schedule;
protected int sequence;
protected Boolean enabled;
protected long delayBeforeNext;
// get/set methods, with @XMLTransient on getParent
Heres the problem: When I try to convert a TaskGroup to XML, it ignores my request to use the 'child_group' subgraph for TaskGroupSchedule -> TaskSchedule and instead goes through every single property of TaskSchedule, converting them (leading to unexpected 'A cycle is detected in the object graph. This will cause infinitely deep XML' errors for items with references back to the parent), which I'm guessing is default behavior if there is no graph defined. Im using MOXy version 2.6.3 and Java 8.
Can anyone see what I'm doing wrong? Thanks in advance.
java moxy xml-binding
add a comment |
I have a lot of classes that are converted to XML using eclipse MOXy @XmlNamedObjectGraphs to generate. They mostly seem to behave themselves, except for one class - TaskSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="full",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( value="task", subgraph="simple" ),
@XmlNamedAttributeNode( "cron" ),
@XmlNamedAttributeNode( "enabled" ),
@XmlNamedAttributeNode( "endDate" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( "period" ),
@XmlNamedAttributeNode( value="region", subgraph="simple" ),
@XmlNamedAttributeNode( value="productGroup", subgraph="simple" ),
@XmlNamedAttributeNode( value="user", subgraph="simple" ),
@XmlNamedAttributeNode( "scheduleType" ),
@XmlNamedAttributeNode( "startDate" ),
@XmlNamedAttributeNode( value="parameterGroup", subgraph="full" )
),
@XmlNamedObjectGraph(
name="simple",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" )
),
@XmlNamedObjectGraph(
name="child_group", // used when as a child of a group - some fields dont apply
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( value="region", subgraph="simple" ),
@XmlNamedAttributeNode( value="productGroup", subgraph="simple" ),
@XmlNamedAttributeNode( value="task", subgraph="simple" ),
@XmlNamedAttributeNode( value="parameterGroup", subgraph="full" )
)
)
public class TaskSchedule extends AbstractBusinessEntity
protected Task task;
protected String cron;
protected Boolean enabled;
protected Date endDate;
protected String name;
protected ExecutionPeriod period;
protected Region region;
protected ProductGroup productGroup;
protected TaskScheduleType scheduleType;
protected Date startDate;
protected TaskParameterGroup parameterGroup;
protected User user;
// get/set methods
Things work OK when I convert the schedule to XML, if that schedule is the top-level element to be converted (ie the 'full' graph is used). However I also have other classes - TaskGroup and TaskGroupSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="full",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( value="createdBy", subgraph="simple" ),
@XmlNamedAttributeNode( "createdOn" ),
@XmlNamedAttributeNode( value="schedules", subgraph="simple" ),
),
@XmlNamedObjectGraph(
name="simple",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" )
)
)
public class TaskGroup extends AbstractBusinessEntity
protected String name;
protected User createdBy;
protected Date createdOn;
protected Set<TaskGroupSchedule> schedules;
// get/set methods
TaskGroupSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="child",
attributeNodes =
@XmlNamedAttributeNode( "id" ),
@XmlNamedAttributeNode( "className" ),
@XmlNamedAttributeNode( value="schedule", subgraph="child_group" ),
@XmlNamedAttributeNode( "sequence" ),
@XmlNamedAttributeNode( "enabled" ),
@XmlNamedAttributeNode( "stopOnError" ),
@XmlNamedAttributeNode( "delayBeforeNext" ),
)
)
public class TaskGroupSchedule extends AbstractManagedData implements IEnableable, IRegional, Sequenceable
protected TaskGroup parent;
protected TaskSchedule schedule;
protected int sequence;
protected Boolean enabled;
protected long delayBeforeNext;
// get/set methods, with @XMLTransient on getParent
Heres the problem: When I try to convert a TaskGroup to XML, it ignores my request to use the 'child_group' subgraph for TaskGroupSchedule -> TaskSchedule and instead goes through every single property of TaskSchedule, converting them (leading to unexpected 'A cycle is detected in the object graph. This will cause infinitely deep XML' errors for items with references back to the parent), which I'm guessing is default behavior if there is no graph defined. Im using MOXy version 2.6.3 and Java 8.
Can anyone see what I'm doing wrong? Thanks in advance.
java moxy xml-binding
add a comment |
I have a lot of classes that are converted to XML using eclipse MOXy @XmlNamedObjectGraphs to generate. They mostly seem to behave themselves, except for one class - TaskSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="full",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( value="task", subgraph="simple" ),
@XmlNamedAttributeNode( "cron" ),
@XmlNamedAttributeNode( "enabled" ),
@XmlNamedAttributeNode( "endDate" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( "period" ),
@XmlNamedAttributeNode( value="region", subgraph="simple" ),
@XmlNamedAttributeNode( value="productGroup", subgraph="simple" ),
@XmlNamedAttributeNode( value="user", subgraph="simple" ),
@XmlNamedAttributeNode( "scheduleType" ),
@XmlNamedAttributeNode( "startDate" ),
@XmlNamedAttributeNode( value="parameterGroup", subgraph="full" )
),
@XmlNamedObjectGraph(
name="simple",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" )
),
@XmlNamedObjectGraph(
name="child_group", // used when as a child of a group - some fields dont apply
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( value="region", subgraph="simple" ),
@XmlNamedAttributeNode( value="productGroup", subgraph="simple" ),
@XmlNamedAttributeNode( value="task", subgraph="simple" ),
@XmlNamedAttributeNode( value="parameterGroup", subgraph="full" )
)
)
public class TaskSchedule extends AbstractBusinessEntity
protected Task task;
protected String cron;
protected Boolean enabled;
protected Date endDate;
protected String name;
protected ExecutionPeriod period;
protected Region region;
protected ProductGroup productGroup;
protected TaskScheduleType scheduleType;
protected Date startDate;
protected TaskParameterGroup parameterGroup;
protected User user;
// get/set methods
Things work OK when I convert the schedule to XML, if that schedule is the top-level element to be converted (ie the 'full' graph is used). However I also have other classes - TaskGroup and TaskGroupSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="full",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( value="createdBy", subgraph="simple" ),
@XmlNamedAttributeNode( "createdOn" ),
@XmlNamedAttributeNode( value="schedules", subgraph="simple" ),
),
@XmlNamedObjectGraph(
name="simple",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" )
)
)
public class TaskGroup extends AbstractBusinessEntity
protected String name;
protected User createdBy;
protected Date createdOn;
protected Set<TaskGroupSchedule> schedules;
// get/set methods
TaskGroupSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="child",
attributeNodes =
@XmlNamedAttributeNode( "id" ),
@XmlNamedAttributeNode( "className" ),
@XmlNamedAttributeNode( value="schedule", subgraph="child_group" ),
@XmlNamedAttributeNode( "sequence" ),
@XmlNamedAttributeNode( "enabled" ),
@XmlNamedAttributeNode( "stopOnError" ),
@XmlNamedAttributeNode( "delayBeforeNext" ),
)
)
public class TaskGroupSchedule extends AbstractManagedData implements IEnableable, IRegional, Sequenceable
protected TaskGroup parent;
protected TaskSchedule schedule;
protected int sequence;
protected Boolean enabled;
protected long delayBeforeNext;
// get/set methods, with @XMLTransient on getParent
Heres the problem: When I try to convert a TaskGroup to XML, it ignores my request to use the 'child_group' subgraph for TaskGroupSchedule -> TaskSchedule and instead goes through every single property of TaskSchedule, converting them (leading to unexpected 'A cycle is detected in the object graph. This will cause infinitely deep XML' errors for items with references back to the parent), which I'm guessing is default behavior if there is no graph defined. Im using MOXy version 2.6.3 and Java 8.
Can anyone see what I'm doing wrong? Thanks in advance.
java moxy xml-binding
I have a lot of classes that are converted to XML using eclipse MOXy @XmlNamedObjectGraphs to generate. They mostly seem to behave themselves, except for one class - TaskSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="full",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( value="task", subgraph="simple" ),
@XmlNamedAttributeNode( "cron" ),
@XmlNamedAttributeNode( "enabled" ),
@XmlNamedAttributeNode( "endDate" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( "period" ),
@XmlNamedAttributeNode( value="region", subgraph="simple" ),
@XmlNamedAttributeNode( value="productGroup", subgraph="simple" ),
@XmlNamedAttributeNode( value="user", subgraph="simple" ),
@XmlNamedAttributeNode( "scheduleType" ),
@XmlNamedAttributeNode( "startDate" ),
@XmlNamedAttributeNode( value="parameterGroup", subgraph="full" )
),
@XmlNamedObjectGraph(
name="simple",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" )
),
@XmlNamedObjectGraph(
name="child_group", // used when as a child of a group - some fields dont apply
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( value="region", subgraph="simple" ),
@XmlNamedAttributeNode( value="productGroup", subgraph="simple" ),
@XmlNamedAttributeNode( value="task", subgraph="simple" ),
@XmlNamedAttributeNode( value="parameterGroup", subgraph="full" )
)
)
public class TaskSchedule extends AbstractBusinessEntity
protected Task task;
protected String cron;
protected Boolean enabled;
protected Date endDate;
protected String name;
protected ExecutionPeriod period;
protected Region region;
protected ProductGroup productGroup;
protected TaskScheduleType scheduleType;
protected Date startDate;
protected TaskParameterGroup parameterGroup;
protected User user;
// get/set methods
Things work OK when I convert the schedule to XML, if that schedule is the top-level element to be converted (ie the 'full' graph is used). However I also have other classes - TaskGroup and TaskGroupSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="full",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" ),
@XmlNamedAttributeNode( value="createdBy", subgraph="simple" ),
@XmlNamedAttributeNode( "createdOn" ),
@XmlNamedAttributeNode( value="schedules", subgraph="simple" ),
),
@XmlNamedObjectGraph(
name="simple",
attributeNodes =
@XmlNamedAttributeNode( "businessEntityNumber" ),
@XmlNamedAttributeNode( "businessEntityClass" ),
@XmlNamedAttributeNode( "name" )
)
)
public class TaskGroup extends AbstractBusinessEntity
protected String name;
protected User createdBy;
protected Date createdOn;
protected Set<TaskGroupSchedule> schedules;
// get/set methods
TaskGroupSchedule:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlNamedObjectGraphs(
@XmlNamedObjectGraph(
name="child",
attributeNodes =
@XmlNamedAttributeNode( "id" ),
@XmlNamedAttributeNode( "className" ),
@XmlNamedAttributeNode( value="schedule", subgraph="child_group" ),
@XmlNamedAttributeNode( "sequence" ),
@XmlNamedAttributeNode( "enabled" ),
@XmlNamedAttributeNode( "stopOnError" ),
@XmlNamedAttributeNode( "delayBeforeNext" ),
)
)
public class TaskGroupSchedule extends AbstractManagedData implements IEnableable, IRegional, Sequenceable
protected TaskGroup parent;
protected TaskSchedule schedule;
protected int sequence;
protected Boolean enabled;
protected long delayBeforeNext;
// get/set methods, with @XMLTransient on getParent
Heres the problem: When I try to convert a TaskGroup to XML, it ignores my request to use the 'child_group' subgraph for TaskGroupSchedule -> TaskSchedule and instead goes through every single property of TaskSchedule, converting them (leading to unexpected 'A cycle is detected in the object graph. This will cause infinitely deep XML' errors for items with references back to the parent), which I'm guessing is default behavior if there is no graph defined. Im using MOXy version 2.6.3 and Java 8.
Can anyone see what I'm doing wrong? Thanks in advance.
java moxy xml-binding
java moxy xml-binding
asked Nov 15 '18 at 15:48
fancyplantsfancyplants
5222819
5222819
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
OK I missed an obvious problem.
It was because the TaskGroup
graph assumed that the TaskGroupSchedule
had a 'simple'
graph defined not a 'child'
graph. Changing 'simple'
to 'child'
in TaskGroup made it work.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53323098%2feclipse-moxy-is-ignoring-xmlnamedobjectgraph-in-some-circumstances%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
OK I missed an obvious problem.
It was because the TaskGroup
graph assumed that the TaskGroupSchedule
had a 'simple'
graph defined not a 'child'
graph. Changing 'simple'
to 'child'
in TaskGroup made it work.
add a comment |
OK I missed an obvious problem.
It was because the TaskGroup
graph assumed that the TaskGroupSchedule
had a 'simple'
graph defined not a 'child'
graph. Changing 'simple'
to 'child'
in TaskGroup made it work.
add a comment |
OK I missed an obvious problem.
It was because the TaskGroup
graph assumed that the TaskGroupSchedule
had a 'simple'
graph defined not a 'child'
graph. Changing 'simple'
to 'child'
in TaskGroup made it work.
OK I missed an obvious problem.
It was because the TaskGroup
graph assumed that the TaskGroupSchedule
had a 'simple'
graph defined not a 'child'
graph. Changing 'simple'
to 'child'
in TaskGroup made it work.
answered Nov 20 '18 at 16:28
fancyplantsfancyplants
5222819
5222819
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53323098%2feclipse-moxy-is-ignoring-xmlnamedobjectgraph-in-some-circumstances%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown