Odd behaviour in Graphics2D.drawImage - infinite loop?
Hi,
I have the following code inside an overriden paintComponent (JPanel):
g2.drawImage(fc.getImage(),(int)fc.getSignificantPoint().getX(),
(int)fc.getSignificantPoint().getY(), vioPanel);fc is just an object that is a wrapper for an image and vioPanel is the JPanel class that has been overriden (it's not this because the drawing on g2 is done outside the jpanel class)
I'm getting some really strange behaviour that i can't explain: when the images are drawn i noticed they were flashing. so i put a system.out.println into the paintComponent method and it seems that calling the g2.drawImage method is causing the panel to be repainted constantly as if it is stuck in an infinite loop. Has anyone else experienced this? if so, do you know the solution?
If it helps, if you replace the vioPanel variable with new JPanel() the looping stops.
Cheers,
jj
hi,
VioPanel is a simple class that overrides JPanel with some extra functionality. Essentially tho, it overrides the paintComponent method as shown below and calls a method of a different object that draws the shapes and images. I tried putting all the code in that method into paintComponent (i.e. classic overriding of paintComponent), but still get the same problem.
public void paintComponent(Graphics g)
super.paintComponent(g);
dm.fireGraphics2DSequence();
}The fireGraphics2DSequence method does all the drawing:
public void fireGraphics2DSequence()
Graphics2D g2 = getPanelGraphics();
g2.scale(magniFactor, magniFactor);
//separate entities out
ArrayList features = getFeatures();
ArrayList lines = getLines();
//draw map entities (lines and hubs first)
for(int i = 0; i < lines.size(); i++)
//draws shapes, which works fine
//draw nodes
g2.setColor(Color.black);
for(int i = 0; i < features.size(); i++)
FeatureCircle fc = (FeatureCircle)features.get(i);
if (fc.isTagged()) continue;
g2.drawImage(fc.getImage(),(int)fc.getSignificantPoint().getX(),
(int)fc.getSignificantPoint().getY(), vioPanel);
//System.out.println("drawing "+i);
if(entLabels) g2.drawString(fc.getName(),(float)fc.getSignificantPoint().getX(),
(float)fc.getSignificantPoint().getY());
}
Similar Messages
-
10.6.3 infinite loop crashes?
according to one of the programmers of Adium, he says that 'according to the adium crash report, It's that same infinite loop crash. Its very odd that safari doesn't crash too, since it looks to be a bug with the operating system, rather than any specific software.' could this be why my computer is operating so poorly since I reformatted my hard drive, or is it a software bug?
10.6.4 came out yesterday, so there seems to be no more crashes!
-
HashMap, HashSet and infinite loop
hi,
our code ended up in an infinite loop while parsing the entries of a HashMap with this code:
Iterator it = myHashMap.entrySet().iterator();
while (it.hasNext()) {
field = (Map.Entry) it.next();
// code that access content of "field"
} as the loop creates some kind of objects, the JVM terminated with a out-of-memory. luckily we got a heap-dump file and that shows:
- the hash-map has 325 entries
- the loop was iterated more than 3 million times
- the iterator "it" has a current and a next field pointing at the same element of the HashMap
a snapshot of the heap-analysis of the iterator can be seen at
http://www.sbox.tugraz.at/home/a/archmage/hashset/EntryIterator.html
maybe the HashMap was accessed concurrently, but then there should be a ConcurrentModificationException.
we are using
> java -version
java version "1.4.2_12"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_12-b03)
Java HotSpot(TM) Client VM (build 1.4.2_12-b03, mixed mode)for me, this looks like a JVM bug, but i cannot really believe that (and i could not find a bug stating this behaviour).
is there anything i did not notice during using hashmaps/hashsets/iterators?
regards, wernerthere should be aConcurrentModificationException.
Not necessarily. The iterators cannot always detectConcurrentModificationException.
api-docs of HashMap say:
A structural modification is any operation that adds
or deletes one or more mappings
if the map is structurally modified at any time after
the iterator is created, in any way except through
the iterator's own remove or add methods, the
iterator will throw a
ConcurrentModificationException.
for me, that means, the iterator should detect any
"add" or "delete" operation like map.put(...). am i
wrong? or are the docs wrong here?Immediately AFTER the paragraph you quoted, it says
Note that the fail-fast behavior of an iterator cannot be guaranteed as it is, generally speaking, impossible to make any hard guarantees in the presence of unsynchronized concurrent modification. Fail-fast iterators throw ConcurrentModificationException on a best-effort basis.
http://java.sun.com/j2se/1.5.0/docs/api/java/util/HashMap.html
Furthermore, did you READ what I said after that?
It's FAR MORE LIKELY to be a result of data corruption, rather than multiple simultaneous iterators. -
Export CSV Cmdlet goes to infinite loop
I'm trying to aggregate data from various CSV's into one using the following line of code
“ ls -n *.csv | %{ ipcsv $_} | epcsv allinone.csv -NoTypeInformation “
It worked fine until I changed the exported csv name to OneWorldFile.csv. It looks like PS lands into an infinite loop and appends the data into the CSV. I’ll have to eventually halt the process.
“ ls -n *.csv | %{ ipcsv $_} | epcsv OneWorldFile.csv -NoTypeInformation “
Here is the screenshot for your verification : http://note.io/1pNoee3. Is there any reason for this behaviour? Did I miss something?
Thank you in advance for your reply.
Vimal.Thank you, Noah. I've understood what causes this behaviour -> Parallel Processing.
I did get an interesting reply from powershell.org forum (http://bit.ly/Tzoy3R) and the problem sorts out if pipeline is not used. Thanks to Mike F Robbins.
Import-Csv-Path(Get-ChildItem-Name*.csv)|Export-Csv-Path .\OneWorldFile.csv-NoTypeInformation
-
Infinite Loop in PS-CS5?
I have just installed PS Ext. CS5 (v12.0.1 x64) on my 2009 Mac Pro, upgraded from CS3 and I am running into what appears to be an infinite loop. I am still trying to find the exact repro for the bug (i will call it that because its my default nomenclature for strange or odd behavior in a program).
What happens is I am doing some simple editing and opening up .psd files, while others are open. The monitor starts to flash at a high rate of speed, like it is opening up a new image over and over, but can't quite render it. The computer then becomes unresponsive and the only way I have found to regain control is to hard boot the machine, holding the power button in until the machine turns off.
When the machine starts up again, everything is fine. I have had this occur 3 times in the last 2 days. I have never had this happen in CS3 version.
Anyone seen this?This looks like the problem that most people were having with MacOs 10.6.4 and some NVidia drivers. Apple released a software update for the drivers a couple of days ago, so if you are on 10.6.4 you should try the update and it should take care of the problem.
Hope this helps!
Andre -
Can anyone figure out why this runs into an infinite loop?
Hi,
I have the following class, and if i run it, I encounter an infinite loop. I have pinpointed the problem and it is because of the lines:
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
catch (Exception exp) {
System.err.println("Failed");
exp.printStackTrace();
}Here is the class. Any and all help is greatly appreciated. Thanks!
package org.aemf.clinical.tol.gui.printing;
import org.aemf.clinical.tol.model.TOLBion;
import org.aemf.clinical.tol.model.Range;
import javax.swing.table.AbstractTableModel;
import javax.swing.*;
import java.awt.print.*;
import java.awt.*;
import java.util.Iterator;
import java.util.ArrayList;
* Created by IntelliJ IDEA.
* User: arashn
* Date: Feb 9, 2005
* Time: 1:26:38 PM
public class printTableTest implements Printable, Pageable {
private PageFormat pf;
private String[] headers = { "Heading 1", "Heading 2", "Heading 3"};
private java.util.List bions = null;
private ArrayList<Object[][]> data = new ArrayList<Object[][]>();
public printTableTest(PageFormat format) {
this.pf = format;
public int getNumberOfPages() {
return 1;
public PageFormat getPageFormat(int pageIndex) throws IndexOutOfBoundsException {
return pf;
public void setBions(java.util.List b) {
bions = b;
for(int x=0; x < 3; x++) {
//TOLBion bion = (TOLBion) bions.get(x);
int ndx = 0;
//Object[][] tempData = new Object[bion.getNumRanges()][3];
Object[][] tempData = new Object[2][3];
// for (Iterator itr = bion.getRanges(); ndx < 2 && itr.hasNext(); ) {
for (; ndx < 2 ; ) {
// Range range = (Range)itr.next();
//tempData[ndx] = new Object[] { new Integer(range.getFrequency()), range.getLowerBound(), range.getUpperBound() };
tempData[ndx] = new Object[] { "col 1: " + x, "col 2: " + x, "col 3: " + x };
ndx++;
data.add(tempData);
public Printable getPrintable(int pageIndex) throws IndexOutOfBoundsException {
return this;
public int print(Graphics g, PageFormat format, int pageIndex) throws PrinterException {
if(pageIndex > 1) {
return Printable.NO_SUCH_PAGE;
System.err.println("Page: " + pageIndex);
JFrame frame = null;
JTable tableView = null;
Graphics2D g2 = (Graphics2D) g;
//Object[][] data = new Object[3][3];
g2.setColor(Color.black);
g2.translate(format.getImageableX() + 72, format.getImageableY() + 72);
for(int x=0; x < data.size(); x++) {
tableView = new JTable(new PrintTableModel(headers, data.get(x)));
frame = new JFrame();
JScrollPane scrollpane = new JScrollPane(tableView);
scrollpane.setPreferredSize(new Dimension(300, 80));
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(BorderLayout.CENTER,scrollpane);
frame.pack();
tableView.paint(g2);
g2.translate(0, - tableView.getTableHeader().getHeight());
tableView.getTableHeader().paint(g2);
g2.translate(0, format.getImageableHeight()/3);
return Printable.PAGE_EXISTS;
public static void main(String args[]) {
PrinterJob printerJob = PrinterJob.getPrinterJob();
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
catch (Exception exp) {
System.err.println("Failed");
exp.printStackTrace();
int INCH = 72;
double LETTER_WIDTH = 8.5 * INCH;
double LETTER_HEIGHT = 11 * INCH;
Paper paper = new Paper();
int margin = INCH/6; // << set your margins here
double pageWidth = LETTER_WIDTH - 2 * margin;
double pageHeigth = LETTER_HEIGHT - 2 * margin;
paper.setImageableArea(margin, margin, pageWidth, pageHeigth) ;
PageFormat format = printerJob.defaultPage();
format.setPaper(paper);
printTableTest pp = new printTableTest(format);
pp.setBions(new ArrayList());
printerJob.setPageable(pp);
boolean doPrint = printerJob.printDialog();
if (doPrint) {
try {
printerJob.print();
} catch (PrinterException exception) {
System.err.println("Printing error: " + exception);
System.exit(0);
private class PrintTableModel extends AbstractTableModel {
private Object[][] data = null;
private String[] headers = null;
public PrintTableModel(String[] headers, Object[][] data) {
this.headers = headers;
this.data = data;
public int getColumnCount() { return headers.length; }
public int getRowCount() { return data.length; }
public Object getValueAt(int row, int col) { return data[row][col]; }
public String getColumnName(int column) { return headers[column]; }
public Class getColumnClass(int col) { return getValueAt(0,col).getClass(); }
public boolean isCellEditable(int row, int col) { return false; }
public void setValueAt(Object aValue, int row, int column) { data[row][column] = aValue; }
}I have managed to create an even simpler version which tries to print the same header 3 times. Again, if you remove the setLookAndFeel line, everything works out great.
import javax.swing.table.*;
import javax.swing.*;
import java.awt.print.*;
import java.awt.*;
* Created by IntelliJ IDEA.
* User: arashn
* Date: Feb 9, 2005
* Time: 1:26:38 PM
public class printTableTest implements Printable, Pageable {
private PageFormat pf;
public printTableTest(PageFormat format) {
this.pf = format;
public int getNumberOfPages() {
return 1;
public PageFormat getPageFormat(int pageIndex) throws IndexOutOfBoundsException {
return pf;
public Printable getPrintable(int pageIndex) throws IndexOutOfBoundsException {
return this;
public int print(Graphics g, PageFormat format, int pageIndex) throws PrinterException {
if(pageIndex > 1) {
return Printable.NO_SUCH_PAGE;
System.err.println("Printing Page: " + pageIndex);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.black);
g2.translate(format.getImageableX() + 72, format.getImageableY() + 72);
DefaultTableColumnModel dtcm = new DefaultTableColumnModel();
TableColumn tc = new TableColumn();
tc.setHeaderValue("Heading 1");
dtcm.addColumn(tc);
tc.setHeaderValue("Heading 2");
dtcm.addColumn(tc);
tc.setHeaderValue("Heading 2");
dtcm.addColumn(tc);
JTableHeader tableHeader = new JTableHeader(dtcm);
JScrollPane scrollpane2 = new JScrollPane(tableHeader);
scrollpane2.setPreferredSize(new Dimension(300, 80));
JFrame frame2 = new JFrame();
frame2.getContentPane().add(BorderLayout.NORTH,scrollpane2);
frame2.pack();
for(int x=0; x < 3; x++) {
tableHeader.paint(g2);
g2.translate(0, format.getImageableHeight()/3);
return Printable.PAGE_EXISTS;
public static void main(String args[]) {
PrinterJob printerJob = PrinterJob.getPrinterJob();
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
catch (Exception exp) {
System.err.println("Failed");
exp.printStackTrace();
int INCH = 72;
double LETTER_WIDTH = 8.5 * INCH;
double LETTER_HEIGHT = 11 * INCH;
Paper paper = new Paper();
int margin = INCH/6; // << set your margins here
double pageWidth = LETTER_WIDTH - 2 * margin;
double pageHeigth = LETTER_HEIGHT - 2 * margin;
paper.setImageableArea(margin, margin, pageWidth, pageHeigth) ;
PageFormat format = printerJob.defaultPage();
format.setPaper(paper);
printTableTest pp = new printTableTest(format);
printerJob.setPageable(pp);
boolean doPrint = printerJob.printDialog();
if (doPrint) {
try {
printerJob.print();
} catch (PrinterException exception) {
System.err.println("Printing error: " + exception);
System.exit(0);
} -
One particular website on infinite loop
Hey guys.
My mac has been giving loads of trouble in the network department recently, and this is one of them.
I used to be able to access a particular website with no problem, and suddenly I can't anymore - it seems to go on an infinite loop and the URL changes on its own. It turns into this:
www.ns.sg/nsp/web/home?_afrLoop=32790536242083&_afrWindowsMode=0&afrWindowId=nul l
and the "32790536242083" part keeps changing on its own, in a 'The Matrix' kind of manner. It never ends.
The situation:
- The site is http://ns.sg .
- It only happens on my mac, no matter what connection I'm using. Tethering on my iphone, other wireless networks, they all don't work.
- Other computers, be it windows or mac, load it fine on any connection.
- It only started happening after the site went through some 'renovation'. It's not my site though, so I have no idea.
- I'm using the very first aluminium 13", back when it was still called the MacBook - but I don't think this really matters.
- I'm on OSX 10.6.8, 2.4GHz Intel Core 2 Duo.
- No firewalls in place.
- Does not work on Safari, Chrome, or a newly downloaded Opera. It's probably not a browser issue.
- Pinging the site from my computer puts me in an infinite request timeout. As in:
PING ns.sg (202.6.163.65): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
.... and it never ends. Now it's still running and I'm at
Request timeout for icmp_seq 1225
Request timeout for icmp_seq 1226 and counting.
What I've tried:
- Deleting the SystemConfiguration folder. Didn't work.
- Clearing the cache. Didn't work.
- Using Onyx to fix up the internet and clearing the cache. Didn't work.
- Using a proxy website. Didn't work.
- Changing my IP address. Didn't work.
- Using OpenDNS. Didn't work.
I'm guessing this is something to do with my laptop, and not the router nor the host. I'm putting up content on the site for work and it really doesn't make sense to have to find a different computer to do so whenever I need to! PLEASE HELP ME, SOMEBODY. I'm on the verge of reformatting the computer just so I can see if THAT works.
Let me know if I need to put anymore specs up! I'm usually just googling for answers, but now I've been driven to post something. This is a big bad.
Amanda'''Change Firefox to use the encoding Unicode (UTF16)
It apparently has a lot of odd characters within it, presumably an unexpected coding.
I tried the text as displayed in firefox (NOT the page source) cut out the first two characters and pasted the remainder into a html file and it opened ok in firefox.
I then changed to Unicode (UTF16) and the original webpage then loads and displays ok.
* Menubar -> View -> Encoding -> () Unicode (UTF16) -
Windows won't install USB device...infinite loop of connect and disconnect
I've been very happy with my Ipod purchases over the years but this one is the worst problem I have ever had. Purchased an 8gb Ipod Nano 3rd gen for the wife as a Xmas present and went to install it on my PC today but no luck whatsoever. The PNP manager seems to go into an infinite loop of connect and disconnect with the odd "Itunes has found a corrupt player ...." message but the device won't stay on the PC long enough as it promptly disconnects from the PC again!
My other 3 Ipods all connect and work quite happily on this PC, I've tried a few of the other "solutions" that seem to fix other "problems" but as the device does not stay connected for long enough I can't do anything with it!
Has anyone else had this problem and been able to fix it? If so, what did you do to correct the problem?
thanks
MartyThanks, tried that and much more - a very frustrating process.
I've just posted this on another thread...
I've tried unplugging everything and it still didn't work (I only have a USB printer, USB 1.1 hub and a USB phone connected). Funnily enough though connecting it to the USB 1.1 hub it works OK - go figure. Connecting directly to a USB 2 connector either on the front or rear panel and my PC goes into the connect/disconnect loop! My 1st and 2nd gen Ipod nano's and my Shuffle all happily connect to the USB 2 connectors on the front panel but the 3rd gen one does not want to know.
I think that Apple have got something seriously wrong here and it would be nice if it was acknowledged and a proper fix applied. -
I run into an infinite loop when I try and use this print method
Hi,
I have the following class. If i run it in stand alone, everything works out great. However, if I call it from a much larger application (which is why I have built this class), I run into an infinite loop. I have no idea why, but I have pinpointed it to the line: tableView.getTableHeader().paint(g2);
Any help is greatly appreciated. I have been tryin to figure this out for a week now, and I havent gotten anywhere. It makes no sense to me, since this works as a standalone application, but if i put a method similar to the main() inside a much larger application, I end up with an inifinite loop.
Thanks again!
import javax.swing.table.AbstractTableModel;
import javax.swing.*;
import java.awt.print.*;
import java.awt.*;
import java.util.Iterator;
import java.util.ArrayList;
public class printTableTest implements Printable, Pageable {
private PageFormat pf;
private String[] headers = { "Heading 1", "Heading 2", "Heading 3"};
private ArrayList<Object[][]> data = new ArrayList<Object[][]>();
public printTableTest(PageFormat format) {
this.pf = format;
this.setObjects();
public int getNumberOfPages() {
return 1;
public PageFormat getPageFormat(int pageIndex) throws IndexOutOfBoundsException {
return pf;
public void setObjects() {
for(int x=0; x < 3; x++) {
int ndx = 0;
Object[][] tempData = new Object[2][3 for (; ndx < 2 ; ) {
tempData[ndx] = new Object[] { "col 1: " + x, "col 2: " + x, "col 3: " + x };
ndx++;
data.add(tempData);
public Printable getPrintable(int pageIndex) throws IndexOutOfBoundsException {
return this;
public int print(Graphics g, PageFormat format, int pageIndex) throws PrinterException {
JFrame frame = null;
JTable tableView = null; System.err.println("here");
Graphics2D g2 = (Graphics2D) g;
//Object[][] data = new Object[3][3];
g2.setColor(Color.black);
g2.translate(format.getImageableX() + 72, format.getImageableY() + 72);
for(int x=0; x < data.size(); x++) {
tableView = new JTable(new PrintTableModel(headers, data.get(x)));
frame = new JFrame();
JScrollPane scrollpane = new JScrollPane(tableView);
scrollpane.setPreferredSize(new Dimension(300, 80));
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(BorderLayout.CENTER,scrollpane);
frame.pack();
tableView.paint(g2);
g2.translate(0, - tableView.getTableHeader().getHeight());
tableView.getTableHeader().paint(g2);
g2.translate(0, format.getImageableHeight()/3);
return Printable.PAGE_EXISTS;
public static void main(String args[]) {
PrinterJob printerJob = PrinterJob.getPrinterJob();
printTableTest pp = new printTableTest( printerJob.defaultPage());
printerJob.setPageable(pp);
boolean doPrint = printerJob.printDialog();
if (doPrint) {
try {
printerJob.print();
} catch (PrinterException exception) {
System.err.println("Printing error: " + exception);
System.exit(0);
private class PrintTableModel extends AbstractTableModel {
private Object[][] data = null;
private String[] headers = null;
public PrintTableModel(String[] headers, Object[][] data) {
this.headers = headers;
this.data = data;
public int getColumnCount() { return headers.length; }
public int getRowCount() { return data.length; }
public Object getValueAt(int row, int col) { return data[row][col]; }
public String getColumnName(int column) { return headers[column]; }
public Class getColumnClass(int col) { return getValueAt(0,col).getClass(); }
public boolean isCellEditable(int row, int col) { return false; }
public void setValueAt(Object aValue, int row, int column) { data[row][column] = aValue; }
}Log the parameters passed to my print method?
The only parameter that would be relevant would be the pageNumber, and I can tell you that it continues to loop. Here is an example of the output:
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
Page: 0
and here is the Thread Trace:
AWT-EventQueue-0@42f prio=6, in group "main", status: WAIT
wait():-1, Object.java
wait():474, Object.java
getNextEvent():345, EventQueue.java
pumpOneEventForHierarchy():189, EventDispatchThread.java
pumpEventsForHierarchy():163, EventDispatchThread.java
pumpEvents():157, EventDispatchThread.java
pumpEvents():149, EventDispatchThread.java
run():110, EventDispatchThread.java
AWT-Shutdown@430 prio=5, in group "main", status: WAIT
wait():-1, Object.java
wait():474, Object.java
run():259, AWTAutoShutdown.java
run():595, Thread.java
Java2D Disposer@2a0 daemon prio=10, in group "main", status: WAIT
wait():-1, Object.java
remove():116, ReferenceQueue.java
remove():132, ReferenceQueue.java
run():107, Disposer.java
run():595, Thread.java
AWT-Windows@fc daemon prio=6, in group "main", status: RUNNING
eventLoop():-1, WToolkit.java
run():269, WToolkit.java
run():595, Thread.java
Signal Dispatcher@2a2 daemon prio=10, in group "system", status: RUNNING
Finalizer@2a3 daemon prio=8, in group "system", status: WAIT
wait():-1, Object.java
remove():116, ReferenceQueue.java
remove():132, ReferenceQueue.java
run():159, Finalizer.java
Reference Handler@2a4 daemon prio=10, in group "system", status: WAIT
wait():-1, Object.java
wait():474, Object.java
run():116, Reference.java
main@1 prio=5, in group "main", status: RUNNING
print():68, printTableTest.java
redrawRegion():906, WPathGraphics.java
printPage():1817, RasterPrinterJob.java
print():1334, RasterPrinterJob.java
print():1196, RasterPrinterJob.java
main():1922, TOLMainFrame.java -
Hello
I'm hoping that someone here might be able to help or point me in the right direction. Apologies for the long post.
Just to set the scene, I am a SQL Server DBA and have very limited experience with System Centre so please go easy on me.
At the company I am currently working they are complaining about very poor performance when running reports (any).
Quick look at the database server and CPU utilisation being a constant 90-95%, meant that you dont have to be Sherlock Holmes to realise there is a problem. The instance consuming the majority of the CPU is the instance hosting the datawarehouse and in particular
a stored procedure in the DWStagingAndConfig database called Staging.GroomDwStagingData.
This stored procedure executes continually for 2 hours performing 500,000,000 reads per execution before "timing out". It is then executed again for another 2 hours etc etc.
After a bit of diagnosis it seems that the issue is either a bug or that there is something wrong with our data in that a stored procedure is stuck in an infinite loop
System Center 2012 SP1 CU2 (5.0.7804.1300)
Diagnosis details
SQL connection details
program name = SC DAL--GroomingWriteModule
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read committed
Store procedures executed
1. dbo.p_GetDwStagingGroomingConfig (executes immediately)
2. Staging.GroomDwStagingData (this is the procedure that executes in 2 hours before being cancelled)
The 1st stored procedure seems to return a table with the "xml" / required parameters to execute Staging.GroomDwStagingData
Sample xml below (cut right down)
<Config>
<Target>
<ModuleName>TransformActivityDim</ModuleName>
<WarehouseEntityName>ActivityDim</WarehouseEntityName>
<RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName>
<Watermark>2015-01-30T08:59:14.397</Watermark>
</Target>
<Target>
<ModuleName>TransformActivityDim</ModuleName>
<WarehouseEntityName>ActivityDim</WarehouseEntityName>
<RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName>
<ManagedTypeViewName>MTV_Microsoft$SystemCenter$Orchestrator$RunbookAutomationActivity</ManagedTypeViewName>
<Watermark>2015-01-30T08:59:14.397</Watermark>
</Target>
</Config>
If you look carefully you will see that the 1st <target> is missing the ManagedTypeViewName, which when "shredded" by the Staging.GroomDwStagingData returns the following result set
Example
DECLARE @Config xml
DECLARE @GroomingCriteria NVARCHAR(MAX)
SET @GroomingCriteria = '<Config><Target><ModuleName>TransformActivityDim</ModuleName><WarehouseEntityName>ActivityDim</WarehouseEntityName><RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName><Watermark>2015-01-30T08:59:14.397</Watermark></Target><Target><ModuleName>TransformActivityDim</ModuleName><WarehouseEntityName>ActivityDim</WarehouseEntityName><RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName><ManagedTypeViewName>MTV_Microsoft$SystemCenter$Orchestrator$RunbookAutomationActivity</ManagedTypeViewName><Watermark>2015-01-30T08:59:14.397</Watermark></Target></Config>'
SET @Config = CONVERT(xml, @GroomingCriteria)
SELECT
ModuleName = p.value(N'child::ModuleName[1]', N'nvarchar(255)')
,WarehouseEntityName = p.value(N'child::WarehouseEntityName[1]', N'nvarchar(255)')
,RequiredWarehouseEntityName =p.value(N'child::RequiredWarehouseEntityName[1]', N'nvarchar(255)')
,ManagedTypeViewName = p.value(N'child::ManagedTypeViewName[1]', N'nvarchar(255)')
,Watermark = p.value(N'child::Watermark[1]', N'datetime')
FROM @Config.nodes(N'/Config/*') Elem(p)
/* RESULTS - NOTE THE NULL VALUE FOR ManagedTypeViewName
ModuleName WarehouseEntityName RequiredWarehouseEntityName ManagedTypeViewName Watermark
TransformActivityDim ActivityDim MTV_System$WorkItem$Activity NULL 2015-01-30 08:59:14.397
TransformActivityDim ActivityDim MTV_System$WorkItem$Activity MTV_Microsoft$SystemCenter$Orchestrator$RunbookAutomationActivity 2015-01-30 08:59:14.397
When the procedure enters the loop to build its dynamic SQL to delete relevant rows from the inbound schema tables it concatenates various options / variables into an executable string. However when adding a NULL value to a string the entire string becomes
NULL which then gets executed.
Whilst executing "EXEC(NULL)" would cause SQL to throw an error and be caught, executing the following doesnt
DECLARE @null_string VARCHAR(100)
SET @null_string = 'hello world ' + NULL
EXEC(@null_string)
SELECT @null_string
So as it hasnt caused an error the next part of the procedure is to move to the next record and this is why its caught in an infinite loop
DELETE @items WHERE ManagedTypeViewName = @View
The value for the variable @View is the ManagedTypeViewName which is NULL, as ANSI_NULLS are set to ON in the connection and not overridded in the procedure then the above statement wont delete anything as it needs to handle NULL values differently (IS NULL),
so we are now stuck in an infinite loop executing NULL for 2 hours until cancelled.
I amended the stored procedure and added the following line before the loop statement which had the desired effect and "fixed" the performance issue for the time being
DELETE @items WHERE ManagedTypeViewName IS NULL
I also noticed that the following line in dbo.p_GetDwStagingGroomingConfig is commented out (no idea why as no notes in the procedure)
--AND COALESCE(i.ManagedTypeViewName, j.RelationshipTypeViewName) IS NOT NULL
There are obviously other ways to mitigate the dynamic SQL string being NULL, there's more than one way to skin a cat and thats not why I am asking this question, but what I am concerned about is that is there a reason that the xml / @GroomingCriteria is incomplete
and / or that the procedures dont handle potential NULL values.
I cant find any documentation, KBs, forum posts of anyone else having this issue which somewhat surprises me.
Would be grateful of any help / advice that anyone can provide or if someone can look at their 2 stored procedures on a later version to see if it has already been fixed. Or is it simply that we have orphaned data, this is the bit that concerns most as I dont
really want to be deleting / updating data when I have no idea what the knock on effect might be
Many many thanks
AndyFirst thing I would do is upgrade to 2012 R2 UR5. If you are running non-US dates you need the UR5 hotfix also.
Rob Ford scsmnz.net
Cireson www.cireson.com
For a free SCSM 2012 Notify Analyst app click
here -
Hello Experts,
For loading ODS2 we are making a lookup on ODS1 for 0material based on
purchaing document number, item line item.
Is there any mistake in the start routine or update routine.
Because the load goes in infinite loop. I think update routine should be changed.
Any suggestions are appreciated
Start routine:
data: begin of itab occurs 0,
pur_doc like /BIC/AZODS100-OI_EBELN,
item like /BIC/AZODS100-OI_EBELP,
material like /BIC/AZODS100-material,
end of itab.
clear itab.
select OI_EBELN OI_EBELP MAT_PLANT from /BIC/AZODS100
into table itab.
Update routine for 0material
loop at itab where pur_doc = COMM_STRUCTURE-OI_EBELN
and item = COMM_STRUCTURE-OI_EBELP.
RESULT = itab-matplant.
endloop.Hi,
this takes a long time, because with each record of your data packaged it is doing the loop and scanning each row of the internal table. Use the following instead.
Start routine:
types: begin of t_itab,
pur_doc like /BIC/AZODS100-OI_EBELN,
item like /BIC/AZODS100-OI_EBELP,
material like /BIC/AZODS100-material,
end of t_itab.
data: itab type hashed table of t_itab with unique key pur_doc item.
select OI_EBELN OI_EBELP MAT_PLANT from /BIC/AZODS100
into table itab order by oi_ebeln oi_ebelp mat_plant.
I hope these fields are the key of the ods object.
Update routine for 0material
data: wa_itab type t_itab.
read table itab into wa_itab with table key pur_doc = COMM_STRUCTURE-OI_EBELN
item = COMM_STRUCTURE-OI_EBELP.
if sy-subrc = 0.
RESULT = wa_itab-matplant.
else.
clear result.
endif.
Hope this helps
regards
Siggi -
Infinite loop creating new page due to column header overflow.
i am getting an error and some pages "Infinite loop creating new page due to column header overflow. " --
using report builder 9, i have a fairly simple report - that contains 4 subreports.
for some pages i get the error - it seems if there is more data than would fit on 1 page.
smaller pages work fine.
the subreports are all simple queries and dumps....
containing page header, column header, detail sections.
page header has just a text bar of the name of the section.
column header has the field names
detail section has the data - 1 row for each row in the recordset.
nothing i do seems to change getting "Infinite loop creating new page due to column header overflow. " on a page with more than 15-20 records returned.
any ideas would be appreciated.Try these links if you are still having the issue:
http://community.jaspersoft.com/questions/543302/receive-infinite-loop-creating-new-page-d ue-column-header-overflow-exception
http://community.jaspersoft.com/questions/500177/infinite-loop-due-page-header-overflow -
Infinite loop error after using Java Sun Tutorial for Learning Swing
I have been attempting to create a GUI following Sun's learning swing by example (example two): http://java.sun.com/docs/books/tutorial/uiswing/learn/example2.html
In particular, the following lines were used almost word-for-word to avoid a non-static method call problem:
SwingApplication app = new SwingApplication();
Component contents = app.createComponents();
frame.getContentPane().add(contents, BorderLayout.CENTER);I believe that I am accidentally creating a new instance of the gui class repeatedly (since it shows new GUI's constantly and then crashes my computer), possibly because I am creating an instance in the main class, but creating another instance in the GUI itself. I am not sure how to avoid this, given that the tutorials I have seen do not deal with having a main class as well as the GUI. I have googled (a nice new verb) this problem and have been through the rest of the swing by example tutorials, although I am sure I am simply missing a website that details this problem. Any pointers on websites to study to avoid this problem would be appreciated.
Thanks for your time-
Danielle
/** GUI for MicroMerger program
* Created July/06 at IARC
*@ author Danielle
package micromerger;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JFileChooser;
import java.lang.Object;
public class MGui
private static File inputFile1, inputFile2;
private static File sfile1, sfile2;
private static String file1Name, file2Name;
private String currFile1, currFile2;
private JButton enterFile1, enterFile2;
private JLabel enterLabel1, enterLabel2;
private static MGui app;
public MGui()
javax.swing.SwingUtilities.invokeLater(new Runnable()
public void run()
System.out.println("About to run create GUI method");
app = new MGui();
System.out.println("declared a new MGui....");
createAndShowGUI();
//initialize look and feel of program
private static void initLookAndFeel() {
String lookAndFeel = null;
lookAndFeel = UIManager.getSystemLookAndFeelClassName();
try
UIManager.setLookAndFeel(lookAndFeel);
catch (ClassNotFoundException e) {
System.err.println("Couldn't find class for specified look and feel:"
+ lookAndFeel);
System.err.println("Did you include the L&F library in the class path?");
System.err.println("Using the default look and feel.");
} catch (UnsupportedLookAndFeelException e) {
System.err.println("Can't use the specified look and feel ("
+ lookAndFeel
+ ") on this platform.");
System.err.println("Using the default look and feel.");
} catch (Exception e) {
System.err.println("Couldn't get specified look and feel ("
+ lookAndFeel
+ "), for some reason.");
System.err.println("Using the default look and feel.");
e.printStackTrace();
// Make Components--
private Component createLeftComponents()
// Make panel-- grid layout
JPanel pane = new JPanel(new GridLayout(0,1));
//Add label
JLabel welcomeLabel = new JLabel("Welcome to MicroMerger. Please Enter your files.");
pane.add(welcomeLabel);
//Add buttons to enter files:
enterFile1 = new JButton("Please click to enter the first file.");
enterFile1.addActionListener(new enterFile1Action());
pane.add(enterFile1);
enterLabel1 = new JLabel("");
pane.add(enterLabel1);
enterFile2 = new JButton("Please click to enter the second file.");
enterFile2.addActionListener(new enterFile2Action());
pane.add(enterFile2);
enterLabel2 = new JLabel("");
pane.add(enterLabel2);
return pane;
/** Make GUI:
private static void createAndShowGUI()
System.out.println("Creating a gui...");
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
JFrame frame = new JFrame("MicroMerger");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Add stuff to the frame
//MGui app = new MGui();
Component leftContents = app.createLeftComponents();
frame.getContentPane().add(leftContents, BorderLayout.WEST);
//Display the window.
frame.pack();
frame.setVisible(true);
private class enterFile1Action implements ActionListener
public void actionPerformed(ActionEvent evt)
JFileChooser chooser = new JFileChooser();
int rVal = chooser.showOpenDialog(enterFile1);
if(rVal == JFileChooser.APPROVE_OPTION)
inputFile1 = chooser.getSelectedFile();
PrintWriter outputStream;
file1Name = inputFile1.getName();
enterLabel1.setText(file1Name);
private class enterFile2Action implements ActionListener
public void actionPerformed(ActionEvent evt)
JFileChooser chooser = new JFileChooser();
int rVal = chooser.showOpenDialog(enterFile1);
if(rVal == JFileChooser.APPROVE_OPTION)
inputFile2 = chooser.getSelectedFile();
PrintWriter outputStream;
file2Name = inputFile2.getName();
enterLabel2.setText(file2Name);
} // end classAnd now the main class:
* Main.java
* Created on June 13, 2006, 2:29 PM
* @author Danielle
package micromerger;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class Main
/** Creates a new instance of Main */
public Main()
* @param args the command line arguments
public static void main(String[] args)
MGui mainScreen = new MGui();
//mainScreen.setVisible(true);
/**Starting to get file choices and moving them into GPR Handler:
System.out.println("into main method");
String file1Name = new String("");
file1Name = MGui.get1Name();
System.out.println("good so far- have MGui.get1Name()");
}// end main(String[] args)
}// end class Mainum, yeah, you definitely have a recursion problem, that's going to create an infinite loop. you will eventually end up an out of memory error, if you don't first get the OS telling you you have too many windows. interestingly, because you are deferring execution, you won't get a stack overflow error, which you expect in an infinite recursion.
lets examine why this is happening:
in main, you call new MGui().
new MGui() creates a runnable object which will be run on the event dispatch thread. That method ALSO calls new MGui(), which in turn ALSO creates a new object which will be run on the event dispatch thead. That obejct ALSO calls new MGui(), which ...
well, hopefully you get the picture.
you should never unconditionally call a method from within itself. that code that you have put in the constructor for MGui should REALLY be in the main method, and the first time you create the MGui in the main method as it currently exists is unnecessary.
here's what you do: get rid of the MGui constructor altogether. since it is the implicit constructor anyway, if it doesn't do anything, you don't need to provide it.
now, your main method should actually look like this:
public static void main( String [] args ) {
SwingUtilities.invokeLater( new Runnable() {
public void run() {
MGui app = new MGui();
app.createAndShowGUI();
}// end mainyou could also declare app and call the constructor before creating the Runnable, as many prefer, because you would have access to it from outside of the Runnable object. The catch there, though, is that app would need to be declared final.
- Adam -
Hi there,
This is the second time I have posted this problem, as the last solution I was offered did not seem to work. Here is the problem:
I have written a method to search through a text file for a word and replace it with another word. That word can either be on its own in the document or as part of another word. So, if the search word was "foot" and the replace word was "dog", the word "football" in the document would become "dogball".
This method works fine, except for when the replace word is the same as the search word. Basically, if someone searched for "dog" and wanted to replace it with "dog dog" or even just "dog", the program goes into an infinite loop. I understand why it is doing this, but I don't know how to prevent it from happening.
Now, to make it worse I have to stick to this array style structure and method of solving the problem. I know there is a way to do this by building temporary strings and then concatenating them at the end and returning them to their previous position in the array. The reason I know this is because a friend of mine has managed it. She also happens to be a girl.
So, I am asking you all to assist in defending men's intelligence by helping me see where I am going wrong in this method. Please.
Here is the method:
// Search the document for a string and replace it with another string
public String [] SearchReplace() {
// Declare variables to be used in the method
String SecondSubstring;
String FirstSubstring;
int ReplaceNumber = 0;
// Loop through the lines of text stored as strings contained in the array
for (int i = 0; i < NumberOfLines; i++) {
// As long as the string contains an instance of the search string, run the method
while (StrArray.indexOf(SearchW) >= 0) {
// Make a string of all the characters after the search word
SecondSubstring = StrArray[i].substring(StrArray[i].indexOf(SearchW) + SearchW.length());
// Make a string of all the characters before the search word
FirstSubstring = StrArray[i].substring(0, StrArray[i].indexOf(SearchW));
// Concatenate FirstSubstring with the replace word to make a new string
String FirstHalf = FirstSubstring.concat(ReplaceW);
// Concatenate the new string with SecondSubstring to make the whole replaced string
String FullString = FirstHalf.concat(SecondSubstring);
// Put this altered string back to its original place in the array
StrArray[i] = FullString;
// Increment ReplaceNumber to count the replacements made
ReplaceNumber++;
// Print the numbers of replacements made
System.out.println("\nA total of " + ReplaceNumber + " changes made.\n");
// Display the searched and replaced contents of the file
return StrArray;
Any suggestions, pointers or solutions would be much appreciated.
Thanks very much.Doing it the "old fashioned" way:
You need to keep track of a "from index" so you don't search through parts of the string you've already replaced:
public static void main(String args[]) {
try {
String[] lines = new String[] {
"the dog went up the dog hill",
"all dogs go to dog heaven",
"the dogball takes place on 3rd april"
lines = replace(lines, "dog", "dog dog");
for (int i = 0; i < lines.length; i++) {
System.out.println(lines);
} catch (Exception e) {
e.printStackTrace();
private static String[] replace(String[] lines, String searchWord, String replaceWord) {
if (searchWord.equals(replaceWord)) return lines; // nothing to do
for (int i = 0; i < lines.length; i++) {
int fromIndex = 0; // from index to do indexOf
String line = lines[i];
while (line.indexOf(searchWord, fromIndex) != -1) {
final int index = line.indexOf(searchWord, fromIndex);
line = line.substring(0, index) + replaceWord + line.substring(index + searchWord.length());
fromIndex = (line.substring(0, index) + replaceWord).length();
lines[i] = line; // replace
return lines; -
A cycle is detected in the object graph. This will cause an infinite loop.
People,
Looking for a little guidance. Please point me in the correct direction if I am mistaken. I am using Jersey 2.11 and generating JAXB definitions from XSD.
I have a periodic exception that seems to be timing based. If I change the timing of the message sent in anyway the error does not occur. The other issue is that the cycle reported in the error changes some times, however, the cycles reported can not occur based on the XSD definition. I have also dumped the message before sending and it definitely does not contain the cycle reported.
In this specific scenario, I am sending a message of NotificationType which contains a list of DocumentType, however, DocumentType can never contain NotificationType so the following cycle is not possible:
net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3 -> net.es.nsi.pce.discovery.jaxb.NotificationType@7f06bc07 -> net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3]
I am wondering if there could be a different reason for receiving the following exception?
Thank you for the help,
John
[code]
[ERROR] [08/22/2014 11:16:22.307] [NSI-DISCOVERY-akka.actor.default-dispatcher-4] [akka://NSI-DISCOVERY/user/discovery-notificationRouter/$c] HTTP 500 Internal Server Error
javax.ws.rs.ProcessingException: HTTP 500 Internal Server Error
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:667)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:664)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:228) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:424)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:664)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:424)
at org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:333)
at net.es.nsi.pce.discovery.actors.NotificationActor.onReceive(NotificationActor.java:100)
at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167)
at akka.actor.Actor$class.aroundReceive(Actor.scala:465)
at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
at akka.actor.ActorCell.invoke(ActorCell.scala:487)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)
at akka.dispatch.Mailbox.run(Mailbox.scala:220)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error
at org.glassfish.jersey.message.internal.AbstractJaxbElementProvider.writeTo(AbstractJaxbElementProvider.java:152)
at org.glassfish.jersey.message.internal.AbstractJaxbElementProvider.writeTo(AbstractJaxbElementProvider.java:85)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:265)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:250)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
at org.glassfish.jersey.filter.LoggingFilter.aroundWriteTo(LoggingFilter.java:293)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1154)
at org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:503)
at org.glassfish.jersey.client.HttpUrlConnector._apply(HttpUrlConnector.java:315)
at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:227)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:246)
... 22 more
Caused by: javax.xml.bind.MarshalException
- with linked exception:
[Exception [EclipseLink-25003] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.XMLMarshalException
Exception Description: An error occurred marshalling the object
Internal Exception: Exception [EclipseLink-25037] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.XMLMarshalException
Exception Description: A cycle is detected in the object graph. This will cause an infinite loop: net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3 -> net.es.nsi.pce.discovery.jaxb.NotificationType@7f06bc07 -> net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3]
at org.eclipse.persistence.jaxb.JAXBMarshaller.marshal(JAXBMarshaller.java:403)
at org.glassfish.jersey.message.internal.XmlJaxbElementProvider.writeTo(XmlJaxbElementProvider.java:139)
at org.glassfish.jersey.message.internal.AbstractJaxbElementProvider.writeTo(AbstractJaxbElementProvider.java:150)
... 33 more
Caused by: Exception [EclipseLink-25003] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.XMLMarshalException
Exception Description: An error occurred marshalling the object
Internal Exception: Exception [EclipseLink-25037] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.XMLMarshalException
Exception Description: A cycle is detected in the object graph. This will cause an infinite loop: net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3 -> net.es.nsi.pce.discovery.jaxb.NotificationType@7f06bc07 -> net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3
at org.eclipse.persistence.exceptions.XMLMarshalException.marshalException(XMLMarshalException.java:97)
at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshal(XMLMarshaller.java:911)
at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshal(XMLMarshaller.java:848)
at org.eclipse.persistence.jaxb.JAXBMarshaller.marshal(JAXBMarshaller.java:401)
... 35 more
Caused by: Exception [EclipseLink-25037] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.XMLMarshalException
Exception Description: A cycle is detected in the object graph. This will cause an infinite loop: net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3 -> net.es.nsi.pce.discovery.jaxb.NotificationType@7f06bc07 -> net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3
at org.eclipse.persistence.exceptions.XMLMarshalException.objectCycleDetected(XMLMarshalException.java:400)
at org.eclipse.persistence.internal.oxm.XPathObjectBuilder.buildRow(XPathObjectBuilder.java:207)
at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:118)
at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:1)
at org.eclipse.persistence.internal.oxm.XMLCompositeObjectMappingNodeValue.marshalSingleValue(XMLCompositeObjectMappingNodeValue.java:237)
at org.eclipse.persistence.internal.oxm.XMLCompositeObjectMappingNodeValue.marshal(XMLCompositeObjectMappingNodeValue.java:149)
at org.eclipse.persistence.internal.oxm.NodeValue.marshal(NodeValue.java:102)
at org.eclipse.persistence.internal.oxm.record.ObjectMarshalContext.marshal(ObjectMarshalContext.java:59)
at org.eclipse.persistence.internal.oxm.XPathNode.marshal(XPathNode.java:393)
at org.eclipse.persistence.internal.oxm.XPathObjectBuilder.buildRow(XPathObjectBuilder.java:238)
at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:118)
at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:1)
at org.eclipse.persistence.internal.oxm.XMLCompositeCollectionMappingNodeValue.marshalSingleValue(XMLCompositeCollectionMappingNodeValue.java:321)
at org.eclipse.persistence.internal.oxm.XMLCompositeCollectionMappingNodeValue.marshal(XMLCompositeCollectionMappingNodeValue.java:104)
at org.eclipse.persistence.internal.oxm.NodeValue.marshal(NodeValue.java:149)
at org.eclipse.persistence.internal.oxm.NodeValue.marshal(NodeValue.java:102)
at org.eclipse.persistence.internal.oxm.record.ObjectMarshalContext.marshal(ObjectMarshalContext.java:59)
at org.eclipse.persistence.internal.oxm.XPathNode.marshal(XPathNode.java:393)
at org.eclipse.persistence.internal.oxm.XPathObjectBuilder.buildRow(XPathObjectBuilder.java:238)
at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:118)
at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:1)
at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshal(XMLMarshaller.java:743)
at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshal(XMLMarshaller.java:901)
... 37 more
[/code]Unfortunately, even this thread is unanswered, i am closing the thread.as it it creating problems for further posting
Maybe you are looking for
-
Bringing in Additional Fields into SAP Query
Hi, I'm new to SAP Query. I had to modify an existing report to bring in an additional field from one of the tables of the query. When i look at the tables in query, i don't even see the field i would like to add under the table. I guess it needs to
-
keyboard brightness panel appears with fn+F5 orF6 but has the circle/strikethrough and does not adjust . Auto brightness unselected in preferences ... did an SMC reset and boot of course.
-
Help! There are no video tracks defined in the current project.
I have been sending slideshows from Iphoto to Idvd for over a year without any problems. Now when I click the burn icon I get this message: There are no video tracks defined in the current project. Can anyone help? I'm really in a panic concerning ho
-
Magic Mouse stops sliding vertically, only slides left and right...
Hello, I just bought a brand new MBP and decided to get the Magic Mouse to go with it. For the first week it worked really well. Now, besides the other issues everyone is discussing, I've noticed that periodically throughout the day, the mouse will n
-
Photo Shop Elements 12 refuses to launch
I installed and have successfully used PSE 12 on Windows 7 since October 2013. It quit working in the middle of alternately using it with an online screen of an art class and now refuses to launch. I have done repeated uninstalls and reinstalls to