Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 419533

Summary: [server] MetaStore migration StorageException: Input length (with padding) not multiple of 8 bytes
Product: [ECD] Orion Reporter: Anthony Hunter <ahunter.eclipse>
Component: ServerAssignee: Anthony Hunter <ahunter.eclipse>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 4.0   
Target Milestone: 4.0 RC3   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Anthony Hunter CLA 2013-10-15 17:33:09 EDT
I am trying migration on a copy of the metadata from orionhub.eclipse.org. I am getting an exception:

org.eclipse.equinox.security.storage.StorageException: Input length (with padding) not multiple of 8 bytes
	at org.eclipse.equinox.internal.security.storage.SecurePreferences.get(SecurePreferences.java:270)
	at org.eclipse.equinox.internal.security.storage.SecurePreferencesWrapper.get(SecurePreferencesWrapper.java:106)
	at org.eclipse.orion.internal.server.core.metastore.SimpleMetaStoreMigration.getMetadataFromSecureStorage(SimpleMetaStoreMigration.java:303)
	at org.eclipse.orion.internal.server.core.metastore.SimpleMetaStoreMigration.doMigration(SimpleMetaStoreMigration.java:126)
	at org.eclipse.orion.internal.server.core.metastore.SimpleMetaStore.initializeMetaStore(SimpleMetaStore.java:339)
	at org.eclipse.orion.internal.server.core.metastore.SimpleMetaStore.<init>(SimpleMetaStore.java:66)
	at org.eclipse.orion.internal.server.servlets.Activator.initializeMetaStore(Activator.java:117)
	at org.eclipse.orion.internal.server.servlets.Activator.start(Activator.java:142)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
	at java.security.AccessController.doPrivileged(AccessController.java:277)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
	at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:478)
	at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
	at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:109)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
	at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
	at java.lang.ClassLoader.defineClassImpl(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:275)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:638)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:620)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:574)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:492)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:465)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
	at org.eclipse.orion.internal.server.hosting.HostingActivator.registerHostingService(HostingActivator.java:83)
	at org.eclipse.orion.internal.server.hosting.HostingActivator.start(HostingActivator.java:49)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
	at java.security.AccessController.doPrivileged(AccessController.java:277)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: javax.crypto.IllegalBlockSizeException: Input length (with padding) not multiple of 8 bytes
	at com.ibm.crypto.provider.DESCipher.a(Unknown Source)
	at com.ibm.crypto.provider.DESCipher.engineDoFinal(Unknown Source)
	at com.ibm.crypto.provider.DESCipher.engineDoFinal(Unknown Source)
	at com.ibm.crypto.provider.PBEWithMD5AndDESCipher.engineDoFinal(Unknown Source)
	at javax.crypto.Cipher.doFinal(Unknown Source)
	at org.eclipse.equinox.internal.security.storage.JavaEncryption.internalDecrypt(JavaEncryption.java:189)
	at org.eclipse.equinox.internal.security.storage.JavaEncryption.decrypt(JavaEncryption.java:176)
	at org.eclipse.equinox.internal.security.storage.SecurePreferences.get(SecurePreferences.java:267)
	... 57 more
Comment 1 Anthony Hunter CLA 2013-10-16 15:35:41 EDT
The changes to fix this issue are included with bug 419602. We currently catch the error and exit out. The change is now to just print the error and continue on.
Comment 2 Anthony Hunter CLA 2013-10-22 17:16:44 EDT
(In reply to Anthony Hunter from comment #1)
> The changes to fix this issue are included with bug 419602. We currently
> catch the error and exit out. The change is now to just print the error and
> continue on.

Forgot to mark resolved last Wednesday.