You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Mark Hindess (JIRA)" <ji...@apache.org> on 2010/03/29 16:01:27 UTC

[jira] Created: (HARMONY-6488) [classlib][serialization] Missing tests for serialization

[classlib][serialization] Missing tests for serialization
---------------------------------------------------------

                 Key: HARMONY-6488
                 URL: https://issues.apache.org/jira/browse/HARMONY-6488
             Project: Harmony
          Issue Type: Test
          Components: Classlib
            Reporter: Mark Hindess
            Priority: Minor


Seeing recent fixes for serialization issues made me wonder what our serialization test coverage was like.  I used JAPI data to get a list of serializable classes:

  zcat sun60.japi.gz |perl -ne 's/^\++//; s/[,.]/\//g;@A=split/[!]/; print $A[0],"\n" if (/class#-/);' >/tmp/serializable.txt

then produced:

  # a list of classes we implement:
  find modules/*/src/main -name '*.java' -print|\
   perl -pe 's!modules/[^/]*/src/main/(?:java5/|java/common/|java/unix/|java/windows/|java/)!!;s/\.java$//' | \
     sort >/tmp/implemented.txt
  # a list of .ser files
  find . -name '*.ser' -print|sort >/tmp/ser.txt

and checked which serializable classes that we implement but which don't appear to have .ser files:

  while read s ; do grep -q '^'$s'$' /tmp/implemented.txt && (grep -q $s /tmp/ser.txt || echo $s no) ;done \
     </tmp/serializable.txt

The list is as follows:

