You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/07/09 20:13:28 UTC

svn commit: r1359323 - in /lucene/dev/branches/branch_4x: ./ lucene/ lucene/tools/ lucene/tools/forbiddenApis/jdk.txt solr/ solr/solrj/ solr/solrj/src/java/org/apache/solr/common/util/FastInputStream.java

Author: rmuir
Date: Mon Jul  9 18:13:28 2012
New Revision: 1359323

URL: http://svn.apache.org/viewvc?rev=1359323&view=rev
Log:
LUCENE-4199: disallow deprecated jdk methods

Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/lucene/   (props changed)
    lucene/dev/branches/branch_4x/lucene/tools/   (props changed)
    lucene/dev/branches/branch_4x/lucene/tools/forbiddenApis/jdk.txt
    lucene/dev/branches/branch_4x/solr/   (props changed)
    lucene/dev/branches/branch_4x/solr/solrj/   (props changed)
    lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/util/FastInputStream.java

Modified: lucene/dev/branches/branch_4x/lucene/tools/forbiddenApis/jdk.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/tools/forbiddenApis/jdk.txt?rev=1359323&r1=1359322&r2=1359323&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/tools/forbiddenApis/jdk.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/tools/forbiddenApis/jdk.txt Mon Jul  9 18:13:28 2012
@@ -78,3 +78,376 @@ java.util.Formatter#<init>(java.io.Outpu
 java.util.Formatter#<init>(java.io.PrintStream)
 java.util.Formatter#<init>(java.lang.String)
 java.util.Formatter#<init>(java.lang.String,java.lang.String)
