[ http://jira.codehaus.org/browse/QDOX-208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=218787#action_218787 ]
Alfred Pfeffer commented on QDOX-208: ------------------------------------- Sorry i have to agree that i provided much too less information. My only excuse is that it was in the middle of the night and the onyl thing i wanted was to go to bed. I have here some very simple sample code to show the problem. I will just past it in here. I hope i will not break your conventions in doing so. There are 2 classes, one simple analyser and some piece of rubbish code to be analysed. Using qdox-1.11 gives false line numbers. Using qdox-1.10-20090625.205651-6.jar the line numbers are ok. I did not test any other version. ---------------------------------------- the simple analyser ----------------------------------------- package test; import java.io.FileNotFoundException; import java.io.FileReader; import com.thoughtworks.qdox.JavaDocBuilder; import com.thoughtworks.qdox.model.JavaClass; import com.thoughtworks.qdox.model.JavaMethod; public class JavaMethodLinePrinter{ public void printMethods(JavaClass aClass) { JavaMethod methods[] = aClass.getMethods(); for (JavaMethod method : methods) { System.out.println(method.getName() + " starts at line: "+method.getLineNumber()); } } public void checkJavaFile(String aFileName) throws FileNotFoundException { JavaDocBuilder builder = new JavaDocBuilder(); builder.addSource(new FileReader(aFileName)); JavaClass classes[] = builder.getClasses(); for (JavaClass javaClass : classes) { printMethods(javaClass); } } public static void main(String[] args) throws FileNotFoundException { String fileName = "./src/test/SomeVeryStupidExampleCodeToBeParsed.java"; JavaMethodLinePrinter p = new JavaMethodLinePrinter(); p.checkJavaFile(fileName); } } --------------------------------------- the rubbish code to be analysed -------------------------------------- package test; import java.util.Collection; import java.util.Set; import org.apache.log4j.Logger; /** * Some stupid nonsense code only provided to be analysed */ public abstract class SomeVeryStupidExampleCodeToBeParsed { /** * Slave event queue name. Input queue for slave ExternalEventManager. */ public static final String EVENT_QUEUE_NAME = "EventQueue"; public static final String RUNNABLE_QUEUE_NAME = "RunnableQueue"; private static final Logger ourLogger = Logger.getLogger(SomeVeryStupidExampleCodeToBeParsed.class); private static final String EVENTCONSUMER_PROVIDER_ID = "PLUGIN_IDxyz"; private static SomeVeryStupidExampleCodeToBeParsed ourInstance; protected long mySequenceNbr; /** * some comment in here */ protected SomeVeryStupidExampleCodeToBeParsed() { // some code comes here } /** * some comment in here */ public void reset() { //some code in here } /** * some comment in here */ public static synchronized SomeVeryStupidExampleCodeToBeParsed getInstance() { //some code in here; return ourInstance; } public void destroy() { //some code here; } /** * {...@inheritdoc} * some comment */ public final boolean someBooleanFkt() { return true; } /** {...@inheritdoc} * some comment */ public abstract void someAbstractMethod(String aParameter); /** * {...@inheritdoc} * @see com.alcatel.tas.hmi.externaleventmanager.IExternalEventManager#modifyEventQueuePriority(java.lang.String, int) */ public boolean stillAnotherFkt(String aXyz) throws IllegalArgumentException { if (aXyz == null) { throw new IllegalArgumentException("no null param allowed"); } return true; } /* (non-Javadoc) * some comment */ public String getSomething() { return null; } /* (non-Javadoc) * dkadjkdf */ public Collection<Object> getCollection() { return null; } boolean isSomething() { return false; } /** {...@inheritdoc} * @see com.alcatel.tas.hmi.externaleventmanager.IExternalEventManager#getQueueNames() */ public Set<String> getSomeSet() { return null; } /** {...@inheritdoc} * @see com.alcatel.tas.hmi.externaleventmanager.IExternalEventManager#getNumberOfEventQueues() */ public int getNumberOfSomething() { return 0; } /** {...@inheritdoc} */ public long getActualSomething() { return -1L; } /** * {...@inheritdoc} */ public abstract long getRemoteSomething(); /** * {...@inheritdoc} */ public Object getActualSomethingElse() { return null; } } I hope this helps Kind regards Alfred Pfeffer > method.getLineNumber broken in 1.11 > ----------------------------------- > > Key: QDOX-208 > URL: http://jira.codehaus.org/browse/QDOX-208 > Project: QDox > Issue Type: Bug > Affects Versions: 1.11 > Environment: WindowsXP, Linux > Reporter: Alfred Pfeffer > Priority: Minor > > JavaMethod.getLineNumber worked in 1.10 but is broken in 1.11 > Always delivers too high line numbers when parsing java code and getting line > information. > Worked perfectly in 1.10 -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email