java/lang/ArrayIndexOutOfBoundsException
java/lang/ArrayStoreException
java/lang/AssertionError
java/lang/Boolean
java/lang/Byte
java/lang/ClassCastException
java/lang/ClassFormatError
java/lang/Double
java/lang/EnumConstantNotPresentException
java/lang/Exception
java/lang/Float
java/lang/IllegalAccessError
java/lang/IllegalThreadStateException
java/lang/IncompatibleClassChangeError
java/lang/InstantiationError
java/lang/InstantiationException
java/lang/InternalError
java/lang/NegativeArraySizeException
java/lang/NoSuchFieldError
java/lang/NoSuchFieldException
java/lang/NoSuchMethodError
java/lang/Number
java/lang/NumberFormatException
java/lang/RuntimeException
java/lang/StringIndexOutOfBoundsException
java/lang/ThreadDeath
java/lang/Throwable
java/lang/TypeNotPresentException
java/lang/UnsatisfiedLinkError
java/lang/UnsupportedClassVersionError
java/lang/annotation/AnnotationFormatError
java/lang/reflect/MalformedParameterizedTypeException
java/lang/reflect/Proxy
java/applet/Applet
java/awt/...
java/beans/IndexedPropertyChangeEvent
java/io/CharConversionException
java/io/FileNotFoundException
java/io/InvalidClassException
java/io/NotActiveException
java/io/ObjectStreamClass
java/io/OptionalDataException
java/io/SyncFailedException
java/io/UnsupportedEncodingException
java/io/WriteAbortedException
java/math/BigInteger
java/net/BindException
java/net/MalformedURLException
java/net/NetPermission
java/net/NoRouteToHostException
java/net/ProtocolException
java/net/SocketException
java/net/SocketPermission
java/net/URI
java/net/URL
java/net/UnknownHostException
java/net/UnknownServiceException
java/rmi/ConnectIOException
java/rmi/NotBoundException
java/rmi/RMISecurityException
java/rmi/RemoteException
java/rmi/ServerException
java/rmi/StubNotFoundException
java/rmi/UnknownHostException
java/rmi/activation/Activatable
java/rmi/activation/ActivationException
java/rmi/activation/ActivationGroup
java/rmi/activation/ActivationGroupDesc
java/rmi/activation/ActivationGroupID
java/rmi/activation/ActivationID
java/rmi/dgc/Lease
java/rmi/dgc/VMID
java/rmi/server/ExportException
java/rmi/server/ObjID
java/rmi/server/RemoteObject
java/rmi/server/RemoteServer
java/rmi/server/RemoteStub
java/rmi/server/SkeletonMismatchException
java/rmi/server/SkeletonNotFoundException
java/rmi/server/SocketSecurityException
java/security/AllPermission
java/security/GuardedObject
java/security/IdentityScope
java/security/InvalidParameterException
java/security/KeyException
java/security/KeyPair
java/security/KeyRep
java/security/KeyStoreException
java/security/NoSuchAlgorithmException
java/security/Permission
java/security/PermissionCollection
java/security/Provider
java/security/SecureRandomSpi
java/security/Signer
java/security/Timestamp
java/security/UnrecoverableEntryException
java/security/acl/LastOwnerException
java/security/acl/NotOwnerException
java/security/cert/CRLException
java/security/cert/CertPathValidatorException
java/security/cert/Certificate
java/security/cert/CertificateParsingException
java/security/cert/X509Certificate
java/security/spec/InvalidParameterSpecException
java/sql/SQLPermission
java/text/DateFormatSymbols
java/text/Format
java/text/NumberFormat
java/util/Calendar
java/util/ConcurrentModificationException
java/util/Currency
java/util/GregorianCalendar
java/util/MissingResourceException
java/util/SimpleTimeZone
java/util/concurrent/CancellationException
java/util/concurrent/RejectedExecutionException
java/util/concurrent/Semaphore
java/util/concurrent/atomic/AtomicLongArray
java/util/concurrent/locks/ReentrantReadWriteLock
javax/activity/ActivityRequiredException
javax/activity/InvalidActivityException
javax/crypto/BadPaddingException
javax/crypto/IllegalBlockSizeException
javax/crypto/NoSuchPaddingException
javax/imageio/IIOException
javax/imageio/metadata/IIOInvalidTreeException
javax/naming/AuthenticationNotSupportedException
javax/naming/ConfigurationException
javax/naming/LimitExceededException
javax/naming/LinkException
javax/naming/LinkLoopException
javax/naming/MalformedLinkException
javax/naming/NameAlreadyBoundException
javax/naming/NameNotFoundException
javax/naming/RefAddr
javax/naming/ReferralException
javax/naming/ServiceUnavailableException
javax/naming/TimeLimitExceededException
javax/naming/directory/InvalidAttributeIdentifierException
javax/naming/directory/InvalidSearchControlsException
javax/naming/directory/SchemaViolationException
javax/naming/directory/SearchControls
javax/naming/directory/SearchResult
javax/naming/event/NamingEvent
javax/naming/event/NamingExceptionEvent
javax/naming/ldap/BasicControl
javax/naming/ldap/LdapReferralException
javax/naming/ldap/PagedResultsResponseControl
javax/naming/ldap/SortControl
javax/naming/ldap/UnsolicitedNotificationEvent
javax/net/ssl/SSLHandshakeException
javax/net/ssl/SSLKeyException
javax/net/ssl/SSLPeerUnverifiedException
javax/net/ssl/SSLPermission
javax/print/DocFlavor
javax/print/PrintException
javax/print/attribute/DateTimeSyntax
javax/print/attribute/EnumSyntax
javax/print/attribute/HashDocAttributeSet
javax/print/attribute/HashPrintJobAttributeSet
javax/print/attribute/TextSyntax
javax/print/attribute/URISyntax
javax/print/attribute/standard/ColorSupported
javax/print/attribute/standard/Compression
javax/print/attribute/standard/Copies
javax/print/attribute/standard/DateTimeAtCreation
javax/print/attribute/standard/DateTimeAtProcessing
javax/print/attribute/standard/Finishings
javax/print/attribute/standard/JobHoldUntil
javax/print/attribute/standard/JobImpressionsSupported
javax/print/attribute/standard/JobKOctets
javax/print/attribute/standard/JobKOctetsProcessed
javax/print/attribute/standard/JobKOctetsSupported
javax/print/attribute/standard/JobMessageFromOperator
javax/print/attribute/standard/JobOriginatingUserName
javax/print/attribute/standard/JobPriority
javax/print/attribute/standard/JobSheets
javax/print/attribute/standard/JobStateReason
javax/print/attribute/standard/Media
javax/print/attribute/standard/MediaPrintableArea
javax/print/attribute/standard/MediaSize
javax/print/attribute/standard/MediaTray
javax/print/attribute/standard/NumberUp
javax/print/attribute/standard/NumberUpSupported
javax/print/attribute/standard/OrientationRequested
javax/print/attribute/standard/PDLOverrideSupported
javax/print/attribute/standard/PagesPerMinute
javax/print/attribute/standard/PrintQuality
javax/print/attribute/standard/PrinterIsAcceptingJobs
javax/print/attribute/standard/PrinterLocation
javax/print/attribute/standard/PrinterMessageFromOperator
javax/print/attribute/standard/PrinterState
javax/print/attribute/standard/PrinterStateReason
javax/print/attribute/standard/PrinterStateReasons
javax/print/attribute/standard/ReferenceUriSchemesSupported
javax/print/attribute/standard/RequestingUserName
javax/print/attribute/standard/Sides
javax/print/event/PrintJobAttributeEvent
javax/print/event/PrintJobEvent
javax/print/event/PrintServiceAttributeEvent
javax/rmi/ssl/SslRMIClientSocketFactory
javax/security/auth/DestroyFailedException
javax/security/auth/Subject
javax/security/auth/callback/ChoiceCallback
javax/security/auth/callback/ConfirmationCallback
javax/security/auth/callback/TextInputCallback
javax/security/auth/callback/UnsupportedCallbackException
javax/security/auth/kerberos/KerberosKey
javax/security/auth/kerberos/KerberosPrincipal
javax/security/auth/kerberos/ServicePermission
javax/security/auth/login/AccountException
javax/security/auth/login/AccountExpiredException
javax/security/auth/login/CredentialException
javax/security/auth/login/CredentialExpiredException
javax/security/auth/login/CredentialNotFoundException
javax/security/auth/login/LoginException
javax/security/auth/x500/X500Principal
javax/security/cert/CertificateEncodingException
javax/security/cert/CertificateException
javax/security/cert/CertificateNotYetValidException
javax/security/cert/CertificateParsingException
javax/security/sasl/AuthenticationException
javax/security/sasl/AuthorizeCallback
javax/security/sasl/RealmCallback
javax/security/sasl/RealmChoiceCallback
javax/sound/sampled/AudioPermission
javax/sound/sampled/LineEvent
javax/sound/sampled/LineUnavailableException
javax/sound/sampled/UnsupportedAudioFileException
javax/sql/RowSetEvent
javax/sql/rowset/serial/SerialArray
javax/sql/rowset/serial/SerialBlob
javax/sql/rowset/serial/SerialClob
javax/sql/rowset/serial/SerialJavaObject
javax/sql/rowset/serial/SerialRef
javax/sql/rowset/serial/SerialStruct
javax/sql/rowset/spi/SyncFactoryException
javax/sql/rowset/spi/SyncProviderException
javax/swing/...
javax/transaction/TransactionRequiredException
javax/transaction/TransactionRolledbackException
javax/transaction/xa/XAException
org/ietf/jgss/GSSException

(I stripped the awt/swing classes because they made the list longer and at the moment they have different SUIDs so I'm not sure they are compatible anyway.)


Some of these are quite simple classes, but some probably do have sufficient complexity that we may have incompatibilities.  We should try to improve the serialization test coverage.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.