+
+# these are all deprecated in jdk 6: make them fail the build (java[x].* only)
+# http://docs.oracle.com/javase/6/docs/api/deprecated-list.html
+java.security.Certificate
+java.rmi.server.LoaderHandler
+java.rmi.registry.RegistryHandler
+java.rmi.server.RemoteCall
+java.rmi.server.Skeleton
+javax.xml.bind.Validator
+
+javax.accessibility.AccessibleResourceBundle
+javax.management.DefaultLoaderRepository
+javax.management.loading.DefaultLoaderRepository
+javax.swing.text.DefaultTextUI
+java.security.Identity
+java.security.IdentityScope
+java.io.LineNumberInputStream
+java.rmi.server.LogStream
+# cant load class: javax.swing.plaf.metal.MetalComboBoxUI.MetalComboPopup
+java.rmi.server.Operation
+javax.security.auth.Policy
+java.security.Signer
+javax.xml.soap.SOAPElementFactory
+java.io.StringBufferInputStream
+# cant load class: javax.swing.text.TableView.TableCell
+
+java.rmi.RMISecurityException
+java.rmi.ServerRuntimeException
+java.rmi.server.SkeletonMismatchException
+java.rmi.server.SkeletonNotFoundException
+
+javax.jws.soap.InitParam
+javax.jws.soap.SOAPMessageHandler
+javax.jws.soap.SOAPMessageHandlers
+
+# TODO: fields support?
+
+java.awt.Component#action(java.awt.Event,java.lang.Object)
+java.awt.List#addItem(java.lang.String)
+java.awt.List#addItem(java.lang.String,int)
+java.awt.CardLayout#addLayoutComponent(java.lang.String,java.awt.Component)
+java.awt.BorderLayout#addLayoutComponent(java.lang.String,java.awt.Component)
+java.awt.List#allowsMultipleSelections()
+java.lang.ThreadGroup#allowThreadSuspension(boolean)
+java.awt.TextArea#appendText(java.lang.String)
+java.awt.Window#applyResourceBundle(java.util.ResourceBundle)
+java.awt.Window#applyResourceBundle(java.lang.String)
+java.awt.Component#bounds()
+java.lang.SecurityManager#checkMulticast(java.net.InetAddress,byte)
+java.lang.SecurityManager#classDepth(java.lang.String)
+java.lang.SecurityManager#classLoaderDepth()
+java.awt.List#clear()
+java.awt.image.renderable.RenderContext#concetenateTransform(java.awt.geom.AffineTransform) 
+java.awt.Container#countComponents()
+java.awt.Menu#countItems()
+java.awt.Choice#countItems() 
+java.awt.List#countItems()
+java.awt.MenuBar#countMenus()
+java.lang.Thread#countStackFrames()
+javax.xml.soap.SOAPElementFactory#create(javax.xml.soap.Name) 
+javax.xml.soap.SOAPElementFactory#create(java.lang.String) 
+javax.xml.soap.SOAPElementFactory#create(java.lang.String,java.lang.String,java.lang.String) 
+javax.swing.plaf.basic.BasicSplitPaneUI#createKeyboardDownRightListener() 
+javax.swing.plaf.basic.BasicSplitPaneUI#createKeyboardEndListener()
+javax.swing.plaf.basic.BasicSplitPaneUI#createKeyboardHomeListener()
+javax.swing.plaf.basic.BasicSplitPaneUI#createKeyboardResizeToggleListener()
+javax.swing.plaf.basic.BasicSplitPaneUI#createKeyboardUpLeftListener()
+javax.swing.JTable#createScrollPaneForTable(javax.swing.JTable) 
+javax.swing.text.TableView#createTableCell(javax.swing.text.Element)
+javax.xml.bind.JAXBContext#createValidator()
+java.lang.SecurityManager#currentClassLoader()
+java.lang.SecurityManager#currentLoadedClass()
+java.net.URLDecoder#decode(java.lang.String)
+java.lang.ClassLoader#defineClass(byte[],int,int)
+java.awt.List#delItem(int)
+java.awt.List#delItems(int,int)
+java.awt.Container#deliverEvent(java.awt.Event)
+java.awt.Component#deliverEvent(java.awt.Event)
+javax.management.MBeanServer#deserialize(javax.management.ObjectName,byte[]) 
+javax.management.MBeanServer#deserialize(java.lang.String,byte[])
+javax.management.MBeanServer#deserialize(java.lang.String,javax.management.ObjectName,byte[]) 
+java.lang.Thread#destroy()
+java.awt.MenuItem#disable() 
+java.awt.Component#disable()
+javax.swing.JComponent#disable()
+javax.swing.table.TableColumn#disableResizedPosting()
+javax.swing.FocusManager#disableSwingFocusManager()
+java.rmi.server.Skeleton#dispatch(java.rmi.Remote,java.rmi.server.RemoteCall,int,long)
+java.rmi.server.RemoteCall#done()
+java.rmi.server.RemoteRef#done(java.rmi.server.RemoteCall)
+javax.swing.plaf.metal.MetalComboBoxUI#editablePropertyChanged(java.beans.PropertyChangeEvent) 
+java.awt.MenuItem#enable()
+java.awt.Component#enable()
+javax.swing.JComponent#enable()
+java.awt.MenuItem#enable(boolean)
+java.awt.Component#enable(boolean)
+javax.swing.table.TableColumn#enableResizedPosting()
+java.net.URLEncoder#encode(java.lang.String)
+java.security.SignatureSpi#engineGetParameter(java.lang.String)
+java.security.SignatureSpi#engineSetParameter(java.lang.String,java.lang.Object) 
+java.awt.datatransfer.DataFlavor#equals(java.lang.String) 
+java.rmi.server.RemoteCall#executeCall()
+javax.swing.SwingUtilities#findFocusOwner(java.awt.Component)
+java.security.Security#getAlgorithmProperty(java.lang.String,java.lang.String)
+java.sql.CallableStatement#getBigDecimal(int,int)
+java.sql.ResultSet#getBigDecimal(int,int)
+java.sql.ResultSet#getBigDecimal(java.lang.String,int)
+java.awt.Polygon#getBoundingBox()
+java.lang.String#getBytes(int,int,byte[],int)
+java.awt.Graphics#getClipRect()
+javax.swing.JPopupMenu#getComponentAtIndex(int)
+javax.swing.JMenuBar#getComponentAtIndex(int)
+java.awt.CheckboxGroup#getCurrent()
+java.awt.Frame#getCursorType()
+java.sql.Time#getDate()
+java.util.Date#getDate()
+java.sql.Time#getDay()
+java.util.Date#getDay()
+java.net.URLConnection#getDefaultRequestProperty(java.lang.String)
+java.rmi.server.LogStream#getDefaultStream()
+javax.management.monitor.StringMonitorMBean#getDerivedGauge()
+javax.management.monitor.StringMonitor#getDerivedGauge()
+javax.management.monitor.GaugeMonitorMBean#getDerivedGauge()
+javax.management.monitor.GaugeMonitor#getDerivedGauge()
+javax.management.monitor.CounterMonitorMBean#getDerivedGauge()
+javax.management.monitor.CounterMonitor#getDerivedGauge() 
+javax.management.monitor.StringMonitorMBean#getDerivedGaugeTimeStamp()
+javax.management.monitor.StringMonitor#getDerivedGaugeTimeStamp()
+javax.management.monitor.GaugeMonitorMBean#getDerivedGaugeTimeStamp()
+javax.management.monitor.GaugeMonitor#getDerivedGaugeTimeStamp()
+javax.management.monitor.CounterMonitorMBean#getDerivedGaugeTimeStamp()
+javax.management.monitor.CounterMonitor#getDerivedGaugeTimeStamp()
+javax.swing.plaf.basic.BasicSplitPaneUI#getDividerBorderSize()
+javax.xml.bind.Validator#getEventHandler()
+java.awt.Toolkit#getFontList()
+javax.swing.text.LabelView#getFontMetrics()
+java.awt.Toolkit#getFontMetrics(java.awt.Font)
+java.awt.Toolkit#getFontPeer(java.lang.String,int)
+java.sql.Date#getHours()
+java.util.Date#getHours()
+java.lang.SecurityManager#getInCheck()
+java.rmi.server.RemoteCall#getInputStream() 
+javax.swing.KeyStroke#getKeyStroke(char,boolean)
+javax.swing.AbstractButton#getLabel()
+java.awt.Scrollbar#getLineIncrement()
+java.lang.Runtime#getLocalizedInputStream(java.io.InputStream)
+java.lang.Runtime#getLocalizedOutputStream(java.io.OutputStream)
+java.sql.DriverManager#getLogStream()
+java.awt.FontMetrics#getMaxDecent()
+javax.swing.JInternalFrame#getMenuBar()
+javax.swing.JRootPane#getMenuBar()
+java.sql.Date#getMinutes()
+java.util.Date#getMinutes()
+java.sql.Time#getMonth()
+java.util.Date#getMonth()
+javax.swing.JComponent#getNextFocusableComponent()
+javax.management.monitor.MonitorMBean#getObservedObject()
+javax.management.monitor.Monitor#getObservedObject()
+java.rmi.server.Operation#getOperation()
+java.rmi.server.Skeleton#getOperations()
+java.awt.ComponentOrientation#getOrientation(java.util.ResourceBundle)
+java.rmi.server.LogStream#getOutputStream()
+java.rmi.server.RemoteCall#getOutputStream()
+java.awt.Scrollbar#getPageIncrement()
+java.security.Signature#getParameter(java.lang.String)
+java.awt.MenuComponent#getPeer()
+java.awt.Component#getPeer()
+java.awt.Font#getPeer()
+javax.xml.bind.Validator#getProperty(java.lang.String)
+java.rmi.server.RemoteCall#getResultStream(boolean)
+java.sql.Date#getSeconds()
+java.util.Date#getSeconds()
+java.rmi.server.LoaderHandler#getSecurityContext(java.lang.ClassLoader)
+java.rmi.server.RMIClassLoader#getSecurityContext(java.lang.ClassLoader) 
+javax.swing.JPasswordField#getText()
+javax.swing.JPasswordField#getText(int,int)
+javax.management.monitor.CounterMonitorMBean#getThreshold()
+javax.management.monitor.CounterMonitor#getThreshold()
+java.util.Date#getTimezoneOffset()
+java.net.MulticastSocket#getTTL()
+java.net.DatagramSocketImpl#getTTL()
+java.sql.ResultSet#getUnicodeStream(int)
+java.sql.ResultSet#getUnicodeStream(java.lang.String)
+javax.swing.ScrollPaneLayout#getViewportBorderBounds(javax.swing.JScrollPane)
+java.awt.Scrollbar#getVisible()
+java.sql.Time#getYear()
+java.util.Date#getYear()
+java.awt.Component#gotFocus(java.awt.Event,java.lang.Object)
+java.awt.Component#handleEvent(java.awt.Event)
+java.awt.Dialog#hide()
+java.awt.Window#hide()
+java.awt.Component#hide()
+java.lang.SecurityManager#inClass(java.lang.String)
+java.lang.SecurityManager#inClassLoader()
+# cant load class: javax.swing.text.html.HTMLEditorKit.InsertHTMLTextAction#insertAtBoundry(javax.swing.JEditorPane,javax.swing.text.html.HTMLDocument,int,javax.swing.text.Element,java.lang.String,javax.swing.text.html.HTML.Tag,javax.swing.text.html.HTML.Tag) 
+java.awt.TextArea#insertText(java.lang.String,int)
+java.awt.Container#insets() 
+java.awt.Rectangle#inside(int,int) 
+java.awt.Component#inside(int,int) 
+java.awt.Polygon#inside(int,int) 
+java.rmi.server.RemoteRef#invoke(java.rmi.server.RemoteCall) 
+javax.swing.JViewport#isBackingStoreEnabled() 
+javax.swing.FocusManager#isFocusManagerEnabled() 
+java.awt.Component#isFocusTraversable() 
+java.lang.Character#isJavaLetter(char) 
+java.lang.Character#isJavaLetterOrDigit(char) 
+javax.swing.JComponent#isManagingFocus() 
+java.awt.List#isSelected(int) 
+java.lang.Character#isSpace(char) 
+java.rmi.dgc.VMID#isUnique() 
+javax.xml.bind.Unmarshaller#isValidating() 
+java.awt.Component#keyDown(java.awt.Event,int) 
+java.awt.Component#keyUp(java.awt.Event,int) 
+java.awt.Container#layout() 
+java.awt.ScrollPane#layout() 
+java.awt.Component#layout() 
+java.rmi.server.LoaderHandler#loadClass(java.lang.String) 
+java.rmi.server.RMIClassLoader#loadClass(java.lang.String)
+java.rmi.server.LoaderHandler#loadClass(java.net.URL,java.lang.String)
+java.awt.Container#locate(int,int)
+java.awt.Component#locate(int,int)
+java.awt.Component#location()
+java.rmi.server.LogStream#log(java.lang.String)
+java.awt.Component#lostFocus(java.awt.Event,java.lang.Object)
+java.awt.TextArea#minimumSize()
+java.awt.Container#minimumSize()
+java.awt.List#minimumSize()
+java.awt.TextField#minimumSize()
+java.awt.Component#minimumSize()
+java.awt.List#minimumSize(int)
+java.awt.TextField#minimumSize(int)
+java.awt.TextArea#minimumSize(int,int)
+javax.swing.text.View#modelToView(int,java.awt.Shape)
+java.awt.Component#mouseDown(java.awt.Event,int,int)
+java.awt.Component#mouseDrag(java.awt.Event,int,int)
+java.awt.Component#mouseEnter(java.awt.Event,int,int)
+java.awt.Component#mouseExit(java.awt.Event,int,int)
+java.awt.Component#mouseMove(java.awt.Event,int,int)
+java.awt.Component#mouseUp(java.awt.Event,int,int)
+java.awt.Rectangle#move(int,int)
+java.awt.Component#move(int,int)
+java.rmi.server.RemoteRef#newCall(java.rmi.server.RemoteObject,java.rmi.server.Operation[],int,long)
+javax.xml.stream.XMLOutputFactory#newInstance(java.lang.String,java.lang.ClassLoader)
+javax.xml.stream.XMLInputFactory#newInstance(java.lang.String,java.lang.ClassLoader)
+javax.xml.stream.XMLEventFactory#newInstance(java.lang.String,java.lang.ClassLoader)
+java.awt.Component#nextFocus()
+java.awt.datatransfer.DataFlavor#normalizeMimeType(java.lang.String)
+javax.activation.ActivationDataFlavor#normalizeMimeType(java.lang.String)
+java.awt.datatransfer.DataFlavor#normalizeMimeTypeParameter(java.lang.String,java.lang.String)
+javax.activation.ActivationDataFlavor#normalizeMimeTypeParameter(java.lang.String,java.lang.String)
+java.util.Date#parse(java.lang.String)
+java.rmi.server.LogStream#parseLevel(java.lang.String)
+java.awt.MenuComponent#postEvent(java.awt.Event)
+java.awt.Window#postEvent(java.awt.Event)
+java.awt.Component#postEvent(java.awt.Event)
+java.awt.MenuContainer#postEvent(java.awt.Event)
+java.awt.image.renderable.RenderContext#preConcetenateTransform(java.awt.geom.AffineTransform)
+java.awt.TextArea#preferredSize()
+java.awt.Container#preferredSize()
+java.awt.List#preferredSize()
+java.awt.TextField#preferredSize()
+java.awt.Component#preferredSize()
+java.awt.List#preferredSize(int)
+java.awt.TextField#preferredSize(int)
+java.awt.TextArea#preferredSize(int,int)
+java.io.DataInputStream#readLine()
+java.io.ObjectInputStream#readLine()
+java.rmi.registry.RegistryHandler#registryImpl(int)
+java.rmi.registry.RegistryHandler#registryStub(java.lang.String,int)
+java.rmi.server.RemoteCall#releaseInputStream()
+java.rmi.server.RemoteCall#releaseOutputStream()
+javax.swing.plaf.metal.MetalComboBoxUI#removeListeners()
+java.awt.TextArea#replaceText(java.lang.String,int,int)
+javax.swing.JComponent#requestDefaultFocus()
+java.awt.Window#reshape(int,int,int,int)
+java.awt.Rectangle#reshape(int,int,int,int)
+java.awt.Component#reshape(int,int,int,int)
+javax.swing.JComponent#reshape(int,int,int,int)
+java.awt.Component#resize(java.awt.Dimension)
+java.awt.Rectangle#resize(int,int)
+java.awt.Component#resize(int,int)
+java.lang.Thread#resume()
+java.lang.ThreadGroup#resume()
+java.lang.System#runFinalizersOnExit(boolean)
+java.lang.Runtime#runFinalizersOnExit(boolean)
+java.util.Properties#save(java.io.OutputStream,java.lang.String)
+java.net.MulticastSocket#send(java.net.DatagramPacket,byte)
+javax.swing.JViewport#setBackingStoreEnabled(boolean)
+java.awt.CheckboxGroup#setCurrent(java.awt.Checkbox)
+java.awt.Frame#setCursor(int)
+java.sql.Time#setDate(int)
+java.util.Date#setDate(int)
+java.net.URLConnection#setDefaultRequestProperty(java.lang.String,java.lang.String)
+java.rmi.server.LogStream#setDefaultStream(java.io.PrintStream)
+java.awt.TextField#setEchoCharacter(char)
+javax.xml.bind.Validator#setEventHandler(javax.xml.bind.ValidationEventHandler)
+java.sql.Date#setHours(int)
+java.util.Date#setHours(int)
+javax.swing.AbstractButton#setLabel(java.lang.String)
+java.awt.Scrollbar#setLineIncrement(int)
+java.sql.DriverManager#setLogStream(java.io.PrintStream)
+javax.management.ValueExp#setMBeanServer(javax.management.MBeanServer)
+javax.swing.JInternalFrame#setMenuBar(javax.swing.JMenuBar)
+javax.swing.JRootPane#setMenuBar(javax.swing.JMenuBar)
+java.sql.Date#setMinutes(int)
+java.util.Date#setMinutes(int)
+java.awt.event.KeyEvent#setModifiers(int)
+java.sql.Time#setMonth(int)
+java.util.Date#setMonth(int)
+java.awt.List#setMultipleSelections(boolean)
+javax.swing.JComponent#setNextFocusableComponent(java.awt.Component)
+javax.management.monitor.MonitorMBean#setObservedObject(javax.management.ObjectName)
+javax.management.monitor.Monitor#setObservedObject(javax.management.ObjectName)
+java.rmi.server.LogStream#setOutputStream(java.io.OutputStream)
+java.awt.Scrollbar#setPageIncrement(int)
+java.security.Signature#setParameter(java.lang.String,java.lang.Object)
+javax.xml.bind.Validator#setProperty(java.lang.String,java.lang.Object)
+java.rmi.server.RemoteStub#setRef(java.rmi.server.RemoteStub,java.rmi.server.RemoteRef)
+java.sql.Date#setSeconds(int)
+java.util.Date#setSeconds(int)
+javax.management.monitor.CounterMonitorMBean#setThreshold(java.lang.Number)
+javax.management.monitor.CounterMonitor#setThreshold(java.lang.Number)
+java.net.MulticastSocket#setTTL(byte)
+java.net.DatagramSocketImpl#setTTL(byte)
+java.sql.PreparedStatement#setUnicodeStream(int,java.io.InputStream,int)
+javax.sql.rowset.BaseRowSet#setUnicodeStream(int,java.io.InputStream,int)
+java.net.URLStreamHandler#setURL(java.net.URL,java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)
+javax.xml.bind.Unmarshaller#setValidating(boolean)
+java.sql.Time#setYear(int)
+java.util.Date#setYear(int)
+java.awt.Dialog#show()
+java.awt.Window#show()
+java.awt.Component#show()
+java.awt.Component#show(boolean)
+java.awt.Component#size()
+javax.swing.JTable#sizeColumnsToFit(boolean)
+java.lang.Thread#stop()
+java.lang.ThreadGroup#stop()
+java.lang.Thread#stop(java.lang.Throwable)
+java.lang.Thread#suspend()
+java.lang.ThreadGroup#suspend()
+java.util.Date#toGMTString()
+java.util.Date#toLocaleString()
+java.rmi.server.LogStream#toString()
+java.rmi.server.Operation#toString()
+java.io.ByteArrayOutputStream#toString(int)
+java.util.Date#UTC(int,int,int,int,int,int)
+javax.xml.bind.Validator#validate(java.lang.Object)
+javax.xml.bind.Validator#validateRoot(java.lang.Object)
+javax.swing.text.View#viewToModel(float,float,java.awt.Shape)
+java.rmi.server.LogStream#write(byte[],int,int)
+java.rmi.server.LogStream#write(int)
+# cant load class: java.io.ObjectOutputStream.PutField#write(java.io.ObjectOutput)
+
+javax.management.AttributeValueExp#<init>()
+java.sql.Date#<init>(int,int,int)
+java.util.Date#<init>(int,int,int)
+java.util.Date#<init>(int,int,int,int,int)
+java.util.Date#<init>(int,int,int,int,int,int)
+java.util.Date#<init>(java.lang.String)
+java.awt.event.KeyEvent#<init>(java.awt.Component,int,long,int,int)
+java.rmi.server.Operation#<init>(java.lang.String)
+java.rmi.RMISecurityException#<init>(java.lang.String)
+java.rmi.RMISecurityException#<init>(java.lang.String,java.lang.String)
+java.rmi.ServerRuntimeException#<init>(java.lang.String,java.lang.Exception)
+java.rmi.server.SkeletonMismatchException#<init>(java.lang.String)
+java.net.Socket#<init>(java.net.InetAddress,int,boolean)
+java.net.Socket#<init>(java.lang.String,int,boolean)
+java.io.StreamTokenizer#<init>(java.io.InputStream)
+java.lang.String#<init>(byte[],int)
+java.lang.String#<init>(byte[],int,int,int)
+java.sql.Time#<init>(int,int,int)
+java.sql.Timestamp#<init>(int,int,int,int,int,int,int)

Modified: lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/util/FastInputStream.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/util/FastInputStream.java?rev=1359323&r1=1359322&r2=1359323&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/util/FastInputStream.java (original)
+++ lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/util/FastInputStream.java Mon Jul  9 18:13:28 2012
@@ -229,7 +229,7 @@ public class FastInputStream extends Inp
   }
 
   public String readLine() throws IOException {
-    return new DataInputStream(this).readLine();
+    throw new UnsupportedOperationException();
   }
 
   public String readUTF() throws IOException {