This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA/JDWP] Fix ReferenceType.sourceFile


Kyle Galloway wrote:
Currently, since it is possible to get null returned from _Jv_GetInterpClasssourceFile if the class in either native of if the information is not available, a call to ReferenceType.sourceFile may cause a NPE in writeString which will crash the communication thread causing the VM to stop responding to commands. This patch fixes this by checking in VMVirtualMachine::getSourceFile to see if there source file is null, and throwing an AbsentInformationException. Though there are two possible causes for this in our implementation, the JDWP spec does not distinguish and only allows for an ABSENT_INFORMATION error in this case.

ChangeLog
2007-04-11  Kyle Galloway  <kgallowa@redhat.com>

   * gnu/classpath/jdwp/natVMVirtualMachine.cc (getSourceFile): Check
   for null source file and throw an exception indicating this.

Questions/comments/concerns?

Thanks,

Kyle


Index: libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc
===================================================================
--- libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc	(revision 123715)
+++ libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc	(working copy)
@@ -647,7 +647,13 @@
 gnu::classpath::jdwp::VMVirtualMachine::
 getSourceFile (jclass clazz)
 {
-  return _Jv_GetInterpClassSourceFile (clazz);
+  jstring file = _Jv_GetInterpClassSourceFile (clazz);
+  
+  // Check if the source file was found.
+  if (file == NULL)
+    throw new exception::AbsentInformationException ();
+  
+  return file;
 }
 
 void

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]